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

    [C++] Esempio di utilizzo di winexec

    Ciao a tutti.
    Qualcuno saprebbe spiegarmi un utilizzo della funzione winexec?!
    Io vorrei inviare un comando ad una console che emula linux chiamata cygwin.
    Ho provato a guardare sul sito msdn ma non è molto chiaro.
    Vorrei inviare il comando "cd .." alla mia console.
    Come fare?!
    un saluto a tutti

  2. #2

    Re: [C++] Esempio di utilizzo di winexec

    Originariamente inviato da Giovanni Pr88
    Ciao a tutti.
    Qualcuno saprebbe spiegarmi un utilizzo della funzione winexec?!
    Eccoti accontentato..
    codice:
    TCHAR program[] = "tuoexe.exe argomento";  //ovvio che argomento può anche non esistere
    2 WinExec((LPCSTR)program, SW_SHOWNORMAL);

    Originariamente inviato da Giovanni Pr88
    Io vorrei inviare un comando ad una console che emula linux chiamata cygwin.
    Ho provato a guardare sul sito msdn ma non è molto chiaro.
    Vorrei inviare il comando "cd .." alla mia console.
    Come fare?!
    Leggi qua: http://forum.html.it/forum/showthrea...readid=1430391


    Io ti ho risposto a questo post ma ovviamente non potevo non notare che avevi già aperto una discussione a dir poco simile, ed ora la stavi riproponendo solo in "vesti" diverse: con la scusa della funzione WinExec hai riproposto il tuo *reale* problema: inviare comandi alla console linux.
    Ecco il link: http://forum.html.it/forum/showthrea...readid=1430678


    Ovviamente penso che una delle due discussioni sarà chiusa dal Moderatore.


    Ciao

  3. #3

    Re: [C++] Esempio di utilizzo di winexec

    Originariamente inviato da Giovanni Pr88
    Ciao a tutti.
    Qualcuno saprebbe spiegarmi un utilizzo della funzione winexec?!
    La WinExec serve per creare un nuovo processo. È ultra-deprecata (è mantenuta solo per compatibilità con le applicazioni scritte per Windows 3.1, figurati ), al suo posto bisogna usare CreateProcess.
    Io vorrei inviare un comando ad una console che emula linux chiamata cygwin.
    Ho provato a guardare sul sito msdn ma non è molto chiaro.
    Vorrei inviare il comando "cd .." alla mia console.
    Di certo non lo fai avviando un altro processo; la console in questione è già aperta?
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4

    Re: Re: [C++] Esempio di utilizzo di winexec

    Originariamente inviato da MItaly
    La WinExec serve per creare un nuovo processo. È ultra-deprecata (è mantenuta solo per compatibilità con le applicazioni scritte per Windows 3.1, figurati ), al suo posto bisogna usare CreateProcess.
    Come vedi in questa discussione, avevo già avvertito l'utente dell'antichità di questa funzione:
    http://forum.html.it/forum/showthrea...7&pagenumber=1

    Hai fatto bene a ripeterlo anche te, in quanto come diceva Cicerone "repetita iuvant".


    Ciao

  5. #5

    Re: Re: Re: [C++] Esempio di utilizzo di winexec

    Originariamente inviato da MdE2005
    Come vedi in questa discussione, avevo già avvertito l'utente dell'antichità di questa funzione:
    http://forum.html.it/forum/showthrea...7&pagenumber=1
    Pardon, non avevo cliccato sul link.
    Hai fatto bene a ripeterlo anche te, in quanto come diceva Cicerone "repetita iuvant".
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Intanto vi ringrazio tutti.
    Il problema mi sembra abbastanza complicato. Persino la mia prof non riesce a capire come si potrebbe fare eppure vogliamo arrivarci in fondo ad ogni costo.
    Si, la funzione winexec ho visto subito dopo aver postato che vale solo per windows a 16 bit quindi ho subito smesso di smanettarci sopra!!

    Cosa intendi quando dici: "la console è gia aperta?" ?
    Il mio programma parte, fa quello che deve fare fino a quando arriva alla funzione createprocess.
    La funzione create process mi apre in un'altra finestra la console cygwin.
    La prof vorrebbe riuscire ad inviare, dal nostro programma in c++, dei messaggi del tipo : cd .. , ls , e tanti altri, alla console cygwin in modo che quest ultima possa eseguirli.
    La funzione createpipe vorremmo evitarla perchè abbiamo visto che è molto complicata da utilizzare.

    Quando lavoravamo su linux tutto era molto più facile per far lavorare due processi separati e fargli scambiare dati.
    Su windows è davvero dura. Probabilmente perchè non si conosce quale tipo di funzioni si possa utilizzare
    Ragazzi, vi ringrazio infinitamente. Vediamo se riusciamo a fare questo passo...
    Saluti

  7. #7
    Mi sa che ti tocca usare le pipe, in congiunzione al reindirizzamento di standard input e lo standard output del processo avviato, impostando correttamente i relativi membri della struttura STARTUPINFO al momento della CreateProcess. Dai un'occhiata qui.
    Amaro C++, il gusto pieno dell'undefined behavior.

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.