Форум: "Потрепаться";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];
Внизуправление другой программой Найти похожие ветки
← →
LinOS (2003-06-27 08:01) [0]Хочу сделать: что бы моя программа нажималм определённые кнопки в чужоп приложении. Можноли такое реализовать и как?
← →
Poirot (2003-06-27 08:17) [1]Можно!
Тебе поможет MSDN (говорю сразу - РУССКОГО ВАРИАНТА НЕТ)!!!%)
← →
LinOS (2003-06-27 08:38) [2]А пример кода может у кого есть?
← →
Rawman (2003-06-27 10:05) [3]есть уже готовый модуль, непомню откуда выкочал, но могу кинуть
← →
LinOS (2003-06-27 10:19) [4]Удалено модератором
Примечание: Личная переписка
← →
Vetal (2003-06-27 11:35) [5]Удалено модератором
Примечание: Личная переписка
← →
Anatoliy (2003-06-27 16:28) [6]Через WinAPI. Можно приблизительно так
function UnpackESSOFile(const FileName, Params, StartDir: string;
InitialState: TExecState): Integer;
CONST ShowCommands: array[TExecState] of Integer =
(SW_SHOWNORMAL, SW_MINIMIZE, SW_SHOWMAXIMIZED, SW_HIDE);
WinTitle="Установка Прайс-листа ООО "Эсо - Автотехникс"";
WinClass="#32770";
VAR Step:Integer;
Info:TShellExecuteInfo;
ExitCode:DWORD;
procedure AutoCommands(VAR AStep:Integer);
VAR H,H1:LongInt;
begin
case AStep of
0:begin
H:=FindWindow(WinClass,WinTitle);
if H<>0 then
begin
H1:=FindWindowEx(H,0,"Button","Далее >");
if H1<>0 then SendMessage(H1,BM_CLICK,0,0);
Inc(AStep)
end;
end;
1:begin
H:=FindWindow(WinClass,WinTitle);
if H<>0 then
begin
H1:=FindWindowEx(H,0,"WText","Инсталляция прошла успешно");
if H1<>0 then
begin
H1:=FindWindowEx(H,0,"Button","OK");
if H1<>0 then SendMessage(H1,BM_CLICK,0,0);
end;
end;
end;
end;
end;
begin
Step:=0;
FillChar(Info, SizeOf(Info), 0);
Info.cbSize := SizeOf(TShellExecuteInfo);
with Info do begin
fMask := SEE_MASK_NOCLOSEPROCESS;
Wnd := Application.Handle;
lpFile := PChar(FileName);
lpParameters := PChar(Params);
lpDirectory := PChar(StartDir);
nShow := ShowCommands[InitialState];
end;
if ShellExecuteEx(@Info) then begin
repeat
AutoCommands(Step);
Application.ProcessMessages;
GetExitCodeProcess(Info.hProcess, ExitCode);
until (ExitCode <> STILL_ACTIVE) or Application.Terminated;
Result := ExitCode;
end
else Result := -1;
end;
function UnpackESSOFile(const FileName, Params, StartDir: string;
InitialState: TExecState): Integer;
CONST ShowCommands: array[TExecState] of Integer =
(SW_SHOWNORMAL, SW_MINIMIZE, SW_SHOWMAXIMIZED, SW_HIDE);
WinTitle="Установка Прайс-листа ООО "Эсо - Автотехникс"";
WinClass="#32770";
VAR Step:Integer;
Info:TShellExecuteInfo;
ExitCode:DWORD;
procedure AutoCommands(VAR AStep:Integer);
VAR H,H1:LongInt;
begin
case AStep of
0:begin
H:=FindWindow(WinClass,WinTitle);
if H<>0 then
begin
H1:=FindWindowEx(H,0,"Button","Далее >");
if H1<>0 then SendMessage(H1,BM_CLICK,0,0);
Inc(AStep)
end;
end;
1:begin
H:=FindWindow(WinClass,WinTitle);
if H<>0 then
begin
H1:=FindWindowEx(H,0,"WText","Инсталляция прошла успешно");
if H1<>0 then
begin
H1:=FindWindowEx(H,0,"Button","OK");
if H1<>0 then SendMessage(H1,BM_CLICK,0,0);
end;
end;
end;
end;
end;
begin
Step:=0;
FillChar(Info, SizeOf(Info), 0);
Info.cbSize := SizeOf(TShellExecuteInfo);
with Info do begin
fMask := SEE_MASK_NOCLOSEPROCESS;
Wnd := Application.Handle;
lpFile := PChar(FileName);
lpParameters := PChar(Params);
lpDirectory := PChar(StartDir);
nShow := ShowCommands[InitialState];
end;
if ShellExecuteEx(@Info) then begin
repeat
AutoCommands(Step);
Application.ProcessMessages;
GetExitCodeProcess(Info.hProcess, ExitCode);
until (ExitCode <> STILL_ACTIVE) or Application.Terminated;
Result := ExitCode;
end
else Result := -1;
end;
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.014 c