Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VB6] Killer di Processi

    Salve a tutti,

    non essendo un esperto di visual basi chiedo una consulenza a voi.

    Avrei necessità di creare un programma che ricavi la lista dei processi in corso e ne elimini quelli che corrispondono ad una cerca apllicazione.

    Esempio:
    Ricavo la lista di processi in esecuzione e killo tutti quelli che hanno come nome immagine "programma.exe".

    E' possibile realizzarlo ?
    Necessito di qualche componente in particolare ?

    Ovviamente su ambienti WinXp lo lancerei da account administrator.

    Grazie a tutti,
    Antonio.
    Vuoi guadagnare con il tuo sito ?
    affiliati con noi e riceverai ottime percentuali !!!
    Travellero Affiliate Program
    Scambia link con noi

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    si, si può fare usando delle api, avevo visto un programma di esempio che faceva ciò in rete, se lo ripesco te lo posto;
    cmq sei OT.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  3. #3
    Grazie per la risposta, se lo trovi postamelo.

    ma perchè sono OT ? io volgio realizzare il tutto in VB6 non è questa la sezione della programmazione?


    Ciao e grazie,
    Antonio.
    Vuoi guadagnare con il tuo sito ?
    affiliati con noi e riceverai ottime percentuali !!!
    Travellero Affiliate Program
    Scambia link con noi

  4. #4
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    per .net e vb6 c'è un sub forum apposito.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  5. #5
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Eccolo, era su ioprogrammo n.79, praticamente chiude un processo di quel nome ad un ora predefinita:

    codice:
    Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
    Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
    Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
    Private Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)
    Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
    Private Declare Function OpenProcess Lib "Kernel32.dll" (ByVal dwDesiredAccessas As Long, ByVal bInheritHandle As Long, ByVal dwProcId As Long) As Long
    
    Const TH32CS_SNAPALL = 15
    Const TH32CS_INHERIT = &H80000000
    
    Dim application As String
    Dim hours, minutes As Integer
    
    Private Type PROCESSENTRY32
        dwSize As Long
        cntUsage As Long
        th32ProcessID As Long
        th32DefaultHeapID As Long
        th32ModuleID As Long
        cntThreads As Long
        th32ParentProcessID As Long
        pcPriClassBase As Long
        dwFlags As Long
        szExeFile As String * 260
    End Type
    
    Public Function getexename(ByVal fullpath As String) As String
        Dim exename As String
        exename = fullpath
        Do While InStr(exename, "\")
            exename = Right(exename, Len(exename) - InStr(exename, "\"))
        Loop
        getexename = exename
    End Function
    
    Public Function killapp(ByVal application As String)
        Dim hSnapShot As Long
        Dim uProcess As PROCESSENTRY32
        Dim phandle, i As Long
        Dim exename, app As String
        
        app = UCase(application)
        hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0&)
        uProcess.dwSize = Len(uProcess)
        i = Process32First(hSnapShot, uProcess)
        Do While i
            exename = Left$(uProcess.szExeFile, IIf(InStr(1, uProcess.szExeFile, Chr$(0)) > 0, _
            InStr(1, uProcess.szExeFile, Chr$(0)) - 1, 0))
            exename = UCase(getexename(exename))
            If exename = app Then
                phandle = OpenProcess(PROCESS_ALL_ACCESS, False, uProcess.th32ProcessID)
                TerminateProcess phandle, 0
            End If
            i = Process32Next(hSnapShot, uProcess)
        Loop
        CloseHandle hSnapShot
    End Function
    
    Private Sub Form_Load()
    Timer1.Interval = 1000
    'Settare il nome del programma e il
    'momento della sua chiusura
    application = "notepad.exe"
    hours = 18
    minutes = 40
    End Sub
    
    Private Sub Timer1_Timer()
    If (Round(Timer) = hours * 3600 + minutes * 60) Then
    killapp application
    End If
    End Sub
    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  6. #6
    Immensamente grato!!!!

    Hai trovato proprio quello di cui necessitavo.

    Grazie,
    Antonio.
    Vuoi guadagnare con il tuo sito ?
    affiliati con noi e riceverai ottime percentuali !!!
    Travellero Affiliate Program
    Scambia link con noi

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 © 2025 vBulletin Solutions, Inc. All rights reserved.