Главная страница
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.023 c
3-1086078957
very beginer
2004-06-01 12:35
2004.06.27
Шрифты в DBGrid и DBEdit


1-1086939050
Григорьев Антон
2004-06-11 11:30
2004.06.27
Совместимы ли borlandmm.dll разных версий?


1-1086972333
Apocalepse
2004-06-11 20:45
2004.06.27
Тот же текстовый редактор. Теперь сохранение :-)


1-1087023428
Cherepah
2004-06-12 10:57
2004.06.27
TMaskEdit и TSpeedButton


14-1086983057
Феликс
2004-06-11 23:44
2004.06.27
Подскажите хороший форум потолько по Visual Basic