I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Det kan du ved at enumerere alle kørende processer, finde den du vil have lukket, og enten bruge CloseMainWindow eller Kill på den, afhængig af temperament (CloseMainWindow beder proessen om at lukke, hvis den har et hovedvindue, Kill lukker processen øjeblikkeligt). Kill bør kun bruges hvis CloseMainWindow ikke kan bruges, idet programmet ved Kill ikke får en chance for at gemme data og udføre anden oprydning.
Et simpelt eksempel; her findes det program jeg vil lukke ved hjælp af ModuleName som er navnet på .exe filen der har startet processen. Desuden udskrives ModuleName for alle processer til Console. Start calc.exe for at teste (Windows lommeregner):
Process [] procs = Process.GetProcesses(); foreach ( Process p in procs ) { try { Console.WriteLine(p.MainModule.ModuleName); if ( p.MainModule.ModuleName.CompareTo("calc.exe") == 0 ) { Console.WriteLine(p.MainModule.FileName); p.CloseMainWindow(); } } catch {} }
try ... catch blokken bruges fordi der vil blive kastet en exception, hvis du spørger på en proces som er blevet lukket af systemet, og muligvis også hvis du ikke har fornødne rettigheder til at spørge på en bestemt proces. Du kan jo selv implementere en fornuftig fejlhåndtering, hvis det er nødvendigt til dit brug.
Mange tak. Så får jeg vist heller ikke mere for de 15 point :)
Synes godt om
Ny brugerNybegynder
Din løsning...
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.