|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2001
Città: de_legato
Messaggi: 792
|
come windows gestisce il "copia e incolla"...
come da titolo, stò cercando di riuscire a "copiare" letteralmente del testo da una semplicissima finestra che ho creato in C utilizzando l'API MessageBox ......in pratica vorrei fare una specie di "selezione" della zona dove si trova la finestra per poi poter fare un "copia e incolla" su un txt salvandomi quindi tutto il testo "C++ Frame", "Cerca di copiarmi se ci riesci! ^_^" e anche l'Ok del button!!
![]() Ho allegato un'immagine che dovrebbe, in teoria, indicare quello che voglio fare .....come vedete se provo a selezionare la finestra questa diventa inattiva e non riesco, ovviamente, a selezionare il testo! (ho preso l'immagine con il tasto stamp, il puntatore del mouse cmq dovrebbe essere in basso a destra) ...dite che è possibile ? .....sono gg che cerco per internet qualche api che possa essermi utile ma non ho trovato nulla ![]() ciao e grazie all'eventuale benefattore che riuscirà a darmi qualche dritta per questo epico ![]() PS: so che può sembrare un problema del c****, infatti lo è ![]()
__________________
---------------------------------------------- File reality.sys corrupted, Reboot Universe? Y/N ---------------------------------------------- Ultima modifica di Frank1962 : 28-09-2003 alle 19:11. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Per la clipboard è facilissimo...ci sono le API: OpenClipboard, EmptyClipboard, SetClipboardData, GetClipboardData, CloseClipboard.
Per prendere tutti i testi di una finestra è un po' più complicato...ci penso un po'... |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
|
uhm.. pensandoci così al volo mi sa che si dovrebbe risalire la catena, partendo dalla finestra e cercando ricorsivamente i figli, e per ognuno riconoscere che tipo di oggetto è, e se è un oggetto con una parte testuale recuperarne il testo
però ho sonno e non mi va di pensarci troppo, l'mfc non mi piace granchè ![]() |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Per ottenere tutti i figli di un hWnd c'è EnumChildWindows...a quel punto ti basta richiedere su ogni child window un GetWindowText e dovresti essere a cavallo... Per stampare le posizioni giuste del testo devi costruirti la stampa in base a GetWindowRect...
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
|
uhm, tieni ragione pure te... ok, da oggi non rispondo più 5 minuti prima di andare a letto
![]() cmq... con le api si fa comunque in questo modo... Ultima modifica di ri : 29-09-2003 alle 07:55. |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
non è semplicissimo ma prova con:
Codice:
char MioTesto[254]; SendMessage(hWnd,WM_GETTEXT,sizeof(MioTesto),(long)MioTesto); |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Sep 2001
Città: de_legato
Messaggi: 792
|
ho provato a mandare un SendMessage (ovviamente mettendo l'handle della finestra manualmente) ma mi da sempre un errore:
->fatal error C1083: impossibile aprire il file libreria dei tipi "...\Vc7\PlatformSDK\lib\user32.lib": Errore durante il caricamento della libreria DLL dei tipi<- ...che cosa può essere ? il file user32.lib si trova nella cartella lib! ![]() il codice che uso è: Codice:
#define STRICT #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <winuser.h> #import <user32.lib> int WINAPI WinMain() { char MioTesto[254]; LRESULT SendMessage(000805E6,WM_GETTEXT, WPARAM wParam, LPARAM lParam); return 0; } ![]()
__________________
---------------------------------------------- File reality.sys corrupted, Reboot Universe? Y/N ---------------------------------------------- Ultima modifica di Frank1962 : 30-09-2003 alle 03:40. |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Sep 2001
Città: de_legato
Messaggi: 792
|
Quote:
![]()
__________________
---------------------------------------------- File reality.sys corrupted, Reboot Universe? Y/N ---------------------------------------------- |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sinceramente non lo so, probabilmente Java non traduce i widget presenti sulla finestra in finestre windows standard e le gestisce per conto suo (come se la finestra intera fosse un bitmap e clickando in un certo punto del bitmap si scatenano certi eventi, fosse così alllora capisco perchè sono così lente le interfacce in Java)...
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:24.