Kill SLDWorks.exe -Einbettung

Hallo

Ich habe VB.NET eine App entwickelt. Es funktioniert gut, aber das Ende der Ausführung ist nicht ganz sauber.

  1. Die Anwendung meldet sich bei SOLIDWORKS an: swApp = New SldWorks
  2. Es ist eine ganze Menge los...
  3. Dann schließe ich das Dokument:    swApp.CloseDoc(sDocfilename)
  4. Es ist noch viel los und das Programm neigt sich dem Ende zu

Logischerweise habe ich ein leeres Solidworks-Fenster, das offen bleibt. Wenn ich es mit der Hand schließe, sehe ich,  dass der SLDWORKS-Prozess dann mit einem "-Embedding" in der Befehlszeile in die Liste der "Hintergrundprozesse" geht. Ich bemerke das gleiche Phänomen, wenn ich den Code hinzufüge: swApp.ExitApp() .

Diese SolidWorks Sitzung im Hintergrund führt zum Absturz neuer Sitzungen. Also musst du ihn mit der Hand töten.

Wie komme ich da raus?

Was ist diese -Einbettungsoption?

Herzliche Grüße

Benedikt

 

Hallo

Um dies zu vermeiden, können Sie am Ende des Programms eine Schleife erstellen, die alle aktiven Prozesse auflistet, und die "SLDWORKS.exe" Prozesse "beenden", was ich bei allen meinen Programmen (C#) tue, die Solidworks zu einem bestimmten Zeitpunkt steuern.

Herzliche Grüße

1 „Gefällt mir“

Ich habe mich gefragt, ob es für meine Anwendung eine Möglichkeit gibt, diese untergeordneten Prozesse aufzulisten. Aber es sieht nicht einfach aus.

Alle Solidworks-Prozesse zu töten, erscheint mir etwas brutal. Meine Anwendung wird als Aufgabe gestartet (wenn ein Dokument genehmigt wird) und es wäre eine Schande, die Sitzung des Benutzers zu beenden.

Zum Auflisten der untergeordneten Prozesse gibt es eine funktionale Lösung, die in C# ICI geschrieben wurde.

Alles, was Sie tun müssen, ist, es in VB.Net umzusetzen und an Ihre Bedürfnisse anzupassen.

Herzliche Grüße 

1 „Gefällt mir“

Ich hatte es schon gemerkt und es kam mir kompliziert vor. Ich hatte auf etwas Einfacheres und Unkomplizierteres in  system.diagnostic.process oder so etwas gehofft.

Also werde ich mir die Zeit nehmen, mich mit diesem Beispiel zu befassen.

Vielen Dank und einen schönen Abend

 

Wenn es Ihnen für Ihre Bedürfnisse zu komplex erscheint und Sie mit Sicherheit auf Probleme stoßen werden, die mit den für die Nutzung dieser Funktionen erforderlichen Rechten verbunden sind, können Sie dies möglicherweise umgehen, indem Sie zum ersten Vorschlag zurückkehren (Um daraus herauszukommen, können Sie am Ende des Programms, Erstellen Sie eine Schleife, die alle aktiven Prozesse auflistet, und "killen" Sie die "SLDWORKS.exe"-Prozesse, aber beenden Sie nur den Prozess, dessen "MainWindowTitle" einen bestimmten Wert enthält, einen Wert, den Sie definieren können, indem Sie z.B. einen Raum mit einem "seltsamen" Namen erstellen, bevor Sie diesen Prozess beenden. Auf diese Weise können Sie weiterhin einfach und direkt auf system.diagnostic.process zugreifen .

Herzliche Grüße

1 „Gefällt mir“

Ja, in der Tat.

  1. Starten von solidworks
  2. Ich öffne ein Dokument
  3. Ich identifiziere den SolidWorks Prozess
  4. Es ist eine ganze Menge los
  5. Ich töte diesen Prozess

Das scheint mir nicht schlimm zu sein

1 „Gefällt mir“