VisualBasic Programm schließen

Dacode

Cadet 4th Year
Registriert
März 2005
Beiträge
87
Hallo,

ich sitze hier im Ingenuer-Büro und soll für die Software AutoCAD (2008) ein Makro schreiben bzw. Script oder wie auch immer man es nennen mag.
Normal bin ich in der Web-Entwicklung tätig und bin so das erste mal mit VBA konfrontiert.

Ich soll folgendes erstellen.
Ein Makro/Script welches registriert, wann das Programm bzw. AutoCAD 2008 geschlossen wird.
So das wenn ich dieses schließe vorher ein Fenster "aufpopt" mit weiteren Eingabemöglichkeiten.

Wie setze ich dies in die Tat um bzw. wie lautet der Code um das Beenden des Programms zu erfassen ? ( Also Beenden im Sinne von das ganze Programm zu beenden über das X im oberen Fenster-Bereich oder über Datei-Beenden).

Brauche dringend Hilfe, da ich nicht viel Zeit für den Auftrag hier im Büro hab!

MFG,

Jan
 
Wenn das Programm AutoCAD dies selbst nicht unterstützt oder durch ne eigene Skript-Engine vorgesehen hat kannst du mit VBA rein gar nix machen.

Der Klick auf das X rechts oben sendet die Message WM_CLOSE an das Hauptfenster. Diese abzufangen geht nur aus dem Programm selbst heraus oder über globale Windows Hooks, was mit Skripten nicht zu machen ist.
 
Falls das Problem immernoch aktuell ist.
Man kann das eigentlich ganz leicht umgehen, indem man nach dem AutoCAD-Prozess im Taskmanager sucht:

Code:
Namespaceimport für die Prozesse




Dim Prozess As Process
Dann in einer For-Next-Schleife die Prozessliste nach dem Prozess durchsuchen
Wenn gefunden
  Geöffnet=1
  Aktiv=1
Else
  Aktiv=0
End If
Next

If Geöffnet=1 AND Aktiv=0 Then
  Geöffnet=0
  'Es wurde gemerkt, dass der Prozess mal aktiv war, jetzt aber nichtmehr (--->Prozess wurde beendet). Hier dann alle Anweisungen reinhauen. Am besten mit Beep signalisieren und dann eine MessageBox mit Mitteilung öffnen, die dann bei OK-Klick auf ein Formular mit den ganzen Auswahlmöglichkeiten führt.
End if

Das Ganze dann in einen Timer reinhauen, der Prozess muss nur länger aktiv sein als ein Timerinterval (Kannst es ruhig auf 100ms setzen, 3Sekunden müssten aber auch reichen).

Ich hoffe ich konnte dir helfen.

EDIT: Sorry, sehe gerade, dass du VORHER geschrieben hast, sorry.
Da kann dir wirklich niemand helfen, da das nur das Programm direkt verwalten kann. Evtl. wäre es durch einen Hook möglich, das ist aber nicht ganz ohne, stoppen lässt sich der Schließvorgang dadurch glaube ich auch nicht.
 
Zuletzt bearbeitet:
Zurück
Oben