Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.008 c
14-44893
Empleado
2003-06-27 11:20
2003.07.14
Сегодня пятница ... ржомс


9-44528
Esc
2003-01-21 22:18
2003.07.14
Лайтмэп для ландшафта.


3-44600
www
2003-06-21 07:59
2003.07.14
Индексы в Paradox


14-44862
Black_phoenix
2003-06-27 09:07
2003.07.14
Удалёное администратирование , снова ? а стоит ли ?


1-44748
INCOGNITO
2003-06-30 23:36
2003.07.14
Вопрос по TStringGrid





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский