VBScript Inputbox in den Vordergrund stellen?

Erzesel  15.09.2021, 12:50

Wenn Du in Deinem Script eine Inputbox öffnest, hat diese doch automatisch den Focus.

Du musst schon erklären was bei Dir passiert, das dem nicht so ist.

Werwolf2007 
Fragesteller
 22.09.2021, 22:36

Ich meine, dass die inputbox dauerhaft im vordergrund ist. selbst wenn man eine andere App in den Vordergrund stellen will

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Dafür gibt es keine native Lösung. (Von gibt's nur selten ein "geht nicht" , aber hier bin ich nah dran)

Eine Inputbox verhält sich anders als eine MsgBox. Sie fängt neben den Ereignissen, ihre Buttons, betreffend auch noch andere Tastaturereignisse ab. Es macht aus Sicht der Systemsicherheit einen eminenten Unterschied ob eine globale Nachricht im Vordergrund auf Bestätigung wartet oder alle Tastatureingaben abfängt.

Es ist durchaus möglich einen zweiten Thread zu initieren , welcher eine Inputbox immer wieder in den Vordergrund "hebt".

Unmittelbar nach meiner Rückfrage habe ich das Szenario mit einem Überwachungsthread und einer Inputbox durchgespielt. Diese wird per .appactivate in Abständen von 100ms durch den Überwachungsthread in Front gebracht. Dabei geht jedoch der Focus auf das Eingabefeld verloren und es wird zurückgesetzt. Ergo ginge alle 100ms (oder was immer festgelegt wird) die bisherige Eingabe verloren... Kontraproduktiv...

Ich hätte dir gerne das experimentelle Script gepostet, aber ich bin im Urlaub . Da das Ganze ohnehin nicht wie gewünscht funktioniert ist das auch irrelevant

VBScript ist hoffnungslos veraltet und auf dem Stand von 2009. Um das von Dir angedachte zu bewerkstelligen benötigt man dann schon eine Sprache welche tieferen Zugriff auf das System erlaubt.

Das würde jedoch andere Konflikte auf den Plan rufen. Dazu ein Artikel von Raymond Chen:

Es hat durchaus Gründe, wenn ein Feature garnicht erst vorgesehen ist....

Wenn Du auf dergleichen Angewiesen bist, ist das Konzept deines Projektes schon falsch.

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren