Chiusura Programmi

di il
15 risposte

Chiusura Programmi

Con questa routine chiudevo tutte le istanze del programma NOTEPAD. Da quando sono passato a Windows a 64 bit non funziona più.

Sub PROGRAMMINotepadElimina()
  On Error Resume Next
    Dim MEssaggio As String
    Dim objWMI As Object, objProcess As Object, objProcesses As Object
      Set objWMI = GetObject("winmgmts://.")
      Set objProcesses = objWMI.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'Notepad.exe'")
            For Each objProcess In objProcesses
                  Call objProcess.Terminate
                       'MEssaggio = MsgBox(objProcess.CommandLine)
            Next
    Set objProcesses = Nothing: Set objWMI = Nothing
End Sub
Un aiutino?

15 Risposte

  • Re: Chiusura Programmi

    Come ti ho detto in altro thread cosinon chiudi ma termini i processi e puoi perdere dati in questo modo.

    Comunque, elimina la On Error e vedi se hai errori

    Se non hai errori, controlla con il Task Manager il nome del processo attivo e il suo percorso completo
  • Re: Chiusura Programmi

    Grazie.
    Ma qual è la differenza tra chiudere e terminare un processo?
  • Re: Chiusura Programmi

    Un processo terminato non tiene conto dei file aperti e del loro stato. Eventuali dati in scrittura possono essere non scritti e i file corrotti.
  • Re: Chiusura Programmi

    coccobello ha scritto:


    Ma qual è la differenza tra chiudere e terminare un processo?
    Di solito esemplifico la cosa in questo modo: dal punto di vista del processo, c'è la stessa differenza tra il morire di vecchiaia e l'essere assassinati.
  • Re: Chiusura Programmi

    Alka ha scritto:


    coccobello ha scritto:


    Ma qual è la differenza tra chiudere e terminare un processo?
    Di solito esemplifico la cosa in questo modo: dal punto di vista del processo, c'è la stessa differenza tra il morire di vecchiaia e l'essere assassinati.
    E questo spiega 'l'inglesismo' : 'killare' il programma
  • Re: Chiusura Programmi

    Quando vado ad eseguire la seguente routine, per chiudere tutti processi del programma NOTEPAD:
    
    Sub PROGRAMMINotepadElimina()
        Dim MEssaggio As String
        Dim objWMI As Object, objProcess As Object, objProcesses As Object
          Set objWMI = GetObject("winmgmts://.")
          Set objProcesses = objWMI.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'Notepad.exe'")
                For Each objProcess In objProcesses
                      Call objProcess.Terminate
                           'MEssaggio = MsgBox(objProcess.CommandLine)
                Next
        Set objProcesses = Nothing: Set objWMI = Nothing
    End Sub
    
    esce un messaggio che evidenzia in giallo la stringa
    
    Set objWMI = GetObject("winmgmts://.")
    
    .
    e dice "errore di automazione".
  • Re: Chiusura Programmi

    "winmgmts:\\.\root\cimv2"
  • Re: Chiusura Programmi

    Grazie per il suggerimento.
    L'ho messo in pratica, ma il risultato è sempre lo stesso.
    Esce un messaggio che evidenzia in giallo la stringa
    Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
    e dice "errore di automazione".
  • Re: Chiusura Programmi

    Sei administrator?
  • Re: Chiusura Programmi

    No.
  • Re: Chiusura Programmi

    Il codice funziona regolarmente.

    Forse il tuo VB6 non è installato correttamente.
  • Re: Chiusura Programmi

    Voglio farlo funzionare con un'istruzione VBA
  • Re: Chiusura Programmi

    Ovviamente non una sola istruzione. Ma con VBA di quale prodotto?

    Perché posti in questa sezione allora?
  • Re: Chiusura Programmi

    CREDEVO CHE LA SEZIONE VISAUAL BASIC COMPRENDESsE ANCHE IL vba
Devi accedere o registrarti per scrivere nel forum
15 risposte