uschade
Goto Top

Mit VBA die Tasenkombination AltGr+Tab oder Alt+Tab simulieren

Hallo liebe Admins,


ich möchte auf unseren Terminals, an denen keine Tastatur angeschlossen ist, den Mitarbeitern die Möglichkeit geben zwischen zwei Anwendungen im Vollbildmodus hin und her zu schalten.
Die Terminals verfügen über Touchscreens.

Meine Grundidee ist jetzt, dass ich in VBA ein kleines Programm schreibe, das letztendlich nur einen Button zeigt, der die Tastenkombination Alt+TAB ausführt, damit eben zum jeweils anderen Programm geswitcht wird, wenn der Mitarbeiter auf den Button tippt.

Der Button soll immer im Vordergrund sein und einen festen Platz unten links auf dem Bildschirm einnehmen.

Das entsprechende Programm würde beim Starten des Terminals automatisch mitgestartet werden und soll vom Benutzer nicht beendet werden können.

Ich wäre euch sehr dankbar für ein paar Tips.

Sollte jemand eine alternative Lösung haben....ist ok, schau auch mir natürlich auch gerne an.

Grüße

Uwe

Content-ID: 284757

Url: https://administrator.de/contentid/284757

Ausgedruckt am: 24.11.2024 um 02:11 Uhr

114757
114757 06.10.2015 um 17:15:12 Uhr
Goto Top
OnScreen-Tastatur einblenden lassen, kann man einen Button auf die Taskleiste legen.
Ansonsten mit einem AutoIt-Script schnell zusammengeschnippselt...

Gruß jodel32
colinardo
Lösung colinardo 06.10.2015, aktualisiert am 07.10.2015 um 16:34:05 Uhr
Goto Top
Hallo Namensvetter,
kleines Auto-IT-Skript zur EXE kompiliert:
#NoTrayIcon
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)  
$formMain = GUICreate("Tools", 114, 50, -1, -1,-1, BitOR($WS_EX_TOOLWINDOW,$WS_EX_TOPMOST))  
GUISetOnEvent($GUI_EVENT_CLOSE, "formMainClose")  
$btnSwitch = GUICtrlCreateButton("ALT-TAB", 0, 0, 113, 49)  
GUICtrlSetOnEvent(-1, "btnSwitchClick")  
GUISetState(@SW_SHOW)
While 1
    Sleep(100)
WEnd
Func btnSwitchClick()
    Send("!+{TAB}")  
EndFunc
Func formMainClose()
	exit 0
EndFunc
Title-Bar etc kann man auch komplett ausblenden und den Button an einer festen Stelle platzieren, das wäre dann z.B. folgender Code um den Button unten Links auf den Bildschirm zu setzen:
#NoTrayIcon
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)  
$formMain = GUICreate("formMain", 114, 50, 50, @DesktopHeight - 150, $WS_POPUP, BitOr($WS_EX_TOPMOST,$WS_EX_TOOLWINDOW))  
GUISetOnEvent($GUI_EVENT_CLOSE, "formMainClose")  
$btnSwitch = GUICtrlCreateButton("ALT-TAB", 0, 0, 113, 49)  
GUICtrlSetOnEvent(-1, "btnSwitchClick")  
GUISetState(@SW_SHOW)
While 1
    Sleep(100)
WEnd
Func btnSwitchClick()
    Send("!+{TAB}")  
EndFunc
Func formMainClose()
	exit 0
EndFunc

Grüße Uwe
Uschade
Uschade 06.10.2015 um 19:21:54 Uhr
Goto Top
Ich bin begeistert. Danke erstmal bis hier her, werde das morgen gleich testen...evtl. heute Abend noch...und geb dann Feedback.

Grüße und gute Nacht
Uschade
Uschade 06.10.2015 um 19:58:19 Uhr
Goto Top
Hallo jodel32

die OnScreen-Tastatur kam mir auch in den Sinn, aber die Mitarbeiter sollen keine Tastatur haben...sie sollen nur zwischen den Programmen wechseln können, nicht mehr, nicht weniger.
Hab ich scheinbar nicht deutlich genug geschrieben...mein Fehler.
Danke trotzdem für den Tipp.
Uschade
Uschade 07.10.2015 um 16:33:58 Uhr
Goto Top
Vielen Dank nochmal an alle, dsa Problem wurde gelöst