SendKeys.Invia e disattiva i modificatori di tasti
Domanda
Voglio fare in modo che ^ N funzioni come la freccia giù in un controllo ad albero. ho pensato Dovrei solo aggiungere quanto segue al gestore KeyDown:
SendKeys.Send("{Down}");
ma questo viene trattato come una freccia Control-Down dal tasto di controllo è attualmente premuto. La pagina msdn descrive come attivare il modificatore di controllo ma non come disattivarlo.
Grazie, Keith
Soluzione
Mi dispiace venire tardi alla festa, ma penso di aver trovato una soluzione:
Innanzitutto, importa SetKeyboardState:
[DllImport("user32.dll")]
public static extern bool SetKeyboardState(byte[] lpKeyState);
Quindi, basta chiamarlo con un array di byte azzerato prima di chiamare SendKeys.Send ():
SetKeyboardState(new byte[256]);
SendKeys.Send("your key sequence");
Ha funzionato per me. Spero che questo aiuti!
Altri suggerimenti
Puoi p / invocare keybd_event. Ciò ti consentirà di simulare una chiave sia in " up " e "giù" Stato.
Ecco il modo difficile di farlo. Ammetto che questo non è il modo ottimale per farlo. Sono sicuro che lo sai già. Potresti voler sovraccaricare il metodo WindProc del controllo & amp; utilizzare SendMsg Win32 Api. Questo è il modo in cui ho usato le cose per tornare indietro nel tempo.