Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

запуск 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо