Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.038 c
14-1086458206
Gerry
2004-06-05 21:56
2004.06.27
Помгите обойти Delphi 6!!!!


8-1081688103
slayer
2004-04-11 16:55
2004.06.27
Господа мастера, подскажите плиз как обработь изображения с виде


1-1086902873
CyberSpy
2004-06-11 01:27
2004.06.27
Listview


14-1086949113
Polevi
2004-06-11 14:18
2004.06.27
реклама


14-1086852593
Pro
2004-06-10 11:29
2004.06.27
Нужна прога типа Диспетчер Задач