Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.25;
Скачать: CL | DM;

Вниз

Опознать процесс !   Найти похожие ветки 

 
psa247 ©   (2005-08-03 10:19) [0]

Как, если это возможно, с помощью WinApi отличить процесс Windows(MicroSoft) от остальных?


 
Игорь Шевченко ©   (2005-08-03 10:23) [1]

Такого процесса нету


 
psa247 ©   (2005-08-03 10:29) [2]

В смысле стандартные виндовские процессы, типа: SVCHOST и т.п.


 
Digitman ©   (2005-08-03 10:37) [3]

а это зачем понадобилось ? каков тайный смысл в этом ?


 
psa247 ©   (2005-08-03 10:45) [4]

Ничего тайного; Это в качестве доп. информации.


 
Игорь Шевченко ©   (2005-08-03 10:48) [5]


> В смысле стандартные виндовские процессы, типа: SVCHOST
> и т.п.


Очевидно, по учетной записи создавшей процесс.

function SIDToName (const SID: PSID): string;
var
 Use: SID_NAME_USE;
 DomainName: ZString;
 DomainNameLength: DWORD;
 Name: ZString;
 NameLength: DWORD;
begin
 DomainNameLength := SizeOf(DomainName);
 NameLength := SizeOf(Name);
 if not LookupAccountSid (nil, SID, Name, NameLength, DomainName,
    DomainNameLength, Use) then
   Result := "***"
 else
   Result := Name;
end;

function GetUserName (ProcessId: Cardinal): string;
var
 AccessToken: THandle;
 SidInfo: PSIDANDATTRIBUTES;
 ReturnLength: DWORD;
 ProcessHandle: THandle;
begin
 Result := "";
 ProcessHandle := OpenProcess(PROCESS_QUERY_INFORMATION, false,
   ProcessId);
 if ProcessHandle = 0 then
   Exit;
 try
   if not OpenProcessToken(ProcessHandle, TOKEN_QUERY, AccessToken) then
     Exit;
   GetMem (SidInfo, 4096);
   try
     Win32Check(GetTokenInformation(AccessToken, TokenUser, SidInfo, 4096,
       ReturnLength));
     Result := SidToName(SidInfo^.Sid);
   finally
     FreeMem(SidInfo);
     CloseHandle(AccessToken);
   end;
 finally
   CloseHandle(ProcessHandle);
 end;
end;


Дальше сравнивать полученной имя с системными...


 
psa247 ©   (2005-08-03 13:11) [6]

Пример пригодился, спасибо...
Немного не то я хотел. Можно ли отобразить только "родные" Windows-кие процессы?


 
BiN ©   (2005-08-03 13:21) [7]

Тогда копай в сторону определения цифровой подписи у файла образа процесса.


 
psa247 ©   (2005-08-03 13:28) [8]

Не факт.


 
Игорь Шевченко ©   (2005-08-03 14:04) [9]


> Можно ли отобразить только "родные" Windows-кие процессы?


Чем определяется степень родства ?


 
psa247 ©   (2005-08-03 16:00) [10]

Насчет родства - не так выразился. Игорь, обратите внимание на процедуру GatherData из http://www.schevchenko.net.ru/SRC/QuerySystemInformation_60.zip
При частом обращении - съедает память, ошибку пока не нашел


 
Джо ©   (2005-08-03 16:04) [11]

Читай информацию VERSION_INFO из модуля. В разделе "копирайт" ищи Microsoft. Возможно, этого будет достаточно для "грязного" метода.


 
Игорь Шевченко ©   (2005-08-03 16:15) [12]

psa247 ©   (03.08.05 16:00) [10]

Конечно съедает, так как освобождения там не предусмотрено. Собственно, это просто пример использования, а не готовая программа.



Страницы: 1 вся ветка

Текущий архив: 2005.09.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.079 c
2-1124434319
Ande
2005-08-19 10:51
2005.09.25
Можна ли добавлять динамически пункты меню в MainMenu?


14-1125126358
kot andrei
2005-08-27 11:05
2005.09.25
Логическая цепочка чисел....


14-1125154722
psa247
2005-08-27 18:58
2005.09.25
Дыра в ядре 2000


14-1125083646
Gero
2005-08-26 23:14
2005.09.25
Junction на сетевую папку


1-1125566083
Defunct
2005-09-01 13:14
2005.09.25
Как бороться с таким вот исключением?