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

    [VB] eseguire un comando EXE all'interno di un'applicazione VB

    ciao sapete come si esegue un comando eseguibile
    da un'applicazione VB?
    tipo EXEC paolo.exe ....

    cioè qual'è il metodo per farlo e che sintassi deve avere?

    grazie
    Io sono parte di ciò che ho incontrato

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    10
    esiste una funzione che si chiama SHELL ma vedi sull'MSDN come funzione

    P.S.:io aspetto ancora una risposta al mio quesito...

    ciao

  3. #3
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    semplicemente
    shell "c:\percorso\file.exe"

  4. #4
    ok, grazie ho provato e funziona...

    ma come posso lanciare un file.exe e riprendere l'esecuzione in VB dopo che questo è terminato ?

    è già fatto in automatico da shell? oppure shell apre un nuovo thread indipendente dal processo di VB che lo ha lanciato ?


    grazie
    Io sono parte di ciò che ho incontrato

  5. #5
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    indipendente dal processo VB...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    Ti fai ritornare il PID, ti recuperi l'handle del programma e tramite l'API WaitForSingleObject ti metti in attesa finchè non ha terminato.

    Più o meno devi fare:

    Public Const INFINITE = -1&
    Public Declare Function WaitForSingleObject _
    Lib "kernel32" (ByVal hHandle As Long, _
    ByVal dwMilliseconds As Long) As Long
    Public Declare Function OpenProcess Lib _
    "kernel32" (ByVal dwAccess As Long, _
    ByVal fInherit As Integer, _
    ByVal hObject As Long) As Long

    Public Sub WaitForProcessToEnd(cmdLine As String)
    Dim retVal As Long, pID As Long, pHandle _
    As Long
    pID = Shell(cmdLine)
    pHandle = OpenProcess(&H100000, True, pID)
    retVal = WaitForSingleObject(pHandle, INFINITE)
    End Sub

    Ti basta richiamare WaitForProcessToEnd:

    WaitForProcessToEnd "C:\percorso\nomefile.exe"

    Se puoi vuoi aspettare per un certo intervallo di tempo sostituisci a INFINITE i millisecondi di attesa.
    Ans.

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.