Текущий архив: 2004.06.27;
Скачать: CL | DM;
ВнизЗапуск внешней программы из сервиса Найти похожие ветки
← →
slap (2004-05-18 08:53) [0]Как запустить внешнюю программу из сервиса!?
← →
Viman © (2004-05-18 09:10) [1]Как обычно запускаешь
← →
slap (2004-05-18 09:11) [2]я пробую WinExec, ShellExecute ! но поятно , что они не будут работать, так как у сервиса нету хэндлера!
← →
slap (2004-05-18 09:13) [3]к примеру если WinExec("Notepad c:\rc.txt", SW_SHOW), то в процессах появляется notepad, но я его визуально не наблюдаю!
← →
Viman © (2004-05-18 09:17) [4]Попробуй укажи флаг SW_SHOWNORMAL вместо SW_SHOW.
← →
slap (2004-05-18 09:21) [5]то же самое!
← →
kav (2004-05-18 10:07) [6]Вот процедура которая работает в моём сервисе.
В качестве параметра указываешь путь.
Как работает сам незнаю. тоже откудато скопировал.
procedure RunProg(CmdLine:String);
const BUFSIZE = 2000;
var SecAttr : TSecurityAttributes;
hReadPipe,
hWritePipe : THandle;
StartupInfo: TStartUpInfo;
ProcessInfo: TProcessInformation;
Buffer : Pchar;
begin
with SecAttr do
begin
nlength := SizeOf(TSecurityAttributes);
binherithandle := true;
lpsecuritydescriptor := nil;
end;
if Createpipe (hReadPipe, hWritePipe, @SecAttr, 0) then
begin
Buffer := AllocMem(BUFSIZE + 1); // Allochiamo un buffer di dimensioni BUFSIZE+1
FillChar(StartupInfo, Sizeof(StartupInfo), #0);
StartupInfo.cb := SizeOf(StartupInfo);
StartupInfo.hStdOutput := hWritePipe;
StartupInfo.hStdInput := hReadPipe;
StartupInfo.dwFlags := STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := SW_HIDE;
CreateProcess(nil,PChar(CmdLine),@SecAttr,@SecAttr,true,NORMAL_PRIORITY_CLASS,nil,nil,StartupInfo,ProcessInfo);
WaitForSingleObject(ProcessInfo.hProcess, INFINITE );
FreeMem(Buffer);
CloseHandle(ProcessInfo.hProcess);
CloseHandle(ProcessInfo.hThread);
CloseHandle(hReadPipe);
CloseHandle(hWritePipe);
end;
end;
← →
Игорь Шевченко © (2004-05-18 10:16) [7]Программу из сервиса надо запускать на desktop пользователя, или разрешить сервису взаимодействие с Desktop"ом пользователя.
А вообще, ерунда это - программы из сервиса запускать, потенциально вредоносное занятие.
← →
slap (2004-05-18 10:27) [8]kav ,работает!!!! но все таки сделаю запуск через виндовый шедулер,так безопасней будет!
Страницы: 1 вся ветка
Текущий архив: 2004.06.27;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.034 c