Condividi:        

batch e c++

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Anthony47, Triumph Of Steel, archimede

batch e c++

Postdi Milton » 02/07/07 14:08

Ragazzi scusate ma ho un problema e non rirsco proprio ad uscirne...

Ho scritto un Batch anni fa e vorrei riadattarlo in un programma in c++ ma, se semplicemente lo lancio da un programma exe, esce la solita schermata nera del batch in esecuzione, e questo succede anke se lo faccio partire ovvimente con un processo parallelo...

Vi chiedo se c'è modo da far eseguire un batch in modo nascosto senza la anti-estetica finestrella nera.

Io scrivo in c++ preferibilmente, ma andrebbe bene anke una soluzione in java o c#...

Vi Ringrazio in Anticipo !
Milton
Newbie
 
Post: 2
Iscritto il: 02/07/07 14:01

Sponsor
 

Postdi BianConiglio » 02/07/07 17:03

dichiara il main come winmain che, non trovando nessuna GUI, eseguira' i comandi in "hidden"

ciao
BianConiglio
Utente Senior
 
Post: 4710
Iscritto il: 26/12/01 01:00
Località: Varese / Lugano

Postdi BianConiglio » 02/07/07 17:05

BianConiglio
Utente Senior
 
Post: 4710
Iscritto il: 26/12/01 01:00
Località: Varese / Lugano

Postdi Milton » 02/07/07 17:21

Con dev mi dice:

[Linker error] undefined reference to `WinMain@16'



Cmq mi servirebbe una funzione tipo:

system("Comando x Cmd");

che faccia girare il comando ma in background (senza finestra nera)
Milton
Newbie
 
Post: 2
Iscritto il: 02/07/07 14:01

Postdi BianConiglio » 02/07/07 21:12

cerca winmain nella msdn e vedrai dove sbagli :)
BianConiglio
Utente Senior
 
Post: 4710
Iscritto il: 26/12/01 01:00
Località: Varese / Lugano

Postdi zello » 05/07/07 11:29

Con la magica ShellExecuteEx (o CreateProcess, anche)
Codice: Seleziona tutto
#include <windows.h>

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
{
   SHELLEXECUTEINFO sei;
   ZeroMemory(&sei,sizeof(sei));
   sei.cbSize=sizeof(sei);
   sei.fMask=SEE_MASK_NO_UI|SEE_MASK_NOCLOSEPROCESS;
   sei.lpFile="\\comando\\da\\eseguire.exe";
   sei.nShow=SW_HIDE;
   if(ShellExecuteEx(&sei))
   {
       WaitForSingleObject (sei.hProcess,INFINITE);
       CloseHandle(sei.hProcess);
   }
   return 0;
}

(può essere pieno di errori, non l'ho neppure compilato).
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
Avatar utente
zello
Moderatore
 
Post: 2351
Iscritto il: 06/05/02 13:44


Torna a Programmazione


Topic correlati a "batch e c++":


Chi c’è in linea

Visitano il forum: Nessuno e 10 ospiti