04. juli 2011 - 14:01Der er
8 kommentarer og 1 løsning
Hvordan identificerer jeg en process utvetydigt?
Jeg er ved at lave noget simpel automation af et 3d modelleringsprogram der hedder Rhino3D. Jeg har brug for at kunne starte programmet, få adgang til dets script-interface og for at min applikation får besked, hvis programmet lukkes.
Jeg bruger følgende kode til at starte programmet, og give mig en reference til programmets script-interface:
Problemet er at jeg intet handle eller andet får ud af dette, så hvis jeg vil have fat i programmet jeg har startet og sikre mig, at jeg får besked, hvis det bliver lukket, så bliver jeg nødt til at bruge Process class'en.
for (int i = 0; i < pr.Length; i++) { pr[i].EnableRaisingEvents = true; pr[i].Exited += new EventHandler(caseInfoMenu_Exited); connectionOpen = false;
}
Problemet er at brugeren nemt kan have flere udgaver af Rhino4 åben. Og at filer med samme navn godt kan være åben flere gange, så jeg skal bruge et unikt id jeg kan identificere det program jeg åbnede. Nogen idéer?
Jeg har fundet ud af at jeg har mulighed for at finde programmets handle. Så det kan jeg bruge. Alternativt havde jeg overvejet at kopiere filen jeg åbner give den et random navn som jeg er sikker på ingen andre vinduer har. Og så på den måde identificere processen på samme måde som i det viste eksempel, men ud fra et unikt navn. Og så overskrive min oprindelige fil når jeg er færdig. Det føles bare en anelse uelegant.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.