Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    11

    [C] Lanciare exe con parametri (ShellExecute)

    Salve di nuovo

    Ho un piccolo problemino, ho bisogno di lanciare un programma esterno con dei parametri senza sapere quanti essi siano.

    Per lanciare il prog uso la funzione "ShellExecute" ed il pointer "lpParameters" solo che non so come fare a mettere + parametri nella funzione e per lo piu' senza sapere quanti siano.....

    faccio un esempio per spiegarmi meglio:

    codice:
    ShellExecute(NULL, "open", "prova.exe", argv[1], pat1, SW_SHOWNORMAL);
    Con questo lancio il file "prova.exe" con il parametro 1, ma se volessi lanciarlo con x parametri tanti quanti presenti in "argc"?

    Spero di essere stato abb chiaro, sapete darmi una mano?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    basta dividere uno con l'altro da uno spazio, ecco un esempio:

    Lancia programma
    codice:
    #include <windows.h>
    
    int main() {
    	char* param = "par1 -o par2 2";
    	ShellExecute(NULL, "open", "Test.exe", param, NULL, SW_SHOWNORMAL);
    
    	return 0;
    }

    Programma da eseguire che mostra i parametri
    codice:
    #include <stdio.h>
    
    int main(int args, char** argc) {
    	int i;
    	for(i = 1; i < args; i++)
    		printf("%s\n", argc[i]);
    
    	system("PAUSE");
    	return 0;
    }
    Questo esempio funziona.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    11
    Scusami ma nn ho ben capito, non credo di poter adottare il tuo esempio di mettere i parametri con lo spazio perche' io non conosco ne' quali possano essere e ne' quanti, anche una istruzione FOR come da secondo esempio nn credo possa essermi utile perche' io devo eseguire una sola istruzione che contenga i vari parametri, e non una per ogni parametro....

    In pratica io devo solo passare ad un programma esterno tutti i parametri precedentemente passati al mio programma al momento dell'esecuzione.

  4. #4
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    concateni quelli passati al tuo dividendoli con uno spazio e passi la stringa risultante all'altro.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    11
    Ok ci sono riuscito, grazie per l'idea....non so se e' il modo migliore ma li ho legati con "strcat".

    Grazie di nuovo

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.