Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.04;
Скачать: 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 вся ветка

Текущий архив: 2002.02.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.008 c
1-8944
Сержик
2002-01-18 09:48
2002.02.04
Как подменить exe-шник из него самого?


1-8931
Matvey
2002-01-17 01:05
2002.02.04
Загруженность процессора (во время цикла)?


4-9038
Artis
2001-12-09 13:24
2002.02.04
Как узнать размер файла?


1-8886
Dmitriy_R
2002-01-15 13:51
2002.02.04
Генерация случайного числа в диапазоне 30......90


1-8840
.: Joiro :.
2002-01-19 13:12
2002.02.04
Как