Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    [C#] Metodo Process.Kill

    Ho appena iniziato ad usare la classe Process e sto cercando di terminare un processo in memoria con il metodo Kill, con questa sintassi:

    codice:
    Process processo = new Process();
    processo.StartInfo.FileName = @"C:\Windows\Notepad.exe";
    processo.Kill();
    Quando premo il tasto a cui ho associato tale codice viene generata una eccezione che dice: Nessun processo associato all'oggetto.

    Appunto, non mi è chiara la sintassi per associare il processo che mi interessa.


  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Beh ... dopo averne indicato il nome, devi farlo partire il processo ... se non e' partito non esiste, e se non esiste non lo puoi killare.

    Process processo = new Process();
    processo.StartInfo.FileName = @"C:\Windows\Notepad.exe";
    processo.Start();

    In ogni caso, piuttosto che fare il Kill, e' meglio provare a chiuderlo con

    processo.Close();

  3. #3
    Ma il processo che devo chiudere è già attivo, non ho bisogno di farlo partire.

    Risolto!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Allora e' un'altra storia (non era chiaro ...).

    Devi fare una ricerca tra i processi attivi e killarlo

    codice:
    Process[] processes = Process.GetProcessesByName("notepad");
    foreach (Process proc in processes)
    {
       proc.Kill();
    }

  5. #5
    Ho implementato il codice che hai riportato esattamente un minuto dopo aver letto la tua prima risposta.

    Solo che ci sono applicazioni che mi danno accesso negato, come ad esempio il mio firewall, che però dal Task Manager posso chiudere senza problemi . . .

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    A parte il fatto che un firewall non andrebbe chiuso ... bisogna vedere cosa stai tentando di chiudere con il codice e cosa chiudi con il task manager ... non e' detto siano lo stesso processo ...

  7. #7
    I miei erano solo esperimenti, logicamente non sono così pazzo da andarmene in giro per la rete senza programmi come firewall e antivirus.

    La mia curiosità sta nel fatto che, per abbattere l'appicazione firewall, nel mio caso il Sygate Personal Firewall, ho implementato il seguente codice:

    codice:
    Process[] localByName = Process.GetProcessesByName("smc");
    foreach (Process p in localByName)
    {
       p.Kill();
    }
    Dove "smc" è il processo attivo in memoria relativo al firewall.

    Allo stato attuale non conosco il motivo per cui il programma non ha accesso.

    EDIT:

    Rettifico, ricordavo male, non posso abbattere il firewall neanche da Task Manager.
    Ma come si può rendere un programma "non chiudibile"? O al limite chiudere un programma del genere, il tutto da codice?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ah ecco ... vedi? Non puoi neanche da task manager ...

    I miei erano solo esperimenti, logicamente non sono così pazzo da andarmene in giro per la rete senza programmi come firewall e antivirus.
    E spero che non lo sarai altrettanto tentando di scrivere e mettere in giro programmi che cercano e chiudono i firewall ...

    Sicuramente il processo del fw e' un servizio che opera nel contesto di sicurezza di LocalSystem (o simile) e il tuo account non ha le autorizzazioni adeguate per poterlo chiudere.

    Per poterlo fare, il processo che esegue il Kill deve essere eseguito almeno nello stesso contesto di sicurezza ...

  9. #9
    Originariamente inviato da oregon
    Ah ecco ... vedi? Non puoi neanche da task manager ...



    E spero che non lo sarai altrettanto tentando di scrivere e mettere in giro programmi che cercano e chiudono i firewall ...

    Sicuramente il processo del fw e' un servizio che opera nel contesto di sicurezza di LocalSystem (o simile) e il tuo account non ha le autorizzazioni adeguate per poterlo chiudere.

    Per poterlo fare, il processo che esegue il Kill deve essere eseguito almeno nello stesso contesto di sicurezza ...
    Tranquillo, non intendo fare lamerate, del resto, mi piace sapere anche come si costruiscono le armi nucleari, ma se domani mi trovi un contenitore di uranio, mica faccio saltare in aria la città!

    Non capisco questa tua frase:

    Sicuramente il processo del fw e' un servizio che opera nel contesto di sicurezza di LocalSystem (o simile) e il tuo account non ha le autorizzazioni adeguate per poterlo chiudere.

    Per poterlo fare, il processo che esegue il Kill deve essere eseguito almeno nello stesso contesto di sicurezza ...
    Il mio account è quello di Amministratore, non è sufficiente ad avere pieno controllo della mia macchina?

    Cosa intendi per:

    nello stesso contesto di sicurezza

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da SkyNET290897
    Tranquillo, non intendo fare lamerate, del resto, mi piace sapere anche come si costruiscono le armi nucleari, ma se domani mi trovi un contenitore di uranio, mica faccio saltare in aria la città!
    Sai ... questi sono discorsi un po' "scivolosi" ... personalmente sto sempre attento a parlarne perche' non sai mai chi c'e' dall' "altra parte" ...

    Il mio account è quello di Amministratore, non è sufficiente ad avere pieno controllo della mia macchina?
    No ... il pieno controllo della macchina ce l'ha il sistema operativo, non l'amministratore.

    Il contesto di sicurezza LocalSystem, in cui girano alcuni servizi, ha maggiori privilegi rispetto all'amministratore ...

    Cosa intendi per: ...
    Il programma che effettua il kill, dovrebbe essere eseguito come LocalSystem (come servizio o driver in kernel mode ...)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.