![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
запуск DOS приложения
toropoff © (2012-10-23 21:45:00)никогда бы не подумал что тормознусь на столь тривиальной задаче запустить дос приложение и дождаться его завершения.
с десяток кодов перепробывал. вот последний:
Procedure RunRAR(param: String);
var
StartInfo: TStartUpInfo;
ProcInfo: TProcessInformation;
createOK: Boolean;
sMyRAR: string;
begin
FillChar(StartInfo, SizeOf(TStartUpInfo), #0); FillChar(ProcInfo, SizeOf(TProcessInformation), #0);
StartInfo.cb := SizeOf(TStartUpInfo);
StartInfo.dwFlags := STARTF_USESHOWWINDOW;
StartInfo.wShowWindow := SW_SHOW;
sMyRAR := 'c:\Program Files\WinRAR\rar.exe';
createOK := CreateProcess(PChar(sMyRAR), PChar(sMyRAR+' '+param), Nil, Nil, false, CREATE_NEW_PROCESS_GROUP+HIGH_PRIORITY_CLASS, NIL, NIL, STARTINFO, PROCINFO);
if createOK then waitForSingleObject(PROCINFO.HPROCESS, Infinite) else ShowMessage('error');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
runrar('a -m0 -rr c:\test.rar c:\testDir');
end;
не создается процесс и всё..
Delphi2007
kilkennycat (2012-10-24 11:06:00) [1]честно признаюсь, что до сего момента не особо делал разницу между консольным и дос....
Inovet (2012-10-24 09:23:00) [2]> [9] kilkennycat © (24.10.12 09:11)
> rar.exe - консольное приложение
консольная - ключевое слово.
kilkennycat (2012-10-24 09:11:00) [3]эт вы зря. rar.exe - консольное приложение
Palladin (2012-10-24 09:11:00) [4]rar консольная утилита
Inovet (2012-10-24 08:17:00) [5]> [7] Anatoly Podgoretsky © (24.10.12 07:16)
Автору пофиг, лишь бы окошко чёрное с курсором было.
Anatoly Podgoretsky (2012-10-24 07:16:00) [6]WinRAR это не ДОС приложение, смотрю даже слово Win в название не смущает.
kilkennycat (2012-10-23 23:16:00) [7]5 - понятно. 50 - странно...
toropoff (2012-10-23 22:19:00) [8]администрация, удалите пожалуйста эту тему, проблема оказалась в 2007 дельфи..
хоть и запускаю от админа но доступ почему-то не имеет..
toropoff (2012-10-23 22:12:00) [9]ShellExecute возвращает - 5, CreateProcess - 50
toropoff (2012-10-23 22:01:00) [10]ок щас попробую..
как ни странно на DelphiXE3 код отработал:
ShellExecute(0,'open', Pchar('c:\Program Files\WinRAR\rar.exe'), Pchar('a -m0 -rr c:\test.rar c:\testDir'), nil ,SW_SHOWNORMAL);
заменил на PAnsiChar в 2007 - один фиг нифига не пашет..
интересно даже стало.. буду копать..
toropoff (2012-10-23 21:54:00) [11]ShellExecute(0,'open', Pchar('c:\Program Files\WinRAR\rar.exe'), Pchar('a -m0 -rr c:\test.rar c:\testDir'), nil ,SW_SHOWNORMAL);
так же не катит..
kilkennycat (2012-10-23 21:54:00) [12]после CreateProcess вызвать GetLastError