Главная страница
    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.47 MB
Время: 0.007 c
7-44922
Злодей
2003-05-01 12:07
2003.07.14
Модем


14-44896
Dimich1978
2003-06-27 20:44
2003.07.14
ПОЗДРАВИМ SERGO


14-44819
Достатый
2003-06-25 23:28
2003.07.14
Забодало. Скупой платит дважды.


4-44949
firefox
2003-05-10 17:34
2003.07.14
Как сменить иконку у файла


14-44838
McSimm
2003-06-26 11:31
2003.07.14
Клиент для форумов. Dolphin





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский