Вниз
Скачать: CL | DM;

Вызов gbak   Найти похожие ветки 

 
Petrovich   (2002-01-08 10:25) [0]

Plz! HLP!
Как выполнить из моей проги gbak.exe с моими параметрами?
Через ShellExecute не получилось.


 
Alexandr ©   (2002-01-08 10:36) [1]

как это не получилось?


 
Petrovich   (2002-01-08 10:44) [2]

>Alexandr
Буквально вот так:

params:="-b -t -user SYSDBA -password masterkey base.gdb back.gdb";
fpath:=ExtractFileDir(ParamStr(0));
ShellExecute(handle, nil, PChar(fpath+"\qbak.exe"),PChar(params), nil, SW_SHOWNORMAL);

Не запускается!


 
Alexandr ©   (2002-01-08 11:20) [3]

а чего пишет-то.
А то я так делаю.



WinExecAndWait32("C:\archive\pkunzip.exe -e -o asd.zip",SW_SHOWNORMAL);

где

function WinExecAndWait32(FileName:String; Visibility : integer):DWORD;
var

zAppName:array[0..512] of char;
zCurDir:array[0..255] of char;
WorkDir:String;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin

StrPCopy(zAppName,FileName);
GetDir(0,WorkDir);
StrPCopy(zCurDir,WorkDir);
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo);


StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
if not CreateProcess(nil,
zAppName,nil,nil,false,CREATE_NEW_CONSOLE or IDLE_PRIORITY_CLASS,
nil,nil,StartupInfo,ProcessInfo) then Result := $FFFFFFFF


else begin
WaitforSingleObject(ProcessInfo.hProcess,INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess,Result);
end;
end;





 
Alexandr ©   (2002-01-08 11:22) [4]

это конечно не gbak,
но разницы никакой не должно быть.


 
Petrovich   (2002-01-08 12:11) [5]

O"k! Все работает. Спасибо. Укажу на тебя в "Благодарностях" к программе.


 
Alexandr ©   (2002-01-08 12:32) [6]

а что-за программа-то?
вообще-то код не мой.
Я его взял из советов от Валентина Озерова
кстати, там еще такое замечание есть


вместо



--------------------------------------------------------------------------------
WaitforSingleObject(ProcessInfo.hProcess,INFINITE);

лучше написать:



--------------------------------------------------------------------------------
while WaitforSingleObject(ProcessInfo.hProcess,200)=WAIT_TIMEOUT do
Repaint;

Смысл замены прост: в первом варианте главное окно ждёт завершения вызванного сообщения, не обрабатывая при этом никаких событий. Вследствие этого главное окно даже не перерисовывается, что выглядит очень некрасиво. Второй вариант исправляет этот недостаток.



 
Alexandr ©   (2002-01-08 12:33) [7]

кстати, а что-за программу-то пишешь?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.008 c
14-8982
Ивашка
2001-11-23 11:58
2002.02.04
как защитить авторские права программы


1-8920
Eraser
2002-01-17 13:39
2002.02.04
Название ComboBox


6-8965
Вован
2001-11-11 13:18
2002.02.04
Download files - как вытащить файл, переданный из формы HTML


3-8797
andey
2001-12-20 19:31
2002.02.04
подскажите


14-8989
fliz
2001-11-30 11:42
2002.02.04
после установки Дельфи5 вместо иконок компонентов какой-то мусор.Лечится?




   Наверх