PDA

View Full Version : شبیه سازی کلیک کردن و زدن کیبرد در برنامه دیگر



h_mohamadi
دوشنبه 30 بهمن 1396, 11:55 صبح
سلام دوستان و اساتید محترم
من یک برنامه دارم ویک فایل exe که دلفی است می خواهم از درون برنامه دلفی خودم بر روی دکمه هایی که که در فایل exe است کلیک کنم و یا یک جایی از کی برد استفاده کنم می خواستم ببینم چطوری می توانم این کار را از درون برنامه خودم انجام دهم
با تشکر

یوسف زالی
سه شنبه 01 اسفند 1396, 10:24 صبح
سلام
در این موارد قبلا خیلی بحث شده
توابعی مثل keybd_event و mouse_event برای همین کار هستند.
باید هندل اون دکمه ها رو هم در ویندوز استخراج کنید، یا این که موقعیت مکانی دکمه رو بدونید.
در این باره مطلب زیاد هست، جستجو کنید.

PayamKazemi
دوشنبه 07 اسفند 1396, 18:24 عصر
به جای VK_CONTROL کلید کیبورد دلخواهت رو بزار

keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);

ATULICUS
چهارشنبه 15 فروردین 1397, 15:39 عصر
سلام به همه عزیزان

چون بحث تقریبا مرتبط بود دیگه تاپیک جدید نزدم .

من از تو برنامه دلفی خودم با کد زیر تونستم یک دکمه رو در برنامه دیگه ای کلیک کنم ، تا اینجا مشکلی ندارم اما بعد از کلیک یه دیالوگ باکس باز میشه که فقط یه دکمه ok داره .... می خوام رو اونم کلیک کنم
از دوستان اگر کسی تونست ممنون میشم راهنمایی کنه .


ممنون !


unit Unit1;

interface


uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;


type
TForm1 = class(TForm)
edt_1: TEdit;
btn_1: TButton;
procedure btn_1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;


var
Form1: TForm1;


implementation


{$R *.dfm}


procedure TForm1.btn_1Click(Sender: TObject);
var


hdl_1 : integer ;
hdl_2 : integer ;
hdl_3 : integer ;


begin


hdl_1 := FindWindow(nil,PAnsiChar('__MY APPLICATION TITLE__')) ;
hdl_2 := FindWindowEX(hdl_1,0,nil,PAnsiChar('__MY BUTTON TITLE__'));
SendMessage(hdl_2,BM_CLICK,0,0);


l
end;


end.