Arka planda çalışan bir uygulamaya postmessage ile tuş gönd.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
fatihbarut

Arka planda çalışan bir uygulamaya postmessage ile tuş gönd.

Mesaj gönderen fatihbarut »

Merhaba arkadaşlar

Bildiğiniz gibi şu kod ön planda çalışan bir programa tuş basılmış kodu gönderir.


procedure TForm1.Button1Click(Sender: TObject);
var
h: HWND;
begin
h := FindWindow(nil, 'Main Form Caption');
if h <> 0 then PostMessage(h, WM_KEYDOWN, 65,0);
end;

ancak programı ön plana almadan (ki onun da kodu var malum) arka planda olduğu halde bir tuş basıldı mesajı nasıl gönderilir.
Örnek, notepad arka planda olduğu halde notepad'e "merhaba dünya" nasıl yazdırılır.
Teşekkürler.
Fatih
Kullanıcı avatarı
ikurt07
Üye
Mesajlar: 120
Kayıt: 11 Kas 2005 04:21
Konum: Antalya
İletişim:

Re: Arka planda çalışan bir uygulamaya postmessage ile tuş gönd.

Mesaj gönderen ikurt07 »

Kod: Tümünü seç

 
I := 71 
SendKeys('Prg. Caption', [VK_Menu, I]);

Kod: Tümünü seç


[code]function SendKeys(ClassOrCaption:PChar;Keys:array of Integer):Boolean;
var
hW:HWND;
Ix:Integer;
begin
  Application.ProcessMessages;
  hW:=FindWindow(ClassOrCaption,nil);
  if hW<=0 then hW:=FindWindow(nil,ClassOrCaption);
  Result:=hW>0;
  if Result then begin
    Result:=SetForeGroundWindow(hW);
    if not Result then Exit;
    for Ix:=0 to High(Keys) do KeyBd_Event(Keys[Ix], 0, 0, 0);
    for Ix:=High(Keys) downto 0 do Keybd_Event(Keys[Ix], 0, KEYEVENTF_KEYUP, 0);
  end;
  ActivateWindow(Application.Handle);
end;
Belki İşine yarayabilir
fatihbarut

Re: Arka planda çalışan bir uygulamaya postmessage ile tuş gönd.

Mesaj gönderen fatihbarut »

çok teşekkür ederim.
yalnız activatewindows apisi uses da hangi uniti kullanıyor?
Cevapla