Показать сообщение отдельно
  #1  
Старый 20.12.2012, 14:09
a.u.vasiliev a.u.vasiliev вне форума
Прохожий
 
Регистрация: 20.12.2012
Сообщения: 3
Репутация: 10
По умолчанию Процессы Windows

Есть 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;
Админ: Пользуемся тегами для оформления кода!
Ответить с цитированием