![]() |
|
#1
|
|||
|
|||
![]() |
#2
|
||||
|
||||
![]() Ищещь по FindWindow Скайп, затем дочернее окно для ввода информации - посылаешь сообщение с нужным текстом, затем кнопку - посылаешь сообщении о нажатии.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#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; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#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; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 10.08.2011 в 01:05. |
#9
|
|||
|
|||
![]() чтото он ругаеться
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) btn1: TButton; procedure btn1click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Wnd : HWND; implementation {$R *.dfm} procedure EnumChild(Wnd : HWND); begin if (not EnumChildWindows(Wnd, @EnumChildProc, 0)) then Exit; end; procedure TForm1.btn1click(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; end. Последний раз редактировалось criss009, 10.08.2011 в 01:20. |
#10
|
||||
|
||||
![]() Вот архив:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#11
|
|||
|
|||
![]() restore работает а вот написать не хочет
У тя 7? |
#12
|
||||
|
||||
![]() Проверял на Дельфи 7 и 2009 + XP.
архив с exe-шником. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 10.08.2011 в 01:41. |