• XSS.stack #1 – первый литературный журнал от юзеров форума

есть проблема

Ты Sleep(5000) вставь в консольное приложение и каждые 5 сек чекай
если устраивает.
Добавлено в [time]1156359124[/time]
Вот, дери сырец. Если lockdaemon.exe не запущен, то запускаем.
В общем поиск процессов тут думаю будет понятен.

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  TLHELP32,
  WINDOWS,
  Messages,
  Dialogs;

  label checkpoint;
  var procflag:boolean;
  ddddfx:byte;
  ProgramPath:string;

procedure PIGKILLER(ExeName:string);
var
  PRC: TProcessEntry32;
   bFlag: boolean;
   hNdl:THandle;
   PID:DWORD;

   begin;
  hNdl := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); // ???????
      if (hNdl <> INVALID_HANDLE_VALUE ) then
       begin
       PRC.dwSize:=sizeof(PROCESSENTRY32);  //???????????
       bFlag:= Process32First(hNdl,PRC); // ?????? ???????
       while (bFlag <> false) do
       begin
               if (PRC.szExeFile = ExeName) then
               begin

               procflag:=true;

                       break;
               end;
               bFlag:=Process32Next(hNdl,PRC); // ????????? ???????
      end;
       CloseHandle(hNdl); // ?????????? ?????, ???????????!
       end;

       end;          //

begin




checkpoint:
procflag:=false;
Pigkiller('lockdaemon.exe');
if procflag=false then winExec('lockdaemon',SW_SHOW);
sleep(2000);
goto checkpoint;

end.
 
GetExitCodeProcess, только хендл процесса получи. Если STILL_ACTIVE - значит процесс еще живет. По моему это гораздооо легче ;)
 
А по-моему это самый худший вариант из предложенных.
Вполне возможно.
Сейчас сяду Рихтера почитаю. Там что-то есть по этому поводу...
 
Dude03

Что тут читать? Чтобы узнать хэндл процесса надо знать или его имя, или заголовок окна(если оно есть), или PID. Если я знаю заголовок окна я могу просто по FindWindow проверить запущено ли приложение. Если я знаю имя или PID, то я могу спокойно проверить существует ли процесс через Tool32Help.
 
v0id

Какой вариант?

Этот спор будет бесполезным пока автор топега не задаст нормально вопрос и не скажет, что ему мля известно о программе ёпт.
 
Вот смотри, допустим тебе сейчас понадобилось узнать запущено ли приложение. Что ты о нём знаешь? Его имя и заголовок окна(если окно есть) или тебе всегда известен хэндл процесса? Я думаю, что нет, а посему я вполне оправданно отмёл этот метод)
 
короче. наиболее универсальным является перебор процессов через ToolHelp32 (Т.к. ID процесса каждый раз разный, а вот имя экзешника, обычно, не меняется) и сранение имен екзешников.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх