Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.019 c
14-1086509288
ArMellon
2004-06-06 12:08
2004.06.27
КОДИРОВКА


1-1086687898
SendeR
2004-06-08 13:44
2004.06.27
Неудалимая прога......


14-1086946641
karlsn
2004-06-11 13:37
2004.06.27
где скачать delphiX под 7 дельфи???


14-1086328993
MBo
2004-06-04 10:03
2004.06.27
Пятничные несложные задачки.


14-1086155132
Piter
2004-06-02 09:45
2004.06.27
Обет молчания




   Наверх