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

    [VB6] chiudere un programma

    salve a tutti

    voglio creare un programma in vb che mi permetta di apire un file exe (ho utilizzato la funzione shell) e di chiuderlo dopo un tempo predefinito, mi sfugge quest'ultimo passaggio, potete aiutarmi?

    grazie

  2. #2
    usa l'oggetto TIMER: dopo un certo Interval si scatena un certo evento (vedi chiusura dell'exe che avevi aperto).

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    6
    per quello ci sono, ma cosa devo fare per far chiudere l'exe?

  4. #4
    Per chiudere un programma basta usare Unload con accanto il nome delle form caricate..

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    6
    scusate la mia ignoranza, ma non riesco a capire come devo fare

    codice:
    Private Sub Cmd_Click()
        Shell ("C:\WINDOWS\system32\notepad.exe")
        Unload (Form1)
    End Sub
    questo programma dovrebbe caricare il blocco note e poi chiuderlo subito dopo, il programma apre il blocco note, ma poi mi dice errore 424, necessario oggetto

    per la funzione timer invece come devo fare per far partire il tempo dopo l'evento clic?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Forse c'e' un equivoco ... chiarisci meglio.

    Tu vuoi che il tuo programma VB si chiuda dopo un certo tempo

    oppure

    vuoi che un programma lanciato in precedenza venga chiuso dopo un certo tempo?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    6
    io voglio che il mio programma VB apra un programma quando clicco su un cmdbutton e dopo un determinato tempo, il programma che ho aperto (non il VB) si chiuda

    scusate se mi sono espresso male

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Allora ... eccoti un esempio di codice in cui, con un tasto lanci il notepad e con un altro lo chiudi

    codice:
    Private Const GW_HWNDNEXT = 2
    Private Const GW_CHILD = 5
    Private Const WM_CLOSE = &H10
    
    Private Declare Function GetWindow Lib "user32" _
      (ByVal hwnd As Long, _
       ByVal wCmd As Long) As Long
      
    Private Declare Function GetDesktopWindow Lib "user32" () As Long
    
    Private Declare Function GetWindowThreadProcessId Lib "user32" _
      (ByVal hwnd As Long, _
       lpdwProcessId As Long) As Long
        
    Private Declare Function SendMessage Lib "user32" _
      Alias "SendMessageA" _
      (ByVal hwnd As Long, _
       ByVal wMsg As Long, _
       ByVal wParam As Long, _
       lParam As Any) As Long
          
    Dim h As Long
    Dim hw As Long
    
    Private Sub Command1_Click()
        h = Shell("notepad.exe", vbNormalFocus)
    End Sub
    
    Private Sub Command2_Click()
        hw = GethWndFromProcessID(h)
        SendMessage hw, WM_CLOSE, 0, 0
    End Sub
    
    Private Function GethWndFromProcessID(hProcessIDToFind As Long) As Long
        Dim hDesktop As Long
        Dim hChild As Long
        Dim hChildProcessID As Long
        
        hDesktop = GetDesktopWindow()
        hChild = GetWindow(hDesktop, GW_CHILD)
        
        Do While hChild
            Call GetWindowThreadProcessId(hChild, hChildProcessID)
            
            If hChildProcessID = hProcessIDToFind Then
                GethWndFromProcessID = hChild
                Exit Do
            End If
            
            hChild = GetWindow(hChild, GW_HWNDNEXT)
        Loop
    End Function

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    6
    non pensavo fosse così complicato, capisco molto poco di quel codice, ma ti ringrazio lo stesso

    rimanderò a tempi migliori

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.