Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    115

    [VB6] Verificare esistenza di un processo e di un file

    Ciao a tutti, ho cercato un po' ma non ho trovato nulla... avrei bisogno di sapere se un processo è in esecuzione e anche se (dato un percorso) un file è presente o no. Questo mi servirebbe per fare dire al programma quali programmi tra quelli nel suo elenco interno sono installati sul computer, e quali attualmente sono in esecuzione. In altri linguaggi di programmazione c'era la funziona ProcessExists e quindi era:

    codice:
    If ProcessExists(notepad.exe) else...
    Ma in VB6 come si fa? Grazie.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Per trovare un file, usa la funzione Dir$ del VB ...

    Per il processo, non esiste nulla di nativo in VB, ma puoi usare le librerie WMI ... in questo modo ottieni l'elenco dei processi ... usalo per fare quello che chiedi ...

    codice:
        Dim objWMIService As Object
        Dim objProcess As Object
        Dim colProcess As Object
        
        Dim strList As String
        
        Set objWMIService = GetObject("winmgmts:" _
            & "{impersonationLevel=impersonate}!\\" _
            & ".\root\cimv2")
        
        Set colProcess = objWMIService.ExecQuery _
            ("Select * from Win32_Process")
        
        For Each objProcess In colProcess
            strList = strList & vbCr & objProcess.Name
        Next
        
        MsgBox strList

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    115
    Facciamo prima il dire se il file esiste o no... cioè a me servirebbe avere per esempio un true o un false. Non mi serve trovarlo. Dovrei fare un If... come nell'esempio del primo post. Cioè come procede?

    codice:
    If Dir$(C:\Programmi\FileZilla\FileZilla.exe)=??? then...
    Per il secondo caso mi potresti guidare un po' di più? Non ho mai usato librerie.
    Non è che mi potresti fare un esempio anche qua con un If? Per esempio:
    Se il processo notepad.exe esiste allora....

    Grazie ancora dell'aiuto

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Per la Dir basta controllare la lunghezza della stringa restituita

    codice:
        If Len(Dir$("C:\Tuofile")) Then
            MsgBox "Il file ESISTE"
        End If
    Per il processo, all'interno del ciclo For Each fai il controllo con il nome

    codice:
    For Each objProcess In colProcess
       If objProcess.Name = "tuoprocesso" Then
          MsgBox "Il processo ESISTE"
       End If  
    Next
    ... ma con qualche prova da 5 minuti ci saresti arrivato da solo ...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    115
    Ah beh si che stupido... bastava che al posto di fargli dare in output la lista dei processi gli facessi cercare nel ciclo se c'era quello che cercavo
    Sorry ma oggi pom dovevo essere un po' stordito VVoVe:

    Domani provo ma dovrebbe funzionare tutto da quel che ho potuto interpretarne "a mente".
    Grazie 1000 ancora!

    PS: una curiosità offtopic... quale componente devo abilitare per avere come oggetti le "schede"? Non so se si chiamino propriamente così... avete presente in molte delle finestre di impostazioni di windows (per esempio Opzioni Internet) che in alto ci sono le linguette... ecco volevo fare una cosa del genere. Penso si dovranno fare tanti form quante saranno le schede ma non sapendo dove trovare l'oggetto non saprei... se è veloce ditemi qui, sennò scrivetemi che devo creare un'altro topic

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    TabStrip ...

  7. #7
    Originariamente inviato da Harry
    Facciamo prima il dire se il file esiste o no... cioè a me servirebbe avere per esempio un true o un false. Non mi serve trovarlo. Dovrei fare un If... come nell'esempio del primo post. Cioè come procede?
    se vuoi che ti restituisca un true o un false potresti creare una funzione

    altrimenti, puoi usare FSO.

    aggiungi nei riferimenti Microsoft Scripting Runtime e poi con questo codice controlli se esiste il file:

    codice:
        Dim PercorsoFile As String
        Dim FSO As New FileSystemObject
        PercorsoFile = "C:\file.txt"
        If FSO.FileExists(PercorsoFile) = True Then
            MsgBox "file esistente"
        Else
            MsgBox "file inesistente"
        End If
    lo so che ormai hai risolto il problema grazie a oregon, ma un po' di istruzione in piu non fa mai male, anche perche' FSO offre molto

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    115
    Grazie 1000 anche per la tua risposta, ora dopo quella di oregon provo anche la tua e vedo quale poi usare

    TabStrip però non lo trovo, cercando ho visto che bisogna attivare un componente che si chiama tipo "6.0 oggetti comuni Microsoft Windows" ma non lo trovo neanche quello

    PS: ho trovato ora SSTab ma non so se è la stessa cosa... a vederlo è leggermente diverso dalle "Schede" normali di windows.

  9. #9
    Originariamente inviato da Harry
    Grazie 1000 anche per la tua risposta, ora dopo quella di oregon provo anche la tua e vedo quale poi usare
    prego , la sua e' piu veloce

    ho trovato ora SSTab ma non so se è la stessa cosa... a vederlo è leggermente diverso dalle "Schede" normali di windows.
    dovrebbe essere il componente giusto, se non e' simile a quello di windows XP e' perche' VB e' nato prima

    FORSE trovi qualcosa in giro su come farla uguale a XP

    Senno apri una nuova discussione e qualcuno ti sapra' dire di piu

    ciao

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.