Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    VB6 Ricevere un valore numerico da una window di un'altra applicazione

    Ciao a tutti,

    espongo il mio problema sperando di poter ricevere un aiuto, ad ogni modo ringrazio anticipatamente tutti.

    Ho la necessità di esportare un valore numerico da una piattaforma di trading in un progetto Excel utilizzando VBA 6.3. Questo valore non è esportato dalla piattaforma con lo scambio DDE. Così ho pensato di utilizzare le API di Windows per raggiungere il risultato.
    Da ricerche da me effettuate, ho capito che per prima cosa bisognava ricavare hwnd dell'oggetto dal quale ricevere il dato. Quindi ho scaricato un software che provvede a questo: SimpleWinSpy.exe. Con questo software riesco a ricavare (puntandoci sopra il mouse) hwnd dell'oggetto.
    Leggendo un po' nei gruppi di discussione, ho intuito che bisogna invocare la sendmessage per ottenere la risposta, depositarla in una variabile e scriverla in una cella di Excel.

    Ecco quindi le mie domande:

    1) Sono sulla strada giusta?
    2) Qualche volta SimpleWinSpy mi ritorna una valore dell'hwnd alfanumerico (es. 107A0), come lo devo passare?
    3) Qual è la const giusta da utilizzare con sendmessage in questo caso? (supposto che si debba usare la sendmessage)
    4) Qual è il messaggio da utilizzare con sendmessage?
    5) Se volessi incastonare questo in un ciclo che riceve un messaggio ogni qualvolta il valore sulla piattaforma cambia, che API dovrei utilizzare?

    Ringrazio tutti coloro che vorranno aiutarmi
    Pietro123

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Il punto è che l'handle della window cambia ad ogni esecuzione.. quindi credo che quel programma non faccia il caso tuo..

    ps: quel valore è esadecimale non alfanumerico

  3. #3

    Grazie

    Grazie Stoicenko della tua informazione. Sapevo già che l'handle cambia ad ogni riavvio della procedura. Sapresti dirmi qualcosa di più?

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Se conosci il nome del processo esiste una api di windows che dato il nome del processo ritorna il suo handle.. è la EnumWindows.. per info controlla sull'msdn

    edit: la enumwindow richiede il passaggio come parametro di una funzione la quale, fatta da te, deve avere una particolare sintassi in dichiarazione, questa funzione verrà chiamata per ogni window trovata nel sistema, starà poi a te controllare il nome della finestra per sapere quando salvarti l'handle (per sapere il nome della finestra da un handle esiste la GetClassName

  5. #5
    Quindi mi stai dicendo che WinSpy non mi passa l'handle? Giusto?

  6. #6
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    non conosco winspy e quindi non so se è possibile richiamarlo da vba per ottenere l'handle.. è più semplice usare le api di win

  7. #7
    Comunque grazie Stoicenko

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.