|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jan 2004
Messaggi: 173
|
Usare un'applicazione mediante un'altra (VB6)
Avrei l'esigenza di inserire dei dati in dei textbox e combobox di un'applicazione della quale ho solo l'eseguibile. Tutto questo mediante una mia applicazione sviluppata con VB6. E' possibile ciò?
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
|
si ma non molto agevolmente e comunque usando il subclassing.
non l'ho mai fatto ma sicuramente lo puoi fare. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
|
Non credo che tu riesca a "catturare" dei dati visibili in un'applicazione creata per lavorare autonomamente per poi visualizzarli in una tua applicazione completamente separata.
Se l'applicazione "sorgente" non ha modo di esporre i dati che ti servono tramite proprietà, ti ripeto, non credo li puoi catturare.
__________________
Careful With That Axe |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Si può fare tranquillamente ma appunto come già detto non è una cosa affidabilissima...
ti posto un esempio dalla MSDN Esempio di istruzione SendKeys: In questo esempio la funzione Shell viene utilizzata per eseguire l'applicazione Calcolatrice di Microsoft Windows. Esso utilizza l'istruzione SendKeys per inviare sequenze di tasti per l'aggiunta di alcuni numeri e l'uscita dalla Calcolatrice. Per provare questo codice di esempio, incollarlo in una routine, quindi eseguire la routine. Dato che AppActivate sposta lo stato attivo sull'applicazione Calcolatrice, non è possibile eseguire il codice un'istruzione alla volta. Codice:
Dim ReturnValue, I ReturnValue = Shell("calc.exe", 1) ' Esegue la Calcolatrice. AppActivate ReturnValue ' Attiva la Calcolatrice. For I = 1 To 100 ' Imposta il ciclo di conteggio. SendKeys I & "{+}", True ' Invia sequenze di tasti alla Calcolatrice per aggiungere Next I ' ciascun valore di I. SendKeys "=", True ' Legge il totale. SendKeys "%{F4}", True ' Invia ALT+F4 per uscire dalla Calcolatrice.
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
|
Quote:
__________________
Careful With That Axe Ultima modifica di Brigante : 10-09-2004 alle 11:01. |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Bhe che io conosca per intervenire su un programma esterno e mandargli dati ... è l'unico che conosco.
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Jan 2004
Messaggi: 173
|
Quello che vorrei realizzare è questo:
Mi trovo davanti ad una macchina gestita da un programma del quale ho solo l'esegubile. Questa applicazione ha una marea di combobox e textbox, che io vorrei popolare con una mia applicazione, realizzata da me. Non ho la necessità di leggere o determinare alcun valore dalla macchina. I dati da immettere saranno immagazzinati nel database della mia applicazione. Comunque si tratterebbe solo di un aiutino all'operatore visto che comunque dovrebbe rileggere il tutto. Ho visto i vostri suggerimenti e non li trovo niente male. Ma mentre nel vostro esempio (calcolatrice) il textbox da popolare è solo uno, io nè avrei da popolare una quindicina. A questo punto avrei l'esigenza di spostare il focus da un textbox ad un'altra ma non sò come fare. Pensandoci bene però avrei il seguente problemi: Non conosco la posizione iniziale del focus nel programma della macchina. Secondo voi è possibile trovare una soluzione a questo problema, senza obbligare l'operatore ha lasciare lo stato attivo su un determiato controllo? Vi ringrazio per avermi dato del materiale con il quale smanettare. |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
La cosa non è impossibile... Dovresti usare la FindWindow per trovare l'handle dell'applicazione... Dopo con la EnumChildWindows potresti scorrerti tutte le textbox...e con la SetWindowText potresti settare il contenuto di ogni textbox...
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:50.