![]() |
|
#1
|
|||
|
|||
![]() Есть 2 функции. 1 определение пользователя под которым запущена программа, 2 определяет запущен ли процесс (например "Calc.exe") на пк любым пользователем! Необходимо сделать так чтобы 2 функция определяла запущен ли процесс Calc.exe тем пользователе под которым работает программа!
Код:
//Получение имени пользователя******************************* function GetCurrentUserName(var CurrentUserName: string): Boolean; var BufferSize: DWORD; pUser: PChar; begin BufferSize := 0; GetUserName(nil, BufferSize); pUser := StrAlloc(BufferSize); try Result := GetUserName(pUser, BufferSize); CurrentUserName := StrPas(pUser); finally StrDispose(pUser); end; end; //***************************************************************************** //Получение данных о процессе function processExists(exeFileName: string): Boolean; var ContinueLoop: BOOL; FSnapshotHandle: THandle; FProcessEntry32: TProcessEntry32; begin FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); FProcessEntry32.dwSize := SizeOf(FProcessEntry32); ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); Result := False; while Integer(ContinueLoop) <> 0 do begin if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(ExeFileName))) then begin Result := True; end; ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); end; CloseHandle(FSnapshotHandle); end; Последний раз редактировалось Admin, 20.12.2012 в 14:19. |