Domanda

Sto lavorando su un progetto che ha bisogno di emulare pressione di un tasto della chiave di Windows. Ho provato SendKeys.Send inutilmente.

In particolare, le finestre chiave deve venire in concerto con un pulsante. Cioè, voglio inviare Tasto Windows e plus / minus.

È stato utile?

Soluzione

Questo può essere eccessivo, ma si potrebbe provare a utilizzare AutoItX che è un modo per utilizzare AutoIt come una DLL. Ho scritto solo script locali, ma so AutoIt rende molto facile per simulare la pressione del tasto Windows.

Ad esempio, per aprire la finestra di dialogo Esegui è proprio:

  

Invia ( "# r"); Win + R = eseguito

Altri suggerimenti

Vorrei aggiungere che si tratta di spesso improbabile per voi di trovare le funzioni di livello inferiore come questi nel framework .NET . Se sono stati confusi sul motivo per cui i suggerimenti sia indicavano funzioni "non C #", allora probabilmente potrebbe utilizzare alcuni dettagli su P / Invoke .

Fondamentalmente ci sono modi per definire C # funzioni che "legano" loro funzioni API Windows che non esistono all'interno assembly .NET (Invece sono tipicamente implementati in C ++ e disponibile come DLL standard). Questo processo è considerato "(Windows) Piattaforma Invocando" (quindi P / Invoke).

Può essere un po 'traballante in un primo momento di abbinare tutti i tipi di dati tra C ++ e le chiamate # stile C, ma per fortuna, ci sono altri là fuori che hanno spianato la strada.

La funzione suggerito, SendInput , ha un PInvoke involucro sopra a PInvoke.net . Questa classe wrapper, quando disponibile nella vostra assemblea, vi permetterà di chiamare SendInput come se fosse una funzione C #.

PInvoke.net è fondamentalmente un wiki PInvoke per le chiamate API ben noto in Windows, e di solito ha un C # / VB.NET involucro di chiamate API.

Credo che la soluzione migliore sta usando keybd_event keydown (chiamato ExtendedKey) con il valore Lwin della System.Windows.Forms.Keys enum, quindi secondo carattere keydown (+), e keyup entrambi i tasti.

Non credo SendKeys funziona con il tasto Windows come modificatore.

SendInput o il più vecchio < a href = "http://msdn.microsoft.com/en-us/library/ms646304(VS.85).aspx" rel = "nofollow noreferrer"> keybd_event

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top