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

    [VB6] Eseguire completemente un comando di un applicazione esterna

    Salve,

    Se apro un applicazione esterna e invio comandi a questa applicazione tramite SendKeys, posso fare in modo che ogni comando dell'applicazione venga totalmente eseguito prima di passare alla sendkeys successiva?

    (Qualcosa come DoEvents ma più potente)
    codice:
    Private Sub cmdSendKeys_Click()
    taskid = Shell("D:\Cartella\fvfs.exe", vbNormalFocus)
    AppActivate taskid
        
        SendKeys "{ENTER}"                             '1
        SendKeys "{TAB 7}" & "{ENTER}"            '2
        SendKeys Label1.Caption & "{ENTER}"     '3
            
    End Sub
    Se ad esempio la SendKeys 2 avviasse un processo che necessità tempo, posso far in modo che venga concluso prima di passare alla SendKeys 3 ?
    Come posso fare?

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Puoi solo attendere tra una SendKeys e l'altra ...

  3. #3
    Come può VB6 sapere quando ha terminato l'altra applicazione? Al massimo attendere passivamente un certo numero di secondi con l'API Sleep.
    P.S.: DoEvents non c'entra nulla...
    ---EDIT---
    Battuto sul tempo.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    119
    E invece intercettare la chiusura di un form di un applicazione esterna (o dell'applicazione stessa) è possibile?


    Grazie per le risposte..

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Applicazione esterna e' una cosa, l'applicazione stessa e' un'altra.

    Per l'applicazione esterna, puoi sapere quando termina, se continui a monitorare i processi.
    Se invece, fai il monitor delle finestre, sai quando una finestra non c'e' piu'.
    Per monitor intendo un ciclo che ti enumeri i processi o le finestre a tempo.

    Per l'applicazione stessa, vale lo stesso per le finestre, ovviamente non per il processo.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    119
    Mi sono espresso male, volevo dire chiusura di un form di un' applicazione esterna oppura chiudere completamente l'applicazione esterna..

    Originariamente inviato da oregon
    Per monitor intendo un ciclo che ti enumeri i processi o le finestre a tempo.
    Scusa ma si va sul complesso per me, devo chiedere chiarimenti..
    Se ho intuito bene..
    Dovrei fare un ciclo che ogni tot secondi mi controlla quali finestre sono aperte e quali no, oppure controllare se tutte le finestre di una configurazione nota sono aperte.. giusto?

    Cerco di documentarmi..

    Potrei usare GetWindowText, GetWindowTextLength, EnumThreadWindows , EnumChildWindows? (anche se non so bene come)

    le ho trovate ora qui:
    http://support.microsoft.com/kb/183009/it

    o c'è di meglio?

    Grazie.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se conosci i dati della finestra puoi usare direttamente la FindWindow ... altrimenti le devi enumerare ...

    Vedi

    http://msdn.microsoft.com/library/de...findwindow.asp

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    119


    Sì, direi che conosco sempre i nomi delle finestre, almeno in parte (Title Bar giusto?)

    Allora cerco di prendere confidenza con FindWindow.

    Grazie.


    Ps: Scusa l'ignoranza, ma in parole povere, in cosa consiste e quando si usa l'operazione di enumerazione?

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    L'enumerazione serve a fare un controllo su tutte le finestre, cercare quelle che serve e di cui non si hanno informazioni specifiche, operare su gruppi ...

    Si fa con quelle API che hai trovato ...

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.