Vordergrund-Verlust - wie dagengen ankämpfen?

cumulonimbus8

Fleet Admiral
Registriert
Apr. 2012
Beiträge
19.475
Hallo!

Unter 8 (und eigentlich sogar XP) hatte ich mir ein VBA-Skript geschrieben. Es wird per Rechtsklick (auf eine Grafikdatei) ausgelöst und meldet in einem zeitgesteuerten Pop-Up…
WSHShell.PopUp Date & vbCr & vbCr & "Gestartet", 1, "{OK-Meldung}", 64 + 0
…das es losläuft. Zugriff auf Speichergerät an USB erfolgt (da kann auch mal der Buchstabe schieflaufen, deswegen diese OK-Meldung). Nach getaner Arbeit meldet es sich mit einer ähnlichen Box zurück.

Normalerweise poppen beide vor dem Explorer auf (zumindest über dessen ›Ebene‹). Seit spätestens 1607 poppt die 2. Box - da habe ich mehrere VBAs von, und es betrifft auch andere Tools - mindestens 1 Ebene hinter dem Explorer auf (das ist zu vermuten da es eben gerade hinter der Kante des nicht mittigen Explorers sichtbar wurde), man erkennt es immer unten in der Taskleiste…
Die Rückmeldung hätte ich gern gelesen; es geht um den automatischen Transfer von Fotos und da ist die Anzahl nicht unwichtig wenn mal wieder die laufende Nummer auf der Karte spinnt, oder ich einen Transfer verpennt habe. (Muss halt alles seine Ordnung & Ordner haben.)

Warum verliert das 2. PopUp »den Fokus«, den Vordergrund? Ich mache handwerklich nichts als rechts klicken, und zuschauen bis PopUp 2 aufgeht (ist eh eine Sache von Sekunden).

Maustreiber? Grafiktreiber? Systembug?

CN8
 
Ganz einfach, den Vordergrund Focus des VBA Fensters erzwingen. Dürfte sich Recht einfach finden lassen.
Oder machst du das bereits und das funktioniert nicht mehr?
 
Du hast die PopUp - Syntax gelesen?

Nicht nur das 2. PopUp, viele andere Meldungen bis Fenster landen mindestens eine Ebene dahinter. Da ist ätzend bei Installationen wenn das Ding nicht in der Taskleiste auftaucht und man raten muss was da klemmt.

CN8
 
Von »in den Vordergrund« und Zahlen dieser Größenordnungen lese ich in keiner Syntax die mir Google auswirft.

Nur eine Site (http://www.alant.de/wsh-vbs/57-popup-messagebox-echo.html) liefert u.a.
«4096 - An das System gebundenes Meldungsfeld - vbSystemModal»
«65536 - Legt das Meldungsfeld als Vordergrundfenster fest - VbMsgBoxSetForeground»

Nichts davon erklärt den grundsätzlichen Vordergrund-Verlust auch anderer Meldungen. Es ging ja auch früher, und jedes PopUp soll naturgemäß wo aufpoppen? Vorne eben…

CN8
 
Der Wert an sich ist undokumentiert, steht aber auch so im Stackoverflow. Finden lies sich das übrigens in weniger als einer Minute.
Warum das nun nicht mehr im Vordergrund ist und früher war kann und wird man nicht herausfinden, außer du fragst mal im Technet an.

Aber, prinzipiell ist davon auszugehen das es eben nicht erzwungener Maßen der Fall sein muss wenn dem Fenster das eben nicht mitgegeben wird (der Hidden Parameter wird nämlich genau deswegen da sein, in anderen Sprachen ist das Standard). Es ist kein bisschen verwunderlich das anderes dann Prioritäten bekommen kann.

Diese Art des Windows Scripting ist Uralt und längst durch modernere Technologien wie die Powershell abgelöst. Irgendwann wird sie vllt. ganz verschwinden wer weiß.
 
Zuletzt bearbeitet:
Es findet sich dennoch keine logische Basis - vorher ging es und nun haben genügend Dialogfenster dieses Problem. Das mit VBS ist nur augenfällig und ich nutze es regelmäßig (das ruft den Fall immer wieder in Erinnerung).

Mutmaßung, die aber nicht erklären muss: mein Skript liegt als Link im Ordner A der im Explorerfenster B offen vorliegt. Das Skript wird mit Doppelklick gestartet und quittiert mit der ersten Meldung dessen Erfolg. Nun legt das Skript in Ordner A einen neuen Ordner «heutiges Datum» an. Das könnte den Fokus des Explorerfensters beeinflussen. In den neuen Ordner wird etwas kopiert und dann die zweite Meldung gegeben. Die poppt nun hinter/unter dem Explorer B auf. Weil das Skript den Fokus durch das Ordneranlegen verlor?

CN8
 
Zurück
Oben