Konuyu Oyla:
  • Derecelendirme: 5/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Windows Mesajlaşma Sistemi Hk. Soru (+10 Puan)
#8
1. uygulamada Sleep ile thread bloklanıp, 2. uygulamadan da windows mesajı gönderilip aynı zamanda 2. uygulamanın donmaması/kilitlenmemesi isteniyorsa PostMessage ve SendMessage dışında SendMessageCallback callback fonksiyonu kullanılabilir.

SendMessageCallback fonksiyonu ile ilgili pencereye Windows mesajı gönderilir ve Windows procedure'ün çalışması beklenmeden hemen geriye dönülür.Windows procedure ilgili mesajı işledikten sonra yani çalıştıktan sonra, belirtilen callback fonksiyonu çağırarak mesajı işlediğini bildirir.

Dolayısı ile 1. uygulama Sleep ile bloklansa bile, 2. uygulamadan SendMessageCallback ile mesaj gönderildiğinde bir kilitlenme meydana gelmez.

Callback fonksiyon prototipi.
  VOID CALLBACK SendAsyncProc(
   _In_ HWND      hwnd,
   _In_ UINT      uMsg,
   _In_ ULONG_PTR dwData,
   _In_ LRESULT   lResult
 );

procedure SendAsyncProc(HWND: HWND; Msg: UINT; wParam: wParam;
 dwData: ULONG_PTR; lResult: LRESULT);
begin
 ShowMessage('mesaj işlendi');
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  p1Handle: HWND;
  dwData: UIntPtr;
begin
  p1Handle := FindWindow(nil, 'MainApp');
  if p1Handle = 0 then exit;
  if not IsWindow(p1Handle) then exit;

  dwData := 31;
  SendMessageCallback(p1Handle, WM_P2, 0, 0, @SendAsyncProc, dwData);

 ShowMessage('DONE');
end;

WWW
Cevapla


Bu Konudaki Yorumlar
Windows Mesajlaşma Sistemi Hk. Soru (+10 Puan) - Yazar: ismailkocacan - 06-09-2017, Saat: 22:58

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Soru : Interface mi, Abstract Class mı? uparlayan 3 3.969 24-08-2023, Saat: 20:15
Son Yorum: veteran
  [+10 Puan] String Manipülasyon İşlemleri Abdullah ILGAZ 16 12.716 20-04-2019, Saat: 00:48
Son Yorum: onurcan1977
  Dosya Bulma (Algoritmik Soru Serisi) yhackup 28 22.618 14-11-2018, Saat: 10:07
Son Yorum: engerex
  Tek dizi içinde öncelik sırası belirleme (+10 puan) Abdullah ILGAZ 4 5.121 29-11-2017, Saat: 12:07
Son Yorum: SimaWB
  Bir Record'un içini doldurma (+20 puan) Tuğrul HELVACI 21 19.448 05-10-2017, Saat: 16:33
Son Yorum: ismailkocacan



Konuyu Okuyanlar: 1 Ziyaretçi