
30.11.2008, 00:10
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Вот что у меня в итоге получилось
Код:
TForm1 *Form1;
PROCESS_INFORMATION pi;
STARTUPINFO si;
void thr(void *Pvoid)
{
char fnm[400];
DWORD code;
for(;;)
{
Sleep(300);
GetExitCodeProcess(pi.hProcess,&code);
if(code!=STILL_ACTIVE)
{
MessageBox(0,"!!!","!!!!",MB_OK);
GetModuleFileName(NULL,fnm,400);
memset((void*)&pi,NULL,sizeof(pi));
memset((void*)&si,NULL,sizeof(si));
CreateProcess(fnm,NULL,NULL,NULL,false,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);
memset(fnm,NULL,400);
}
}
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
char fnm[400];
GetModuleFileName(NULL,fnm,400);
si.cb=sizeof(si);
si.lpReserved=NULL;
si.lpDesktop=NULL;
si.lpTitle=NULL,
si.dwFlags=STARTF_FORCEONFEEDBACK;
si.cbReserved2=0;
si.lpReserved2=NULL;
HANDLE mut=CreateMutex(0,1,"emokillll");
WaitForSingleObject(mut,-1);
CreateProcess(fnm,NULL,NULL,NULL,false,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);
_beginthread(thr,0,0);
}
ЗЫ: если экзе потом обозвать svchost'ом то манипуляция taskkill /im process.exe /f обламывается ,правда палевный способ
|
|
|