Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Problem mit TaskID bei Shell-Funktion

Begonnen von trebuh, Mai 04, 2015, 23:37:43

⏪ vorheriges - nächstes ⏩

trebuh

Hallo Gemeinde,

habe mal wieder ein blödes Problemchen.

Und zwar habe im Netz ein paar VBA-Code´s gefunden, welche ich für meinen Fall gut gebrauchen kann.
Es geht darum, fremde Anwendungen aus Access zu starten und beenden zu können, sowie zu prüfen ob die Anwendung schon offen ist und diese ggf in den Vordergrund zu holen.
Schlüssel dazu ist ja die TaskID (Shell -Funktion).

Bei dem Probelauf mit "Notepad" funktioniert das hervorragend.

Bei meiner Umsetzung mit der gewünschten Anwendung gibt es jetzt ein Problem.
Wenn das Programm ausgeführt wird, wird zuerst das Logo-Fenster und dann das Hauptfenster (ca 1 sec. später) geöffnet, wobei das Logo-Fenster nach ca. 2-4 Sekunden wieder geschlossen wird.

Möchte ich jetzt in Access prüfen, ob die (geöffnete) Anwendung offen ist, bekomme ich die Rückmeldung, das die Anwendung beendet wurde.
Nun vermute ich, das dass ja nur mit dem Logo-Fenster zusammenhängt, da dies ja zuerst geöffnet (somit die TaskID liefert) und dann wieder geschlossen wird.

Liege ich da richtig?
Wenn ja, gibt es da eine Möglichkeit, die TaskID des Hauptfensters irgendwie zu ermitteln?
Oder dürfte das keine Rolle spielen und der Fehler liegt woanders?

Gruß trebuh


DF6GL

Hallo,

vermutlich liegst Du richtig...

Ermittle die Task-Id (Hwnd) halt erst dann, wenn der Prozess "richtig" läuft..

Dazu etwa dieses:

http://www.vbarchiv.net/tipps/tipp_447-alle-laufenden-programme-ermitteln.html

trebuh

Hallo Franz,
Danke für den Link. Versuche es mal umzusetzen.
Eine Frage an Dich als Experte:

Habe 2 Dateien im Anhang (Bildschirmdruck), welches einmal den TaskId beim starten des Programms (Task_Id_1) und einmal danach (Task_Id_2) zeigt. Da sind jede Menge gleiche ID von dem Programm aber unterschiedliche Windowshandle.
Wie kommt sowas? Sind das verschiedene Prozesse innerhalb des Programms (TopMaps Viewer)?

Gruß
Hubert

daolix

ein programm ist eindeutig durch seine taskid, es kann aber jede menge fenster und daher fensterhandle haben, diese müssen aber nicht zwangsläufig sichtbar sein. auch haben controls ein fensterhandle.