Главная страница
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.028 c
6-1083310141
Smirnoff
2004-04-30 11:29
2004.06.27
ftp - пересылка файла


1-1086763566
karlsn
2004-06-09 10:46
2004.06.27
Программно скроллировать текуст в tmemo


10-1013524555
flash1
2002-02-12 17:35
2004.06.27
А что под Delphi6 CORBA не работает?


1-1086958374
Дмитрий___
2004-06-11 16:52
2004.06.27
Плохая читаемость кода


11-1076154464
Sewix
2004-02-07 14:47
2004.06.27
Как узнать путь к программе на kol