powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Подскажите функцию...
9 сообщений из 9, страница 1 из 1
Подскажите функцию...
    #33391658
UlanOf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С помощью которой можно узнать все запущенные приложения в ОС ...
И вторая то же только процессы ОС ...
ОС Win98-xp
...
Рейтинг: 0 / 0
Подскажите функцию...
    #33391730
Фотография rrrrrrrrrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поиск процесса, Дельфи - в Си аналогично :). А вот как на владельца выйти...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
 function  FindMyProcess (my_process :  string ):bool;
   var 
    hSnapshot: THandle;
    pe32: TProcessEntry32;
   begin 
    Result := false;
     try 
      hSnapshot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,  0 );
       if  (hSnapshot <> - 1 )  then 
         begin 
          pe32.dwSize := SizeOf(TProcessEntry32);
           if  Process32First(hSnapshot, pe32) = true  then 
           repeat 
             if  Pos(LowerCase(my_process),LowerCase(pe32.szExeFile))<> 0   then 
               begin 
                CloseHandle(hSnapshot);
                Result := true;
                break;
               end ;
           until   not  Process32Next(hSnapshot, pe32);
           if  Result = false  then  CloseHandle (hSnapshot);
         end ;
     except 
      ;
     end ;
 end ;
...
Рейтинг: 0 / 0
Подскажите функцию...
    #33392475
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UlanOfС помощью которой можно узнать все запущенные приложения в ОС ...

предлогаю обратиться к толковой книге по потрохам Win32...

Д.Рихтер "Программирование для профессионалов под Win32"

если ничаво не попутал...
Там найдёте ответы на Ваш вопрос и кучу полезностей так же...

удачи Вам
(круглый)
...
Рейтинг: 0 / 0
Подскажите функцию...
    #33392485
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0Д.Рихтер "Программирование для профессионалов под Win32"+1
хорошая книга
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Подскажите функцию...
    #33393187
UlanOf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас Барабас kolobok0Д.Рихтер "Программирование для профессионалов под Win32"+1
хорошая книга
Posted via ActualForum NNTP Server 1.3

Сенк..
Прыдетса пакупать... а.. и еще искать....
...
Рейтинг: 0 / 0
Подскажите функцию...
    #33393189
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
#include <set>
#include <string>
#include <locale>
#include <windows.h>
#include <winnt.h>

#pragma warning(disable:  4127 ) // conditional expression is constant


using namespace std;

//---------------------------------------------------------------------------------------------------------------------
static bool GetServiceList( set<string> &lstResult ) 
{
    SC_HANDLE hSCM = OpenSCManager(NULL, NULL, SC_MANAGER_ENUMERATE_SERVICE); 
    if( hSCM == NULL )
    {
		return false;
    }

    DWORD dwResumeHandle =  0 ;
	DWORD cbNeeded =  2048 ;
	DWORD cServices;
	DWORD dwError;
	LPENUM_SERVICE_STATUS pStatus;
    BYTE *bBuffer = NULL;

    try
    {
	    for(int i =  0 ; i <  3 ; i++) // do not do more then 3 trys
	    {
            // Review: If a single service is too big to fit into the bBuffer it seems like
            //         this will become an infinite loop. A check for returned cServices being
            //         bigger than zero would be usefull. <DM>
            // Owner:  issue is addressed

		    pStatus = (LPENUM_SERVICE_STATUS)bBuffer;

    	    bBuffer = new BYTE[cbNeeded];
            memset(bBuffer,  0 , cbNeeded);


            DWORD new_need =  0 ;
		    // retrieve a portion of service status information
		    if(!EnumServicesStatus(hSCM, SERVICE_WIN32, SERVICE_STATE_ALL,
								    pStatus, cbNeeded, &new_need,
								    &cServices, &dwResumeHandle))
		    {
			    dwError = GetLastError();
			    if (dwError != ERROR_MORE_DATA)
			    {
                    delete [] bBuffer;
				    break;
			    }
                if( new_need > cbNeeded )       // function requires more memory
                {
                    delete [] bBuffer;
                    cbNeeded = new_need;
                    continue;                   //  try to get info again
                }
		    }
		    for (DWORD i =  0 ; i < cServices; i++, pStatus++) 
		    {
                if( pStatus->lpServiceName == NULL )
                {
                    continue;
                }
                string name_srv = pStatus->lpServiceName;
                if( !name_srv.empty() )
                {
                    lstResult.insert( name_srv );
                }
		    }
            break;

	    }
        return true;
    }catch(...){}
    return false;
}
...
Рейтинг: 0 / 0
Подскажите функцию...
    #33393192
UlanOf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UlanOf Карабас Барабас kolobok0Д.Рихтер "Программирование для профессионалов под Win32"+1
хорошая книга
Posted via ActualForum NNTP Server 1.3
.

Всем откликнувшимся спасибо....

Для Windows 9x используйте CreateToolhelp32Snapsot/ Process32First(Process32Next)/ Thread32First(Thread32Next).

Для WinNT NTQuerySystemInformation. А можно так: получаете список окон в системе (каким угодно способом, если нужны только процессы - можно ограничиться top-level), далее - GetWindowTreadProcessID - получаете ID процесса (и нити). OpenProcess - дает handle процесса.
...
Рейтинг: 0 / 0
Подскажите функцию...
    #33415771
UlanOf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UlanOf UlanOf Карабас Барабас[quot kolobok0]Д.Рихтер "Программирование для профессионалов под Win32"+1
хорошая книга

.
НАсчет книги...МОжет кто нибудь поделиться в эл. виде ...в магазинах не нашел...


CreateToolhelp32Snapsot/ Process32First(Process32Next) - вот это помогло найти все процессы... Палучилось и все используемые модули тд...
Но вот проблема получить загруженность процессора и выделенной оперативой памяти этим процессам...

Вроде бы есть такая функция....Toolhelp32ReadProcessMemory

но как ее правильно использовать и можно ли вообще с помощью нее получить для не обходимого мне процесса все перечисленное выше..
...
Рейтинг: 0 / 0
Подскажите функцию...
    #33415785
UlanOf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНАсчет книги...МОжет кто нибудь поделиться в эл. виде ...в магазинах не нашел...

отбой....нашел .... даже перевод хелпа на руский есть ..)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Подскажите функцию...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]