Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.14;
Скачать: CL | DM;

Вниз

управление другой программой   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
3-44570
DevMaster
2003-06-20 12:09
2003.07.14
dxMasterView


1-44735
Erik
2003-07-01 13:39
2003.07.14
Неосвобождается com сервер.


1-44726
Rawman
2003-07-01 10:37
2003.07.14
PopUp в TMemo


1-44689
Bel
2003-06-30 18:33
2003.07.14
Excel Worksheets default?


14-44904
Ixion
2003-06-28 03:44
2003.07.14
Идеальная программа для компьютерного клуба