powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Узнать имя исполнимого файла процесса
5 сообщений из 5, страница 1 из 1
Узнать имя исполнимого файла процесса
    #33832236
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача: по хандлеру окна hWND или по хандлеру трида ProcessId
получить имя исполняемого файла.

Уже все функции в Window Functions пересмотрел, и никак не могу добраться

IMHO, Mon$te®
...
Рейтинг: 0 / 0
Узнать имя исполнимого файла процесса
    #33832278
NSFuimus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
		HINSTANCE hInstance = GetModuleHandle(NULL);
		char szTmp[ 256 ] = {"\0"};
	    GetModuleFileName(hInstance, szTmp, sizeof(szTmp));
?
...
Рейтинг: 0 / 0
Узнать имя исполнимого файла процесса
    #33832416
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению не то ибо:
авторThe GetModuleHandle function returns a module handle for the specified module if the file has been mapped into the address space of the calling process.

А в условиях задачи только хандлер треда есть.

IMHO, Mon$te®
...
Рейтинг: 0 / 0
Узнать имя исполнимого файла процесса
    #33832476
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Узнать имя исполнимого файла процесса
    #33833279
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо нащёл что надо использовать CreateToolhelp32Snapshot, Process32First, Process32Next
Если ГРУБО, то что-то такое должно получиться
Код: 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.
        HWND activehwnd;
        DWORD procId;
        activehwnd=GetForegroundWindow();
        int rez;
        char buff[ 254 ];
        unsigned long size;
        AnsiString WindowName;
        AnsiString UserName;
        size= 253 ;

        rez=GetWindowThreadProcessId(
                        activehwnd,	// handle of window
                        &procId // address of variable for process identifier
           );

        rez=GetWindowText(
                    activehwnd,	// handle of window or control with text
                    buff,	// address of buffer for text
                    size 	// maximum number of characters to copy
                   );
        WindowName=AnsiString(buff);

        rez=GetUserName(
                            buff,	// address of name buffer
                            &size 	// address of size of name buffer
                           );
        UserName=AnsiString(buff);
        Memo1->Lines->Add(DateTimeToStr(Now())+" " +UserName+" " +WindowName);

        HANDLE         hProcessSnap = NULL;
        PROCESSENTRY32 pe32      = { 0 };
        //  Take a snapshot of all processes currently in the system.
        hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,  0 );
        if (hProcessSnap == (HANDLE)- 1 )
                return;
        pe32.dwSize = sizeof(PROCESSENTRY32);
        if (Process32First(hProcessSnap, &pe32))
                {
                do {
                        if (pe32.th32ProcessID==procId)
                                {
                                Memo1->Lines->Add(AnsiString(pe32.th32ProcessID)+"="+AnsiString(pe32.szExeFile));
                                }
                   }
                while (Process32Next(hProcessSnap, &pe32));
                }
    // Do not forget to clean up the snapshot object.
    CloseHandle (hProcessSnap);

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


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