LANCIARE UN APPLICAZIONE E CHIUDERLA CON C++

di il
13 risposte

LANCIARE UN APPLICAZIONE E CHIUDERLA CON C++

Ciao a tutti sono nuovo,
sto facendo un programma in c++ ma mi sono bloccato da un po' in un punto.
Dal mio programma c++ lancio a mia volta un programma in VBA con il comando system("nomefile");
il problema ovviamente è che una volta lanciato il programma, l esecuzione del mio in c++ si interrompe finchè non viene chiuso il VBA.
devo assolutamente risolvere questo problema, so che con system() è sbagliato, quindi vi chiedo per favore di darmi una mano a risolvere questo casino.
Grazie a tutti

13 Risposte

  • Re: LANCIARE UN APPLICAZIONE E CHIUDERLA CON C++

    Perché questo miscuglio tra C e VBA?

    Comunque il problema non è chiaro ...
  • Re: LANCIARE UN APPLICAZIONE E CHIUDERLA CON C++

    Forse ti possono aiutare:


  • Re: LANCIARE UN APPLICAZIONE E CHIUDERLA CON C++

    Perché devo esportare un file da Excel in txt e ho usato una macro di Excel, funziona ma mi riamane aperto Excel e voglio che si chiuda da solo e che poi riprenda automaticamente l esecuzione del programma in c++
  • Re: LANCIARE UN APPLICAZIONE E CHIUDERLA CON C++

    Puoi mostrare questo script VBA?
  • Re: LANCIARE UN APPLICAZIONE E CHIUDERLA CON C++

    Non è niente di che, si apre e si chiude normalmente il Workbook ma rimane l' applicazione di excel aperta, e se non sono io fisicamente a richiuderla l' esecuzione non riprende. come posso fare affinchè si chiuda autonomamente e l' esecuzione di c++ riprenda da sola?
  • Re: LANCIARE UN APPLICAZIONE E CHIUDERLA CON C++

    La domanda l'avevi già fatta ma io ti avevo chiesto il codice VBA ...

    Il problema è che l'applicazione esterna deve capire quando l'elaborazione è terminata, dall'interno del codice VBA potresti chiudere Excel quando termina.
  • Re: LANCIARE UN APPLICAZIONE E CHIUDERLA CON C++

    Private Sub Workbook_Open()


    ChDir "C:\Users\Giacomo\Desktop\informatica\HtmlTab v 1.0\HtmlTab v 1.0"
    Workbooks.Open Filename:= _
    "C:\Users\Giacomo\Desktop\informatica\HtmlTab v 1.0\HtmlTab v 1.0\Book2.xlsx"
    ActiveWorkbook.SaveAs Filename:= _
    "C:\Users\Giacomo\Desktop\informatica\HtmlTab v 1.0\HtmlTab v 1.0\Book2.txt", FileFormat:= _
    xlTextMSDOS, CreateBackup:=False
    ActiveWindow.Close SaveChanges:=False 'pagina dati
    ActiveWorkbook.Close SaveChanges:=False
    Application.Close
    ExcelApp.Close
    Set ExcelApp = Nothing


    End Sub


    QUESTO E' IL CODICE VBA
  • Re: LANCIARE UN APPLICAZIONE E CHIUDERLA CON C++

    Aggiungi una

    Application.Quit
  • Re: LANCIARE UN APPLICAZIONE E CHIUDERLA CON C++

    Il problema non si risolve lo stesso...
    Ora l' unico modo a quanto ho capito è creare un processo che esegua l' applicazione vba, per poi terminarla con il terminateprocess o qualcos'altro.
    quanto chiamo la createprocess non so che parametri mettere, dato che se inserisco il pathname mi da errori.

    esempio : CreateProcess("C:\\WINDOWS\\System32\\notepad.exe", NULL, NULL, NULL, false, CREATE_NO_WINDOW, NULL, NULL, &sInfo, &pInfo)
    è un esempio che ho trovato in internet.
    dove trovo "C:\\WINDOWS\\System32\\notepad.exe" mi da un errore con scritto:
    "Error: l' argomento di tipo "const char *" è incompatibile con il parametro di tipo "LPCWSTR"
    il punto è che dappertutto gli esempi sono cosi, e a me da sempre errore.

    *COME PIATTAFORMA USO VISUAL STUDIO 2010*
  • Re: LANCIARE UN APPLICAZIONE E CHIUDERLA CON C++

    Non so dirti se la tua idea sia la migliore possibile, però per quanto riguarda il problema con l'argomento della funzione CreateProcess direi che potresti provare a fare così:
    
    LPCWSTR pathname = L"C:\\WINDOWS\\System32\\notepad.exe";
    CreateProcess(pathname, NULL, NULL, NULL, false, CREATE_NO_WINDOW, NULL, NULL, &sInfo, &pInfo) 
    
    visto che LPCWSTR sta per Long Pointer to Constant Wide String
  • Re: LANCIARE UN APPLICAZIONE E CHIUDERLA CON C++

    Non da errori ma non funziona
  • Re: LANCIARE UN APPLICAZIONE E CHIUDERLA CON C++

    Ti ripeto che la via corretta è quella della chiusura da VBA ... manda il file Excel ...
  • Re: LANCIARE UN APPLICAZIONE E CHIUDERLA CON C++

    Il file "xlsm" non è può essere allegato...
    il codice di VBA l' ho postato sopra
Devi accedere o registrarti per scrivere nel forum
13 risposte