Api terminateProcess

lunedì 31 agosto 2009 - 11.03

ciccioherz Profilo | Junior Member

ciao a tutti,
è davvero difficile trovare in rete ciò che fa al caso mio.

sto cercando un sesmpio su come implementare in c# una soluzione per terminare un processo (attraverso il suo
nome, usando api di windows).
non uso il process.kill perche ho bisogno di imnpostare il sedebugprivileges per poter killare anche processi
di sistema, almeno così mi è stato detto, o comunque con privilegi superiori.
questo è cio che ho scritto fin'ora:
[DllImport("Kernel32")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool TerminateProcess(IntPtr hProcess, uint uExitCode);
//in button
Process[] p = Process.GetProcessesByName("notepad");
TerminateProcess(p[0].Handle, 0);

ok, questo funziona, ma non riesco a trovare un esempio su come utilizzare il sedebugprivileges.

qualcuno puo aiutarmi?
grazie

aiedail92 Profilo | Expert

Ciao

Per impostare il SeDebugPrivilege devi usare le API OpenProcessToken, LookupPrivilegeValue e AdjustTokenPrivileges, in questo modo:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Non ho il compilatore ora e non ho potuto provarlo, ma dovrebbe andare... La funzione ritorna true se ha ottenuto i privilegi o false se non li ha ottenuti.

Se ci sono problemi, fammi sapere

Luca
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5