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

    Aspettare la chiusura di un'applicazione

    Salve, il mio problema è il seguente, devo far eseguire ad un programmino una procedura lineare, ovvero, deve eseguire un'applicazione X con comandi testuali (esempio app -x -a) e poi spegnere il pc con lo shutdown.

    Allora, sul forum ho trovato l'esempio per far sì che si possa aspettare che l'applicazione X avviata si chiuda, e va bene, solo che a me è capitata un'altra cosa, ovvero l'applicazione X a sua volta avvia un'altra applicazione, javaw.exe, quindi è come se l'applicazione X si chiudesse subito e mi si spegne il computer...

    Che modifiche devo fare al codice di seguito per interpellare l'applicazione javaw.exe?

    Grazie

    Option Explicit

    Dim process_id, process_handle

    Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Public Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
    Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Public Const INFINITE = &HFFFF ' Timeout infinito
    Public Const SYNCHRONIZE = &H100000

    Sub main()
    Dim esegui(1) As String
    Open App.Path & "\config.ini" For Input As #1
    Line Input #1, esegui(0)
    Line Input #1, esegui(1)
    Close #1
    process_id = Shell(esegui(0), vbNormalFocus)
    DoEvents
    process_handle = OpenProcess(SYNCHRONIZE, 0, process_id)
    If process_handle <> 0 Then
    WaitForSingleObject process_handle, INFINITE
    CloseHandle process_handle
    End If
    Shell (esegui(1))
    End Sub

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Si tratta di VB6?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Porc, hai ragione, si VB6, mi sono scordato di inserirlo nel titolo, me lo puoi inserire tu che ormai io non posso più?

    Tnx

  4. #4
    Raffino la richiesta:

    Si nota che all'esecuzione dello shell viene assegnato a process_id l'ID dell'applicazione lanciata con lo shell.

    Visto che l'applicazione lanciata con lo shell non mi è utile ma so come si chiama l'applicazione che effettivamente devo attendere, dato il nome del processo (javaw.exe) come faccio a ricavarmi l'id di tale processo?

    Grazie

  5. #5
    Nessun suggerimento?

  6. #6
    Se ne è parlato poco tempo fa, e in maniera esaustiva: prova a fare una ricerca sul forum.

    Ciao

  7. #7
    Ho tentato, ma non ho trovato nulla che faccia per me, se tu mi sai dire il post o mi puoi attaccare il link mi faresti un favore mica da poco

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.