![]() |
|
|
|
|
#1
|
|||
|
|||
|
|
|
#2
|
||||
|
||||
|
Ищещь по FindWindow Скайп, затем дочернее окно для ввода информации - посылаешь сообщение с нужным текстом, затем кнопку - посылаешь сообщении о нажатии.
|
|
#3
|
|||
|
|||
|
Цитата:
|
|
#4
|
|||
|
|||
|
вообще-то, это можно сделать просто через COM-интерфейс скайпа. Просто импортни соотв. объект и пользуй. Делал - работало.
|
|
#5
|
|||
|
|||
|
Нет . скайп был простым примером!
|
|
#6
|
||||
|
||||
|
Примерно так:
Код:
function EnumChildProc(WndCtrl : HWND; lParam : Longint) : Boolean; stdcall;
var
szClass : array[Byte] of Char;
begin
GetClassName(WndCtrl, szClass, SizeOf(szClass));
if (lstrcmpi(szClass, 'BUTTON') = 0) then
begin
SendMessage(hWndCtrl, WM_COMMAND, 0, hWndCtrl);
end;
Result := True;
end;
//----------------------------------------------------------
procedure EnumChild(Wnd : HWND);
begin
if (not EnumChildWindows(Wnd, @EnumChildProc, 0)) then
Exit;
end;
|
|
#7
|
|||
|
|||
|
Cделай пример для калкулятора:
Код:
procedure TForm1.btn1Click(Sender: TObject ); var cwnd , Wnd: HWND; begin Wnd:=FindWindow(nil, 'Calculator'); ShowWindow(Findwindow(nil,'Calculator'),SW_RESTORE); end; |
|
#8
|
||||
|
||||
|
Примерно так, но напрямую в Edit:
Код:
var
Wnd : HWND;
function EnumChildProc(WndCtrl : HWND; lParam : Longint) : Boolean; stdcall;
var
szClass : array[Byte] of Char;
Buffer : array[Byte] of Char;
St : String;
begin
GetClassName(WndCtrl, szClass, SizeOf(szClass));
// Это через кнопку
if (lstrcmpi(szClass, 'BUTTON') = 0) then
begin
SendMessage(WndCtrl, WM_GETTEXT, SizeOf(Buffer), Longint(@Buffer));
if Buffer[0] <> #0 then
begin
St := Buffer;
if St = '4' then
SendMessage(WndCtrl, WM_COMMAND, 0, WndCtrl);
end;
end
// Напрямую в Edit
else if (lstrcmpi(szClass, 'EDIT') = 0) then
begin
St := '4';
SendMessage(WndCtrl, WM_SETTEXT, 0, Longint(PChar(St)))
end;
Result := True;
end;
//----------------------------------------------------------
procedure EnumChild(Wnd : HWND);
begin
if (not EnumChildWindows(Wnd, @EnumChildProc, 0)) then
Exit;
end;
procedure TForm2.Button1Click(Sender: TObject);
var
Wnd: HWND;
begin
Wnd := FindWindow(NIL, 'Калькулятор');
if Wnd <> 0 then
begin
ShowWindow(Wnd, SW_RESTORE);
if not EnumChildWindows(Wnd, @EnumChildProc, 0) then
begin
Exit;
end;
end;
end;Последний раз редактировалось angvelem, 10.08.2011 в 01:05. |