Sanal Klavye
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Sanal Klavye
Arkadaslar Klavyesiz kullanılmadan çalışan bilgisayarlarda
kullanılmak üzere Xp deki klavye gibi sanal bir klavye componenti yada böyle bir uygulama yapan varmıdır?
Selamlar,
kullanılmak üzere Xp deki klavye gibi sanal bir klavye componenti yada böyle bir uygulama yapan varmıdır?
Selamlar,
"Millete efendilik olmaz,hizmet olur,
kim Millete hizmet ederse,
o milletin efendisidir."
kim Millete hizmet ederse,
o milletin efendisidir."
- fatihtolgaata
- Üye
- Mesajlar: 382
- Kayıt: 04 Mar 2004 09:46
- Konum: K.çekmece / İstanbul
- İletişim:
Mustafa'nın dediği gibi o an aktif form hangi formsa klavye ona bilgi gonderecek. Kullanıcı form üzerinde herhangi bir component üzerinde olabilir. Edit, Curredit,rx,grid,buton herhangi biri üzerinde burada bir tuşa basınca sanal klavye çıkacak sonra sanal klavyeden bastığı her tuş o formda ne görev yapıyorsa onu yapacak yada bir edit sahasındaysa girilen tuşlar editin içine gelecek.
Kiosk makinalarındaki gibi gerçek klavye mouse yok. Touch screen bir ekran var.
Tam olarak istediğim bu. Problem sanal klave formundan basılan bilgiyi diger aktif forma aktarmak.
Selamlar,
Kiosk makinalarındaki gibi gerçek klavye mouse yok. Touch screen bir ekran var.
Tam olarak istediğim bu. Problem sanal klave formundan basılan bilgiyi diger aktif forma aktarmak.
Selamlar,
"Millete efendilik olmaz,hizmet olur,
kim Millete hizmet ederse,
o milletin efendisidir."
kim Millete hizmet ederse,
o milletin efendisidir."
Selam...
- Sorun sadece sendkeys ile bitmiyor... Şöyle bir problem var...
- ActiveControl denen olay problem yaşatabilir... Yani siz kendi formunuzdaki butona bastığınızda bu tuşun hangi forma/edit kutusuna vs. gönderileceğinin bilinmesi gerekir... Yani sizin formdaki butona basıldığında, formunuz focus olmamalı ki nereye senkey edileceği bilinsin...
Çözüm olarak aklıma gelen ilk şey, WinSight programı benzeri bir tracker tasarlamak.... Windows'daki tüm mesajlar hook edilerek sizin formunuzdan bir önceki form/bileşen vs. hangisi onun bir listeden tespit edilmesini sağlamak şeklinde. Zor ve detaylı bir işlemdir, kolay gelsin...
- Sorun sadece sendkeys ile bitmiyor... Şöyle bir problem var...
- ActiveControl denen olay problem yaşatabilir... Yani siz kendi formunuzdaki butona bastığınızda bu tuşun hangi forma/edit kutusuna vs. gönderileceğinin bilinmesi gerekir... Yani sizin formdaki butona basıldığında, formunuz focus olmamalı ki nereye senkey edileceği bilinsin...


- fatihtolgaata
- Üye
- Mesajlar: 382
- Kayıt: 04 Mar 2004 09:46
- Konum: K.çekmece / İstanbul
- İletişim:
SndKey32 fonksiyonu VisualBasic'dekinin bir kopyası niteliğindedir. Ben bunu kullanmadım. Dediğin gibi focus olayı gerçekten sorun oluyor. Bunun için sana söylediğim örneği incelemelisin. Bak bir de tam link veriyorum:
http://codecentral.borland.com/codecent ... g?id=18590
İki API komutu var. GetForegroundWindow ve SetForegroundWindow. Bunları SDK dökümanlarından incele. Tek yapman gereken bir tuş komponenti yapmak. Ardından şunun gibi bir mesajı yakalayıp işlemen lazım:
Yakalanacak mesaj ve prosedür:
Prosedürün içeriği:
kolay gelsin.
http://codecentral.borland.com/codecent ... g?id=18590
İki API komutu var. GetForegroundWindow ve SetForegroundWindow. Bunları SDK dökümanlarından incele. Tek yapman gereken bir tuş komponenti yapmak. Ardından şunun gibi bir mesajı yakalayıp işlemen lazım:
Yakalanacak mesaj ve prosedür:
Kod: Tümünü seç
procedure WMMouseActivate(var Msg: TWMMouseActivate);message WM_MOUSEACTIVATE;
Kod: Tümünü seç
procedure TForm1.WMMouseActivate(var Msg: TWMMouseActivate);
begin
msg.Result := MA_NOACTIVATE;
if (Wnd <> GetForegroundWindow)and(Wnd <> Handle)and(Wnd <> 0) then
begin
SetForegroundWindow(Wnd);
Windows.SetFocus(Wnd);
end;
end;
- Yukarda verilen linke bir gözatayım dedim... Koyulaştırdığım yeri okuyun...
Kusursuz... Focus almayan bir form olduğunu yazıyor... Bahsettiğim sorun da ortadan kalmış oldu...

The example shows how to create and use a form that acts as a virtual numeric keypad. The form is topmost and will not take the focus when clicked upon. Clicks on its "buttons" will create key events that go to whatever control in the active window that has the focus.