![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
EnumProcesses [D6, WinXP]
Samurai Kruche chem Jakudza © (2006-10-02 10:32:00)Подскажите что неправильно делаю, для процессов winlogon.exe и smss.exe возвращает странный какойто путь к файлу
procedure GetWinNTProcessList;
var
i: Integer;
lpidProcess: array[0..MAX_PATH] of DWORD;
cbNeeded: DWORD;
lphModule: HMODULE;
hProcess: THandle;
lpcbNeeded: DWORD;
lpFilename: array[0..MAX_PATH] of Char;
begin
EnumProcesses(@lpidProcess, SizeOf(lpidProcess), cbNeeded);
for i:= 0 to cbNeeded div sizeof(lphModule) do
begin
hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, lpidProcess[i]);
if (hProcess <> 0) then
begin
EnumProcessModules(hProcess, @lphModule, SizeOf(lphModule), lpcbNeeded);
GetModuleFilenameEx(hProcess, lphModule, lpFilename, SizeOf(lpFilename));
frmMain.ListBox1.Items.Add(lpFilename);
end;
end;
CloseHandle(hProcess);
end;
procedure TfrmMain.Button1Click(Sender: TObject);
begin
GetWinNTProcessList;
end;
Ketmar (2006-10-02 15:23:00) [1]угу. а ещё глубже оно вообще выглядит как \Device\HardDiskVolume0\...
%-)
Игорь Шевченко (2006-10-02 15:13:00) [2]Samurai Kruche chem Jakudza (02.10.06 14:51) [3]
> Нормальный путь вроде должен быть C:\WINDOWS\system32\smss.
> exe а не \\?:\WINDOWS\system32\smss.exe
Это одно и то же. Вторая форма - для использования в функциях базового API (LdrLoadDll, например)
Samurai Kruche chem Jakudza (2006-10-02 14:51:00) [3]
> Игорь Шевченко © (02.10.06 13:50) [2]
> Нормальный путь.
Нормальный путь вроде должен быть C:\WINDOWS\system32\smss.exeа не \\?:\WINDOWS\system32\smss.exe
Игорь Шевченко (2006-10-02 13:50:00) [4]
> для процессов winlogon.exe и smss.exe возвращает странный
> какойто путь к файлу
Нормальный путь.
Ketmar (2006-10-02 13:30:00) [5]не странный. вполне нормальный. вообще: не трогай эти процессы -- система здоровей будет. или просто учти -- бывают и такие пути. приводи к нормальному виду руками.