Salve!
Ho una applicazione (fatta in Visual Fox Pro) e non mia che nella sua immensità, ha 2 campi, Codice e Nome completo.
L'applicazione cerca in una istanza di SQL Server e caccia i risultati.
L'applicazione però permette di cercare solo per codice (ed è una cosa alquanto scomoda).
Così ho fatto un rapido Dialog In C++ e WIN32 e usando SQL Native Client direttamente in C++ (OLEDB) mi sono fatto la mia ricerca personale per Nome completo.
Devo però ancora copiarmi il codice e incollarlo nell'altra APP.
Così ho deciso di automatizzarmi questo processo.
Il punto è che in tutti i modi, non riesco ad acchiappare le TEXTBox interne al form.
E' strutturato in questo modo
Un form (penso MDI), con un form dentro e in tal form ci sono le textbox.
1)EnumChildWindow
Chiamando questa funzine usando l'HWND della finestra in cui c'è la textbox, semplicemente ritorna e non chiama mai la mia funzione di Callback
2) GetNextDlgItem
Ritorna sempre l'HWND della finestra, mai bottoni, label o textbox
3) GetGuiThreadInfo
La proprietà .hWndFocus è sempre sull'HWND principale, anche se il focus è diretto sulla textbox interessata (funziona con un semplice dialog di prova)
4) Spy++ non riesce a rilevare i controlli interni.
Ma che siano disegnati a mano?
Potreste dirmi "continua a incollare", ma oramai è una sfida.
Così ho deciso di trovare la posizione della finestra, simulare movimenti del mouse, click e i keystroke necessari
Ho usato GetClientRect ma la struttura RECT ha coordinate dipendendi dallo schermo. Questo è male, se mai cambierò monitor.
Ho trovato funzioni del tipo LogicalToPhysical conversion,ma possono essere usate solo in Windows Vista!
Avete qualcosa del tipo "screen independent resolution"?
Devo fare il subclass della wndproc? Ma tra processi diversi è impossibile...devo andare di WriteProcessMemory?
Grazie!!!