Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Leggere contenuto label di un altro programma

    Ho l'esigenza di poter leggere il contenuto di una label di un altro programma fatto in VB6. Esiste un modo per arrivare a leggere queste info?
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Beh, è possibile, anche non difficile ma prevede qualche cognizione di base delle API di Windows e del sistema di gestione dei messaggi tra processi.

    In pratica, dovresti

    1) inviare con la API SendMessage il messaggio WM_GETTEXTLENGTH alla finestra del textbox (ovviamente utilizzando l'handle di tale textbox ...) per ottenere la lunghezza del contenuto

    2) allocare una stringa con il numero di caratteri restituiti dalla prima chiamata + 1 (per il terminatore)

    3) inviare con la API SendMessage il messaggio WM_GETTEXT alla finestra del textbox (sempre utilizzando l'handle di tale textbox ...) indicando la stringa allocata in 2) per ottenere il testo cercato

    Una cosa da fare prima è trovare l'handle del textbox da usare in 1) e 3) e per farlo devi fare una "ricerca" con le API FindWindowEx, GetWindow fino ad arrivare al textbox voluto.

    Buon lavoro ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    purtroppo l'oggetto che mi interessa sniffare è una label, non una textbox, e molti mi hanno detto che essendo un'oggetto statico non possiede handler. In realtà con WinSpy++ sono riuscito a trovare un handler ma non so se andrebbe comunque bene.

    Non c'è già del codice di esempio per realizzare ciò che dici tu?
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da hacker_nait
    purtroppo l'oggetto che mi interessa sniffare è una label, non una textbox, e molti mi hanno detto che essendo un'oggetto statico non possiede handler. In realtà con WinSpy++ sono riuscito a trovare un handler ma non so se andrebbe comunque bene.
    Ah ... avevo letto textbox ... non per la label quel metodo non è utilizzabile.

    In effetti con la label non si può dato che non è una window.

    Non c'è già del codice di esempio per realizzare ciò che dici tu?
    Non ti servirebbe per la label e poi basta google ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Originariamente inviato da oregon
    Non ti servirebbe per la label e poi basta google ...
    In realtà prima di postare qui ho Googlato un po', l'unica cosa che ho trovato è un codice che va a leggere la heap del processo cercando di estrapolare la label... ma non funziona:

    http://www.codeguru.com/forum/showthread.php?t=304429
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Beh, la strada potrebbe essere quella ma entriamo in un discorso un po' borderline ...

    Accedere alla memoria di un processo è una tecnica consentita ma piuttosto discutibile ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Originariamente inviato da oregon
    Beh, la strada potrebbe essere quella ma entriamo in un discorso un po' borderline ...

    Accedere alla memoria di un processo è una tecnica consentita ma piuttosto discutibile ...
    Beh... tenendo conto del fatto che l'eseguibile da spiare è sempre lo stesso, quindi gli indirizzi di memoria non cambiano, mi sembra al momento l'unica strada fattibile... poi non saprei...
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da hacker_nait
    Beh... tenendo conto del fatto che l'eseguibile da spiare è sempre lo stesso, quindi gli indirizzi di memoria non cambiano, mi sembra al momento l'unica strada fattibile... poi non saprei...
    Non hai compreso la mia risposta ... non dicevo "discutibile" dal punto di vista tecnico ...


    P.S. Dimenticavo ... il codice che hai indicato funziona bene ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Originariamente inviato da oregon
    P.S. Dimenticavo ... il codice che hai indicato funziona bene ...
    A me no... o meglio mi dice che "This function only works on VB RunTime 6 Forms ThunderFormRT6DC".

    Invece la finestra del programma in questione è una "RTClass"...
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    RTClass ? Ma non era un programma in VB6?

    P.S. Di quale SO parliamo? Il codice è funzionante con XP ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.