Kill SLDWorks.exe -Inbedding

Hallo

In VB.NET heb ik een app ontwikkeld. Het werkt goed, maar het einde van de uitvoering is niet helemaal schoon.

  1. De applicatie logt in op solidworks: swApp = New SldWorks
  2. Er is van alles aan de hand...
  3. Dan sluit ik het document:    swApp.CloseDoc(sDocfilename)
  4. Er is nog veel gaande en het programma loopt ten einde

Logischerwijs heb ik een leeg solidworks venster dat open blijft staan. Als ik het met de hand sluit,  zie ik dat het SLDWORKS-proces dan in de lijst met "achtergrondprocessen" gaat met een "-Embedding" in de opdrachtregel. Ik merk hetzelfde fenomeen als ik de code toevoeg: swApp.ExitApp() .

Deze solidworks-sessie op de achtergrond zorgt ervoor dat nieuwe sessies crashen. Je moet hem dus met de hand doden.

Hoe kom je eruit?

Wat is deze optie voor insluiten?

Vriendelijke groeten

Benedictus

 

Hallo

Om hier uit te komen kun je aan het einde van het programma een lus maken die alle actieve processen opsomt en de "SLDWORKS.exe" proces(sen) "doden", wat ik doe met al mijn programma's (C#) die Solidworks op een of ander moment aansturen.

Vriendelijke groeten

1 like

Ik vroeg me af of er een manier was voor mijn applicatie om deze onderliggende processen op te sommen. Maar het ziet er niet gemakkelijk uit.

Het doden van alle solidworks-processen lijkt me een beetje brutaal. Mijn applicatie wordt gelanceerd als een taak (wanneer een document is goedgekeurd) en het zou zonde zijn om de sessie van de gebruiker te doden.

Om de onderliggende processen weer te geven, is er een functionele oplossing geschreven in C# ICI.

Het enige wat u hoeft te doen is het te vertalen naar VB.Net en aan te passen aan uw behoeften.

Vriendelijke groeten 

1 like

Ik had het al gemerkt en het leek me ingewikkeld. Ik hoopte op iets eenvoudigers en duidelijkers in  system.diagnostic.process of iets dergelijks.

Dus ik neem de tijd om in dit voorbeeld te duiken.

Bedankt en nog een fijne avond

 

Als het te ingewikkeld lijkt voor uw behoeften en aangezien het een veilige gok is dat u problemen zult tegenkomen met betrekking tot de rechten die nodig zijn om deze functies te gebruiken, kunt u het misschien allemaal omzeilen door terug te gaan naar de eerste suggestie (Om eruit te komen kunt u aan het einde van het programma, maak een lus die alle actieve processen opsomt en "dood" de "SLDWORKS.exe" proces(en), maar stop alleen het proces waarvan "MainWindowTitle" een bepaalde waarde bevat, een waarde die je kunt definiëren door bijvoorbeeld een kamer met een "rare" naam te maken voordat je dit proces stopt. Zo blijft u op eenvoudige en directe toegang  in system.diagnostic.process.

Vriendelijke groeten

1 like

Ja inderdaad.

  1. Lancering solidworks
  2. Ik open een document
  3. Ik identificeer het SolidWorks-proces
  4. Er is heel veel aan de hand
  5. Ik dood dit proces

Dat lijkt me niet slecht

1 like