Chyba: Příkaz SendKeys více zapne vypnuto NumLock klíče

Překlady článku Překlady článku
ID článku: 179987 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Provádění alespoň dva příkazy PředatKlávesovéÚhozy řádek výsledkem vypnutí klávesy NumLock. Tento problém může ovlivnit také klíče CapsLock a ScrollLock.

Příčina

Tento problém se zabývá vnořování digitalizace stavu klávesnice. První příkaz SendKeys trvá snímek stavu klávesnice a vypne všechny přepíná. Druhý příkaz SendKeys provede před první přehrát mimo všechny klíče a obnoven stav klávesnice. Tedy stavu klávesnice je zaznamenána znovu podle druhého PředatKlávesovéÚhozy tento čas s všechny přepíná stále vypnout. Stav klávesnice je nakonec obnoven do stavu novější (přepíná vypnout).

Řešení

Tento problém vyřešit, proveďte jednu z následujících akcí:
  • Odeslat všechny znaky v jednom příkazu SendKeys. Nebo

  • Provedení funkce DoEvents mezi každý příkaz SendKeys. Však v závislosti na složitosti klíče tahy to nemusí fungovat ve všech případech. Nebo

  • Určit nastavení klávesy NumLock před použitím PředatKlávesovéÚhozy. Potom vypněte NumLock před použitím PředatKlávesovéÚhozy. Po použití PředatKlávesovéÚhozy obnovit NumLock předchozí nastavení. To lze provést pomocí funkcí GetKeyboardState keybd_event a API SetKeyboardState. V části odkazy níže Další informace. Nebo

  • Pomocí funkcí API namísto PředatKlávesovéÚhozy. V části odkazy níže Další informace

Prohlášení

Společnost Microsoft potvrzuje, že se tuto chybu v produktech společnosti uvedených na začátku tohoto článku. Jsme jsou zkoumá tuto chybu a bude účtovat nové informace v Knowledge Base jako k dispozici.

Další informace

Kroky pro reprodukci chování

  1. Spuštění nového projektu standardní EXE v jazyka. Jako výchozí je vytvořen formulář Form1.
  2. Přidat CommandButton Form1.
  3. Zkopírujte následující kód v okně Kód Form1:
          Option Explicit
    
    
          Private Sub Command1_Click()
             SendKeys "a"
             SendKeys "b"
          End Sub
    						
  4. V nabídce spuštění klepněte na tlačítko Start nebo stisknutím klávesy F5 spustit program. Pokud vypnutí je indikátor NumLock zapnout NumLock světle stisknutím klávesy NumLock. Klepněte CommandButton a Všimněte si, že indikátor NumLock vypne.
  5. Zavřete jazyka a opakujte výše uvedené kroky; tímto způsobem čas přidávání DoEvents:
          Private Sub Command1_Click()
             SendKeys "a"
             DoEvents
             SendKeys "b"
          End Sub
    
       NOTE: You should restart Visual Basic before trying the DoEvents
       solution. Otherwise, the keyboard state may be set incorrectly,
    						
    brání právě úspěšný pokus o žádné řešení.

Odkazy

"Jazyka 5.0 Programmer's Guide API Win32" podle daň Appleman Kapitola 6: hardwaru a funkce systému

Další informace naleznete v následujícím článku databáze Microsoft Knowledge Base:
177674Postupy: NUM LOCK, CAPS LOCK a SCROLL LOCK klíčů přepnout

Vlastnosti

ID článku: 179987 - Poslední aktualizace: 29. června 2004 - Revize: 3.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual Basic for Applications 5.0
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 16-bit Enterprise Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
Klíčová slova: 
kbmt kbbug kbpending kbprogramming KB179987 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:179987

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com