Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

ekran klavyesi

Konu, 'C / C++' kısmında alibayuk tarafından paylaşıldı.

  1. alibayuk

    alibayuk Yeni Üye

    Kayıt:
    3 Kasım 2008
    Mesajlar:
    20
    Beğenilen Mesajlar:
    0
    selam arkadaşlar;

    benim bi sorum var size danışayım dedim. şimdi ben bir çok dilde mikrodenetleyicilere program yazıyorum. ama artık bütün kodları birbirine geçirmeye başladım:)
    bende kendi kendime dedim ki becerebilirsem kendime bi program yazayım istedigim kelimeleri ekleyeyim bu programa ve o kelimeye tıkladıgımda aynı windowsun ekran klavyesi gibi çalışıp harf yerine direk komutu ekleyeyim. hem daha seri olur benim için hemde komutları hatırlamakla zaman kaybetmem.
    tek sorunum bu programa nasıl başlayacagım. internette biraz araştırdım anlayabilecegim bi kaynak bulamadım. az buçuk c++ biliyorum siz nasıl başlayacagımı söylerseniz çok yardımcı olursunuz.
    şimdiden kolay gelsin.
     
  2. Furkan Onka Uğur

    Furkan Onka Uğur Moderatör Yetkili Kişi

    Kayıt:
    12 Eylül 2008
    Mesajlar:
    3,691
    Beğenilen Mesajlar:
    43
    Şehir:
    Ankara
    Windowstan bahsediyorsak WinAPI kullanacağız demektir. Üstünkörü bir incelemeyle:
    1) GUI tasarlamak için bir toolkit ya da kütüphane, tabi winapi kullanarak da halledebiliriz hepsini.
    2) Gerekli Api'lerin isimleri:
    - GetForegroundWindow, SendMessage, PostMessage, FindWindow, FindWindowEx...
    - Gerekli veri yapıları (yukarıdakiler için özel veri yapısına gerek yok fakat başka apiler istiyor olabilir).
    - Çeşitli sabitler (aşağıda sözü edilecek olan başlık dosyasında mevcuttur).
    3) windows.h başlık dosyası
    4) user32.dll, nt.dll vs. gibi sistem dosyaları yani Windows.

    Eğer takıldığınız yer olursa yardım etmeye çalışırım.
     
  3. KUTALMIS

    KUTALMIS Daimi Üye

    Kayıt:
    9 Kasım 2009
    Mesajlar:
    785
    Beğenilen Mesajlar:
    1
    keybd_event apisi direkt istediğin tuşu basar, tabi programa özel değil, tüm sistem için, ekran klavyesi gibi, mesela capslock ya da numlock vs.
    Komutları program içinde yaz, daha sonra döngü içinde her harf için keybd_event i çağırabilirsin. Tabi ekran klavyesi gibi dediğin için.

    Aslında doğru olanı, yazmak istediğin programın editbox handlesini alıp mesaj ile yazdırmaktır.
     
  4. KUTALMIS

    KUTALMIS Daimi Üye

    Kayıt:
    9 Kasım 2009
    Mesajlar:
    785
    Beğenilen Mesajlar:
    1
    Başlangıç olması açısından, verilen stringi 2 sn de bir yazan program. Mesela bir text belgesi aç, içine tıkla yazdığını göreceksin :)

    PHP:
    #include <windows.h>

    int main(){
        
    int i;
        
    char asd[]="selam moruk";    
        
        for(;;){
            for(
    i=0;i<strlen(asd);i++){
                
    keybd_eventtoupper(asd[i]) , 0,KEYEVENTF_EXTENDEDKEY 0,0); //bas
                
    keybd_eventtoupper(asd[i]) , 0,KEYEVENTF_EXTENDEDKEY 
                                                            
    KEYEVENTF_KEYUP,0);//cek
            
    }
            
    Sleep(2000);
        }
        return 
    0;
     }
     
  5. alibayuk

    alibayuk Yeni Üye

    Kayıt:
    3 Kasım 2008
    Mesajlar:
    20
    Beğenilen Mesajlar:
    0
    çok teşekkür ederim cevaplar için bunlardan başlayayım.:)
     
  6. Furkan Onka Uğur

    Furkan Onka Uğur Moderatör Yetkili Kişi

    Kayıt:
    12 Eylül 2008
    Mesajlar:
    3,691
    Beğenilen Mesajlar:
    43
    Şehir:
    Ankara
    MS keybd_event'i öneriyor her zaman, sendkeys ve form'a (editbox ya da textbox'ta windows için bir formdur aslında) mesaj iletmek çok özel durumlarda uygulanmalıdır. Ayrıca her form WM_GETTEXT, WM_SETTEXT ya da WM_KEYPRESS gibi mesajları anlar diye kesin bir kural yok (desteklemeli aslında fakat farklı amaçlar için yazılmış özel kontroller için konuşuyoruz). Her koşulda KUTALMIŞ'ın dediği gibi keybd_event'i denemek ilk seçenek olmalı.
     
  7. VanlochMonster

    VanlochMonster Aktif Üye

    Kayıt:
    26 Şubat 2008
    Mesajlar:
    326
    Beğenilen Mesajlar:
    0