![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте!
Для запуска чужого приложения использую такую функцию: Код:
procedure ExecApp(CommandLine: string); var sa : TSECURITYATTRIBUTES; si : TSTARTUPINFO; pi : TPROCESSINFORMATION; begin sa.nLength := sizeof(sa); sa.bInheritHandle := False; sa.lpSecurityDescriptor := nil; ZeroMemory(@si, SizeOf(si)); ZeroMemory(@pi, SizeOf(pi)); si.cb := SizeOf(si); si.dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES; si.wShowWindow := SW_SHOW; si.hStdInput := 0; si.hStdOutput := 0; si.hStdError := 0; CreateProcessW(nil, pchar(CommandLine), nil, nil, False, NORMAL_PRIORITY_CLASS, nil, nil, si, pi); end; UPD: Сам разобрался случайно. Такое поведение только когда запускаю приложение из Delphi. Когда запускаю отдельно - все ОК. >_< Последний раз редактировалось speles, 02.04.2013 в 03:21. |
#2
|
||||
|
||||
![]() Цитата:
Код:
var StartupInfo: TStartupInfo; ProcessInformation: TProcessInformation; begin ZeroMemory(@StartupInfo, SizeOf(TStartupInfo)); StartupInfo.cb:=SizeOf(TStartupInfo); StartupInfo.dwFlags:=STARTF_USESHOWWINDOW; StartupInfo.wShowWindow:=SW_SHOWNORMAL; if CreateProcess(nil, 'c:\WINDOWS\system32\calc.exe', nil, nil, False, 0, nil, nil, StartupInfo, ProcessInformation) then begin CloseHandle(ProcessInformation.hThread); CloseHandle(ProcessInformation.hProcess); end; end; и зачем флаг STARTF_USESTDHANDLES ??? Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
speles (02.04.2013)
|
#3
|
|||
|
|||
![]() Кажется, мне нужно больше спать.
![]() Всё действительно работает, просто процес который я запускал закрывался изза неверных входных данных. Спасибо за помощь. |