Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    27

    Aprire, chiudere e controllare un eseguibile (.exe)

    Ciao a tutti,
    vi spiego subito qual'è il problema, io devo lanciare un eseguibile da un programma in visual basic 6 aspettare che lui faccia tutte le sue operazioni e poi farlo richiudere ma non so proprio come fare.
    Ho trovato il modo di aprire un file eseguibile usando una parte di codice che ho trovato sempre su questo forum ma non ho trovato niente per controllare tutto il processo ne per richiudere il programma qualcuno mi saprebbe aiutare?

    questo è il codice che uso per aprire il file .exe

    utilizzo una shell:

    Dim app, returnvalue
    app = Shell("nomeprogramma", 1)
    AppActivate app

  2. #2
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao Mesco,
    potresti utilizzare questa funzione, che nell'esempio comanda WinZip. Naturalmente la devi adattare alle tue esigenze in conformità al programma che deve seguire.

    codice:
    Private Declare Function OpenProcess Lib "kernel32" _
        (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
        Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hprocess As Long, lpExitCode As Long) As Long
        Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
        Const STILL_ACTIVE = &H103
        Const PROCESS_QUERY_INFORMATION = &H400
    
    Private Sub Command1_Click()
        
        Dim StringaComando As String
        
    'Percorso di destinazione:
        Dim ValoreDir As String
        ValoreDir = "D:\Test\MioBk.zip"
    
    ' Percorso d'origine:
        Dim FolOrig As String
        FolOrig = "D:\Elaborazioni\Prova\DATI"
    
        'Copia con WinZip:
            Form1.MousePointer = 11
            StringaComando = "C:\programmi\winzip\winzip32.exe -a -r " & ValoreDir & " " & FolOrig & ""
            'Funzione per la copia ed il Backup:
            Call RikShell(StringaComando)
            Form1.MousePointer = 0
    
    End Sub
    Function RikShell(exe As String, Optional WinStyle) As Integer
        
        Dim processid As Long
        Dim hprocess As Long
        Dim exitcode As Long
        Dim parm As Integer
    
    'Controllo il parametro opzionale finestra:
        Select Case VarType(WinStyle)
            Case vbEmpty, vbNull, vbError
                parm = vbNormalFocus
            Case vbLong, vbInteger, vbSingle, vbDouble
                parm = WinStyle
            Case Else
                parm = vbNormalFocus
        End Select
    
    'Preleva l'ID del processo lanciato:
        processid = Shell(exe, parm)
    
    'Crea un Handle per quel processo:
        hprocess = OpenProcess(PROCESS_QUERY_INFORMATION, False, processid)
        Do
    'Controlla ripetutamente che termini il backup:
        Call GetExitCodeProcess(hprocess, exitcode)
    'Lascia libero il sistema di processare le altre applicazioni:
            DoEvents
        Loop While (exitcode = STILL_ACTIVE)
    
        CloseHandle (hprocess)
    
    End Function
    LM

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    27
    Grazie mille adesso provo se mi trovo in crisi ti ricontatto per adesso grazie ancora....

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    197
    scusate se riprendo un vecchio post ma stavo navigando sul forum e questo post sembrava il più completo non ho bene capito se questa stringa di codice riesce a copiare un file zip e testarne i parametri oppure è in grado di eseguire la compressione di un intera cartella, poiche ho la necessita di creare un programma che opera sempre e a intervalli regolari gestiti dall utente o dall admin esegua il bakup di una cartella sotto forma zip grazie e scusate ancora

  5. #5
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao nandoar,
    la routine in VB6 che hai ripescato, mediante una riga di comando ("C:\programmi\winzip\winzip32.exe -a -r " & ValoreDir & " " & FolOrig & "") esegue una copia di Backup della cartella DATI (FolOrig = "D:\Elaborazioni\Prova\DATI"), comprimendola con WinZip.
    E' completa e dovrebbe funzionare, sempre che sia installato sul PC il programma WinZip, quindi non ti rimane che provare.
    LM

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    197
    grz per la disponibilita di domenica mattina è stato fondamentale

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.