Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    234

    c'è un modo per far avvenire con un pulsante più eventi con una distanza di tempo?

    c'è un modo per far avvenire con un pulsante più eventi che tra loro hanno una distanza di tempo? ES:

    courier Private Sub Cmdexport_Click()
    Shell "FSHTOOL " & File1

    distanza di tempo

    FileCopy "dir\0000.bmp", "C:\WINDOWS\DESKTOP\LAVORO\0000.bmp"
    End Sub

    arial potreste scrivermi il codice con una distanza di tempo frai due eventi?

    Adrix

  2. #2
    Dim primoevento As Boolean

    Private Sub Form_Load()
    Timer1.Interval = 900 ' Imposta l'intervallo. (900 mllisecondi)
    Timer1.Enabled = False ' il timer è stoppato
    End Sub

    Private Sub Command1_Click()
    primoevento = True 'abilito l'esecuzione del primo evento
    Timer1.Enabled = True ' faccio partire il timer
    End Sub



    Private Sub Timer1_Timer() ' quando parte il timer eseguo questo codice

    If primoevento Then
    'esegui il primo evento
    Label1.Caption = "Buon giorno" 'dopo 900 millisecondi nella label scrivo buongiorno

    primoevento = False 'il primo evento è avvenuto quindi lo disabilito

    Else 'dopo altri 900 millisecondi eseguo di nuovo questa procedure ma siccome il primo evento è avvenuto,entro dentro questo else
    'esegui il secondo evento
    Label1.Caption = "Buona sera" ' ora visualizzo buona sera
    Timer1.Enabled = False ' ho visualizzato tutti e 2 gli eventi,quindi disabilito il timer

    End If
    End Sub


    Spero di esser stato chiaro,da me funzia! fa sapere
    Ciao

    :bubu:
    mic

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    234
    Ascolta io ho questi due eventi da dividere puoi dividermeli tu con una distanza di circa due-tre secondi? In modo che incollo direttamente il codice che mi scrivi nel progetto.

    __________________________________________________ _____________

    Private Sub Cmdexport_Click()
    Shell "FSHTOOL " & File1
    __________________________________________________ _____________

    FileCopy "dir\0000.bmp", "C:\WINDOWS\DESKTOP\LAVORO\0000.bmp"
    End Sub
    __________________________________________________ ______________


    rispondi al + presto
    Adrix

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    327
    Puoi usare l'api WaitForSingleObject che serve ad attendere che il processo che hai eseguito con shell sia terminato.

    Il tuo problema è che devi aspettare i risultati del programma che hai eseguito?

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    234
    si si proprio quello. devo attendere la fine del processo dello shell e poi eseguire altre operazioni.

    mi scrivi cosa dovrei scrivere fra le due operazioni?

    Adrix

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    327
    Allora in testa al programma devi mettere (dove metti le variabili globali al form)
    codice:
    Private Declare Function WaitForSingleObject Lib "KERNEL32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
    Private Declare Function OpenProcess Lib "KERNEL32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Private Declare Function CloseHandle Lib "KERNEL32" (ByVal hObject As Long) As Long
    Poi usi questa funzione per eseguire il file:

    codice:
    Public Sub ShellWait(ByVal FileName As String, Optional WindowStyle As Variant)
        Dim idProc As Long
        Dim hProc As Long
    
        idProc = VBA.Shell(FileName, WindowStyle)
    
        hProc = OpenProcess(&H1F0FFF, False, idProc)
        'attendi fine programma
        If hProc <> 0 Then
            Call WaitForSingleObject(hProc, INFINITE)
            Call CloseHandle(hProc)
        End If
    End Sub
    Quindi al posto di shell usi questa sub e non devi temporizzare niente.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    234
    si ma nel codice che mi hai dato dove la scrivo la funzione del progr in dos?

    Shell "FSHTOOL " & File1

    Adrix

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    327
    Un po' di elasticità.

    Scusa intanto la costante INFINITE vale -1

    ShellWait "FSHTOOL " & File1

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    234

    scusami

    scusa mi riscrivi tutto il codice con il comando che ti ho dato? in modo che lo incollo direttamente.

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    327
    Se vuoi vengo la direttamente.

    Private Sub Cmdexport_Click()
    ShellWait "FSHTOOL " & File1

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.