|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
|  | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Проблема с CreateProcess Здравствуйте! Для запуска чужого приложения использую такую функцию: Код: 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  
			
			
			
			
		 | |||
| 
 | |||
|   Кажется, мне нужно больше спать.   Всё действительно работает, просто процес который я запускал закрывался изза неверных входных данных. Спасибо за помощь. |