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
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
usa l'oggetto TIMER: dopo un certo Interval si scatena un certo evento (vedi chiusura dell'exe che avevi aperto).
per quello ci sono, ma cosa devo fare per far chiudere l'exe?
Per chiudere un programma basta usare Unload con accanto il nome delle form caricate..
ciao
scusate la mia ignoranza, ma non riesco a capire come devo fare
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 oggettocodice:Private Sub Cmd_Click() Shell ("C:\WINDOWS\system32\notepad.exe") Unload (Form1) End Sub
per la funzione timer invece come devo fare per far partire il tempo dopo l'evento clic?
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?
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
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
non pensavo fosse così complicato, capisco molto poco di quel codice, ma ti ringrazio lo stesso
rimanderò a tempi migliori