chris2060 Δημοσ. 13 Δεκεμβρίου 2008 Δημοσ. 13 Δεκεμβρίου 2008 hello, μια ερωτηση υπαρχει αλλη εντολη εκτος απο την ioctlsocket(); για να μπορει να ξεμπλοκαρει το i/o στην c? κατι παρομοιο με την παραπανω που να κανει ακριβως την ιδια δουλεια... ευχαριστω α και κατι αλλο, πως θα μπορουσαμε να ανιχνευσουμε οτι πατηθηκε κατι στο πληκτρολογιο, κατι ακουσα για το kbhit, μηπως υπαρχει αλλος τροπος ? thanks
Evgenios1 Δημοσ. 13 Δεκεμβρίου 2008 Δημοσ. 13 Δεκεμβρίου 2008 user32.dll και κανεις hook το GetAsyncKeyState(byte key) η οποια σου επιστρεφει μια true/false αναλογα τη κατασταση του πληκτρου
chris2060 Δημοσ. 13 Δεκεμβρίου 2008 Μέλος Δημοσ. 13 Δεκεμβρίου 2008 πως το χρησιμοποιουμε αυτο? αν μπορεις να γραψεις εναν μικρο κωδικα .... τι ειναι το hook? το dll πως το προσθετω? βασικα θελω μια συναρτηση που να επιστρεφει true αν πατηθηκε καποιο πληκτρο (οποιοδηποτε) και false στην αντιθετη περιπτωση.... δηλαδη αυτο που κανει το kbhit() thanks
Evgenios1 Δημοσ. 13 Δεκεμβρίου 2008 Δημοσ. 13 Δεκεμβρίου 2008 c# > //a handler public delegate void KeyDownH(int key); //a class public class aclass { //strc public aclass() { t=new Timer(); t.Time=1000;//δε θυμαμε τη prop για τα ms t.Start(); t.Tick+= delegate{Loop();}; } //a loop private void Loop() { for(Int16 i=1;i<255; i++) { if(GetAsyncKeyState(i)) KeyDown(i); } } //a timer private Timer t; //a event public event KeyDownH KeyDown; [DllImport("user32.dll")] public static external bool GetAsyncKeyState(int key); } //main class class prog { static void Main() { aclass a=new aclass(); a.KeyDown+= new KeyDownH(press); cw.Read(); } static void press(int key) { Console.WriteLine(key); } }
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.