PDA

View Full Version : نوشتن رمز در يك پنجره باز ديگر و زدن Enter



دنیای دلفی
سه شنبه 09 تیر 1388, 15:55 عصر
سلام
من با استفاده از يك برنامه روي يك فايل اجرايي رمز گذاشتم و مي خواهم به وسيله يك برنامه ديگر كه با دلفي مي نويسم آن فايل را اجرا كنم و بعد از اجرا شدن يك پنجره باز مي شود كه رمز مي خواهد . حالا با برنامه دلفي نوشته شده مي خواهم رمز را در جعبه مربوطه نوشته و كليد Enter نيز به صورت خود كار فشار داده شود .

ممنون مي شوم راهنمايي كنيد . اگر نمونه كد باشد كه عاليه :لبخندساده::تشویق:

1485159
سه شنبه 09 تیر 1388, 20:16 عصر
ایول منهم میخواستم همین سوالو بپرسم.

دنیای دلفی
سه شنبه 09 تیر 1388, 20:24 عصر
پيدا شد براي كساي ديگه كه مي خواهند استفاده كنند .


procedure TForm1.Button3Click(Sender: TObject);
var
hnp:HWND;
function FindWindowByTitle(WindowTitle: string): Hwnd;
var
NextHandle: Hwnd;
NextTitle: array[0..260] of char;
begin
// Get the first window
NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST);
while NextHandle > 0 do
begin
// retrieve its text
GetWindowText(NextHandle, NextTitle, 255);
if Pos(WindowTitle, StrPas(NextTitle)) <> 0 then
begin
Result := NextHandle;
Exit;
end
else
// Get the next window
NextHandle := GetWindow(NextHandle, GW_HWNDNEXT);
end;
Result := 0;
end;


begin
// SendMessage(hEdit, WM_SETTEXT, 0, Integer(PChar('Hello')));

hnp:= FindWindowByTitle('Form1');//FindWindow('Form1',nil);
if hnp>0 then
begin
hnp:=FindWindowEx(hnp,0,'TEdit',nil);
SendMessage(hnp, WM_CHAR, Ord('H'),0); // Send 'H' letter.
SendMessage(hnp, WM_CHAR, Ord('i'),0); // Send 'i' letter.
SendMessage(hnp, WM_CHAR, Ord('!'),0); // Send '!' letter.
PostMessage(hnp, WM_KEYDOWN, VK_RETURN,0); // Send ENTER key.
end;
end;

1485159
چهارشنبه 10 تیر 1388, 12:44 عصر
begin
// Get the first window
NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST);
while NextHandle > 0 do
begin
// retrieve its text
GetWindowText(NextHandle, NextTitle, 255);
if Pos(WindowTitle, StrPas(NextTitle)) <> 0 then
begin
Result := NextHandle;
Exit;
end
میشه در مورد کد بالا توضیح بدین؟

دنیای دلفی
چهارشنبه 10 تیر 1388, 14:10 عصر
اين كد باعث مي شه كه Caption بالاي فرم (Title Bar) مقايسه بشه كه اگر مشابه بود Handle اونو برگردونه تابشه اون Edit رو پيدا كرد و داخلش نوشت

دنیای دلفی
چهارشنبه 10 تیر 1388, 14:11 عصر
hnp:=FindWindowEx(hnp,0,'TEdit',nil);
پيشنهاد مي كنم اگر با vb برنامه نوشته شده بود به جاي استفاده از Tedit از Edit استفاده كنيد

1485159
چهارشنبه 10 تیر 1388, 14:20 عصر
میشه بگید در هر سطر چیکار میکنه؟