TAB-Taste deaktivieren.
TAB-Taste deaktivieren.
Hallo,
ich habe ein Programm geschrieben, das an einem PC bedient wird, wo nur eine abgespeckte Tastatur angeschlossen ist (ohne Maus).
STRG ALT ENTF oder ALT+F4 ist hier nicht möglich. Wie schaffe ich es, dass die TAB Taste deaktiviert wird?
Der Zeiger soll immer nur in einem Eingabefeld bleiben.
ich habe ein Programm geschrieben, das an einem PC bedient wird, wo nur eine abgespeckte Tastatur angeschlossen ist (ohne Maus).
STRG ALT ENTF oder ALT+F4 ist hier nicht möglich. Wie schaffe ich es, dass die TAB Taste deaktiviert wird?
Der Zeiger soll immer nur in einem Eingabefeld bleiben.
Re: TAB-Taste deaktivieren.
Das sollte mit AddKeyboardShortcut() gehen.Mr.Vain hat geschrieben:ich habe ein Programm geschrieben
[...]
Wie schaffe ich es, dass die TAB Taste deaktiviert wird?
Grüße, Nino
Re: TAB-Taste deaktivieren.
Hier ein Code-Beispiel:
Code: Alles auswählen
Enumeration
#Tab_Taste
EndEnumeration
;.............
; Tab-Taste umleiten
AddKeyboardShortcut(0, #PB_Shortcut_Tab, #Tab_Taste)
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 1 : Debug "Schalter 1 angeklickt!"
Case 2 : Debug "Schalter 2 angeklickt!"
EndSelect
Case #PB_Event_Menu
Select EventMenu()
; Ereignis der Tab-Taste fangen wir ab
Case 1 : #Tab_Taste : ;wir machen nichts
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
; oder....
Case #PB_Event_Menu
; Ereignis der Tab-Taste fangen wir ab
If EventMenu()=#Tab_Taste
;wir machen nichts
EndIf
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Re: TAB-Taste deaktivieren.
das geht nur im pb-programm
Alt-Tab wird immer noch als Taskswitcher funktionieren.
Also entweder über die Rechte (insofern der Rechner bzw.OS das kann)
oder die SchraubenzieherLösung (ist ja eh schon ne SpezialTastatur, die
wird dann eben noch etwas spezieller)
Alt-Tab wird immer noch als Taskswitcher funktionieren.
Also entweder über die Rechte (insofern der Rechner bzw.OS das kann)
oder die SchraubenzieherLösung (ist ja eh schon ne SpezialTastatur, die
wird dann eben noch etwas spezieller)
pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Re: TAB-Taste deaktivieren.
Leg in der Registry in HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout einen neuen Binär-Wert namens "ScanCode Map" an und gib als Binär-Wert(e) 00 00 00 00 00 00 00 00 02 00 00 00 00 00 0f 00 00 00 00 00 ein. Neustart und TAB geht nicht mehr. Nach diesem Schema kann (fast) jede Taste deaktiviert oder umgelegt werden.
Gruß
Helle
Gruß
Helle
Re: TAB-Taste deaktivieren.
dann aber gleich vollständig (Tab-Taste geht damit nicht)
http://www.microsoft.com/downloads/en/d ... layLang=en
http://www.microsoft.com/downloads/en/d ... layLang=en
pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Re: TAB-Taste deaktivieren.
Ich würds ohne Registry nutzen, da sowieso einen extra Neustart erforderlich ist.
Besser wär es mit einem Hook:
Das funktioniert auch systemweit.
Besser wär es mit einem Hook:
Code: Alles auswählen
EnableExplicit
Structure KBDLLHOOKSTRUCT
vkCode.l
scanCode.l
flags.l
time.l
dwExtraInfo.l
EndStructure
Procedure.l KeyboardHook(nCode, wParam, *p.KBDLLHOOKSTRUCT)
If wParam = #WM_KEYDOWN Or wParam = #WM_SYSKEYDOWN Or wParam = #WM_KEYUP Or wParam = #WM_SYSKEYUP
If *p\vkCode = 9
ProcedureReturn 1
EndIf
EndIf
ProcedureReturn CallNextHookEx_(0, nCode, wParam, *p)
EndProcedure
If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
StringGadget(1,10,10,200,20,"",0)
StringGadget(2,10,40,200,20,"",0)
SetWindowsHookEx_(#WH_KEYBOARD_LL,@KeyboardHook(),GetModuleHandle_(0),0)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Re: TAB-Taste deaktivieren.
Ja, so hatte ich die Frage verstanden.bobobo hat geschrieben:das geht nur im pb-programm
Was ist eigentlich mit dem beliebten GetAsyncKeyState()? Geht das nicht auch systemweit? Oder lassen sich spezielle Tastenkombinationen damit nicht abfangen?RSBasic hat geschrieben:Das funktioniert auch systemweit.
Grüße, Nino
Re: TAB-Taste deaktivieren.
Nein, damit kannst du nur überprüfen, ob eine bestimmte Taste gedrückt wurde, aber du kannst damit nichts abfangen bzw. verhindern, dass die Funktion der Taste ausgeführt wird.Nino hat geschrieben:Was ist eigentlich mit dem beliebten GetAsyncKeyState()? Geht das nicht auch systemweit? Oder lassen sich spezielle Tastenkombinationen damit nicht abfangen?RSBasic hat geschrieben:Das funktioniert auch systemweit.
Re: TAB-Taste deaktivieren.
Stimmt ja!RSBasic hat geschrieben:Nein, damit kannst du nur überprüfen, ob eine bestimmte Taste gedrückt wurde, aber du kannst damit nichts abfangen bzw. verhindern, dass die Funktion der Taste ausgeführt wird.

Grüße, Nino