Inviare stringhe ad un altro programma

di il
4 risposte

Inviare stringhe ad un altro programma

Ciao ragazzi

Ho un problema con un mio programma e spero che qualcuno di voi sappia aiutarmi. Il mio programma deve prendere delle stringhe da un file di testo e copiarle in un piccolo prompt presente in un altro programma (ovviamente il secondo programma deve essere avviato). La mia idea era quella di richiedere l'id del programma a windows e poi cercare in qualche modo di inviargli la stringa. Il problema però è che non so come si fa. Su internet ho trovato una funzione getProcessId però pare non funzionare.
Qualche idea?

Grazie mille

4 Risposte

  • Re: Inviare stringhe ad un altro programma

    Allora se non ho capito male, hai due programmi, di cui uno di essi è simile al prompt dei comandi(intendo dos come nella fugura), .
    Dalla prima applicazione vuoi inviare una stringa che si visualizzi nel prompt dei comandi?
    Dovresti prendere l'handle della finestra(prompt), non credo ti serva l'id del processo, e ottenere l'handle della seconda finestra, quella dove vedi i messaggi(textbox per intenderci) e quindi inviare il messaggio se non sbaglio WM_SETTEXT(controlla) con una SendMessage appunto all'handle della finestra(textbox), però devi conoscere l'id della finestra(textbox). Il programma promtp lo hai fatto tu?
  • Re: Inviare stringhe ad un altro programma

    Overflow ha scritto:


    allora se non ho capito male, hai due programmi, di cui uno di essi è simile al prompt dei comandi(intendo dos come nella fugura)
    Questo è il mio programma: come vedi in basso c'è un prompt tramite il quale si possono dare i comandi al programma.
    .
    Dalla prima applicazione vuoi inviare una stringa che si visualizzi nel prompt dei comandi?
    Esatto, poi nel secondo programma si da l'invio e lui esegue il comando
    Dovresti prendere l'handle della finestra(prompt), non credo ti serva l'id del processo, e ottenere l'handle della seconda finestra, quella dove vedi i messaggi(textbox per intenderci) e quindi inviare il messaggio se non sbaglio WM_SETTEXT(controlla) con una SendMessage appunto all'handle della finestra(textbox), però devi conoscere l'id della finestra(textbox). Il programma promtp lo hai fatto tu?
    Io ho provato questo codice:
    
    HWND rifSoftware;
    rifSoftware=FindWindow("#32770",NULL);
    rifSoftware=getParent(rifSoftware);
    SetForegroundWindow(rifSoftware);
    
    Lui mi trova l'istanza del programma e mi restituisce l'handle, però ora non so come fare ad inviare la stringa. Il primo programma non è mio altrimenti avrei implementato il tutto come plugin, non come programma esterno a se stante.
  • Re: Inviare stringhe ad un altro programma

    Se non trovi il codice sorgente del programma, potresti provare ad utilizzare la keybd_event() se non sbaglio si chiama cosi, però la cosa è un po più complicata, perchè questa funzione simula la pressione di un tasto, quindi se il focus è sulla textbox(il campo prompt) allora verrà viene scritto il carattere.
  • Re: Inviare stringhe ad un altro programma

    Dopo due ore di tentativi ci sono riuscito con la funzione SendMessage(). Funziona perfettamente, mi manca solo da capire come dirgli di inviare anche l'invio così da mandare il commando direttamente dal mio programma senza dover tornare nel programma principale a premere invio
Devi accedere o registrarti per scrivere nel forum
4 risposte