|
|||||||
| Scripts/Batch Forum d'entraide sur la programmation de scripts Batch et Powershell sous Windows. |
![]() |
|
|
Outils de la discussion |
|
|
#2 (permalink) |
![]() ![]() Date d'inscription: mars 2003
Localisation: La Défense
Messages: 9 257
|
il doit y avoir moyen MAIS si tu fais un raccourci avec parametre. c'est comme les fichiers .reg, si tu mets un raccourci avec le parametre -s, ca se fait caché derriere sans confirmation
sinon, comment le .bat pourrait deviner comment il doit se lancer sachant que pour savoir, il faut se lancer par contre, je ne connais pas le parametre s'il existe pour le lancer en bkgd |
|
|
|
|
|
#6 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: juillet 2003
Messages: 406
|
pour -s ça n'existe pas !
pour les coordonnées négatives de la position de la fenêtre dans la définition du raccourci (par exemple, -1000,-1000). il n'accepte pas des valeurs < à 1 meme start /MIN monbat.bat ça ne marche pas
__________________
;-) cordialement |
|
|
|
|
|
#7 (permalink) | |
![]() |
Citation:
Quel est ton OS ? Au fait, tu peux aussi essayer avec (3000,3000) ! |
|
|
|
|
|
|
#9 (permalink) | ||
|
Membre éprouvé
![]() Date d'inscription: juillet 2003
Messages: 406
|
Citation:
Citation:
je suis sur windows2000 professionnal !!
__________________
;-) cordialement |
||
|
|
|
|
|
#10 (permalink) |
![]() |
bon allé, aujourd'hui, les progs sont à 0€!
Ce programme lance le fichier go.bat sans afficher aucune fenêtre... Voici la source Delphi Code :
PROGRAM gobat;
USES Forms,ShellApi;{$R *.RES}
BEGIN
ShellExecute(Application.Handle,NIL,'go.bat','','',0);
END.
à+ Dernière modification par Sub0 ; 21/06/2008 à 15h05. |
|
|
|
|
|
#11 (permalink) |
![]() |
Salut!
Vous avez été "nombreux" à me demander par MP le programme compilé (c'est vrai que télécharger Delphi juste pour compiler un prog, c'est pas cool). http://sub0.developpez.com/delphi/gobat.zip J'en profite pour vous dire que je possède un programme qui convertit les fichiers BAT en EXE, ça pourra aussi vous intérresser je pense : http://sub0.developpez.com/bat2exe.zip à+ |
|
|
|
|
|
#13 (permalink) | |
|
Invité de passage
![]() Date d'inscription: décembre 2007
Messages: 2
|
Citation:
Lorsque l'on lance un exécutable fait pour tourner sous Windows, si on le lance avec la commande "system", la fenêtre noire du DOS apparaît, par contre elle n'apparaît pas si on le lance avec spawn(). Mais si on lance la commande BAT avec un spawn, le fenêtre DOS apparaît, et de même s'il s'agit d'un exécutable prévu pour tourner sous DOS. Alors comment cacher cette foutue fenêtre DOS. Première réponse) Si on lance la commande BAT avec: winexec("TOTO.BAT",SW_HIDE); (à supposer que la commande BAT s'appelle "TOTO"), cela marche; le batch TOTO.BAT s'effectue bien de manère cachée sans l'apparition de la fenêtre noire du DOS; cependant, cette commande rend immédiatement la main sans attendre la fin de l'exécution du batch, et on ne sait pas quand le batch se termine. Deuxième réponse) Finalement je vous donne la solution, une petite procédure qui permet de lancer n'importe quel EXE ou BAT, sans l'apparition de la fenêtre noire du DOS, et attendant la fin de l'exécution de la commande: Code :
void ExecuteCommande(char* Commande)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
// spécifier que la fenêtre du process lancé doit être cachée
si.dwFlags=STARTF_USESHOWWINDOW;
si.wShowWindow=SW_HIDE;
// Start the child process.
if( !CreateProcess( NULL, // No module name (use command line)
Commande, // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
0, // No creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi ) // Pointer to PROCESS_INFORMATION structure
)
{
AfxMessageBox( "Echec CreateProcess");
return;
}
// Wait until child process exits.
WaitForSingleObject( pi.hProcess, INFINITE );
// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
}
On passe en paramètre à cette procédure le nom de l'application à lancer (ex: ExecuteCommande("TOTO.BAT"); ) Cela marche garanti, et la syntaxe ext garantie correcte(testée avec mon application où je l'utilise). Autant que ma recherche serve à d'autres. Dernière modification par Alcatîz ; 19/06/2008 à 21h18. Motif: balises code |
|
|
|
|
|
|
#15 (permalink) |
|
Membre habitué
![]() |
salut,
pour info, vous pouvez lire le résultat des commandes : cmd /help start /help toutes les info sont dedans. On peut personnaliser les fenêtres selon le nom quelle a. C'est enregistré dans le registre.
__________________
N'hésitez pas à dialoguer en direct avec moi |
|
|
|
|
![]() |
![]() |
||
lancer un .bat et cacher la fenetre dos
|
||
| Outils de la discussion | |
|
|