|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
Dite che è possibile?
dico subito che io penso di si e passo ad esporre
supponiamo che da un vostro programma vogliate pilotare IE (il vostro Browser) in questo senso conndizione iniziale: IE non è in esecuzione lanciate il vostro programma e cliccando su di un Button eseguite le seguenti funzioni: a) aprite Internet Explorer b) attivate il menu File c) attivate la voce di menu Apri d) gli fornite il percorso di un'immagine e) rispondete attraverso il vostro programma di caricare l'immagine f) l'immagine viene mostrata si IE aperto dal vostro programma io penso che con gli Hook di windows sia possibile ma non conosco questa tecnica di programmazione |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Credo che basti inviare i messaggi giusti alle varie finestre...
Spiegami però cosa vuoi fare di preciso perchè ci potrebbero essere soluzioni alternative... |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
bravo, infatti ho trovato la SendMessage()
in breve cosa desider ottenere ho un programma costituito da diverse schermate, ad ogno schermata corrispodono ben definiti campi e per arrivare ad una schermata particolare devi cliccare e selezionare molti controlli il mio programma, dovrebbe fungere da menu semplificato el senso che, se dico all'utente di visualizzare una determinata schermata è sufficiente che clicchi su di un pulsante della mia applicazione non so se sono stato chiaro vedi esempio sopra di IE dove per visualizzare un'immagine nella sua finestra devi compiere un certo numero di operazioni; supponi di aver scritto un programma dove su di una form vi sia un pulsante con scritto "mostra immagine in IE" e cliccandovi sopra il tutto avviene automaticamente in pratica, fornire istruzioni ad IE attraverso un tuo programma |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non ti basta passare il link da aprire quando lanci IE ?
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
o, quello di IE è solo un banale esempio; supponi che vuoi dire a word di salvare tutti i documenti aperti e chiudersi
SendMessage(HWND, UINT, WPARAM, LPARAM) almeno, penso sia questa l'API da usare |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
solo per darti un'idea :
LPCTSTR lpClassName = NULL; HWND hWnd = FindWindow( lpClassName, "Test.cpp - WordPad"); SetWindowPos( hWnd, HWND_TOP, 0, 0, 800, 600, SWP_SHOWWINDOW ); dico a windows di ingrandire la finestra di WordPad a 800x600 pixel supponi che gli voglia dire, attraverso il mio programma, di aprire in WordPad la finestra "Visualizza->opzioni" |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Devi vedere che messaggio viene inviato all'applicazione per aprire quell'opzione del menù...
Ti serve un programma tipo Spy++ del Visual Studio... |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
e qui entrano in gioco gli hook di windows, penso
Spy, dal nome mi fa pensare a qualcosa di poco pulito l'applicazione che intendo scrivere io invece, è pulitissima sarebbe comoda ad esempio per far compiere alle più svariate applicazioni i compiti più ripetitivi |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Spy++ è completamente legale...serve per monitorare i msg che vengono inviate all'applicazione... In ogni caso ci dovrebbe essere un DDE server in Internet Exploder
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
mi sto convincendo che scrivere u programma che catturi i messagi di un programma esterno non sia poi così complesso in quanto tutto windows è basato su essi: spero di non essere troppo facilone
il problema è trovare documentazione valida ho provato a spedire ed a ricevere messaggi tra 2 miei programmi ed il tutto sembra funzionare ma, diverso è "strapparli" da un programma esterno ed ignoto |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
leggo male o qui si dice che la GetMessage() non ritorna messaggi di un'applizazione esterna?
The GetMessage function retrieves a message from the calling thread's message queue and places it in the specified structure. This function can retrieve both messages associated with a specified window and thread messages posted via the PostThreadMessage function. The function retrieves messages that lie within a specified range of message values. GetMessage does not retrieve messages for windows that belong to other threads or applications. |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sì...infatti la tua affermazione mi sembrava un po' troppo affrettata
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
infatti ho una gran fretta
se trovi documentazione in merito, grazie temo che si debbano usare gli hook ma, se esiste già qualcosa di pronto non lo disdegno, una sorta di registratore di messaggi ed eventi di questo tipo: supponi di voler stampare un libro di 20 capitoli, e supponiamo che sia scritto in word, e supponiamo anche che dello script editor interno non ti importi nulla: lanci il programma che chameremo "recorder", gli dici quale programma monitorare, e da quel momento memorizza tutto ciò che selezioni o clicchi in word in questo modo, anche i programmi nei quali non è prevista questa funzionalità divengono più produttivi tornando a word, supponi che "recorder" momorizzi: a) apertura del primo capitolo b) inserimento numeri di pagina c) creazione del sommario d) stampa poi apertura del secondo capitolo etc.... la prossima volta che ti serve stampare è sufficiente cliccare su un pulsante di recorder e word esegue fedelmente quanto comandato se ti capita qualcosa di simile |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Comunque quasi tutti i programmi della Microsoft hanno un server DDE interno... Informati su questa tecnologia...
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Comunque SetWindowsHookEx...
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
Esiste una versione freeware di Spy++ ??
stò provando ad usare PostMessage() |
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non lo so mi dispiace...
Comunque Spy++ non fa altro che settare un hook per la cattura dei messaggi sul processo che scegli... |
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
l'ho trovato ma, come fai a disctricarti in quella marea di messaggi?
un pò troppi per i miei gusti |
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Li puoi filtrare...ad esempio elimina quelli del mouse...
|
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
cmq, è un massacro, spedendo ad esempio a Notepad i medesimi messaggi non funziona nulla
mah..... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:28.



















