Commande System Invisible

Résolu
nerone21 Messages postés 108 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 5 mai 2011 - 15 déc. 2006 à 11:27
nerone21 Messages postés 108 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 5 mai 2011 - 16 déc. 2006 à 17:49
Bonjour a vous tous, les codeurs fous...

Alors j'aimerais pouvoir executer une commande systeme mais de maniere invisible, sans que la fenetre DOS n'apparaisse du tout.

Je cherche a demarrer le service messenger (affichage des message) a chaque demarrage de mon appli, et a la fin de mon appli, envoyer un net send a une adresse donnée...

alors je sais que l'on peut utiliser la commande system(); mais elle fait apparaitre la fenetre DOS, alors j'aimerais savoir si il existe soit un parametre soit une commande permettant de l'executer "invisiblement".

merci d'avance si c'est possible!

11 réponses

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
15 déc. 2006 à 13:27
http://www.clarion.free.fr/public_html/trucs/api/shellexe.html

La fonction ShellExecute de l'API Windows vous permet d'ouvrir ou d'imprimer un fichier dont l'extension est connue de l'explorateur de Windows, sans avoir à spécifier l'application qui l'a créé...


Voici le prototype Clarion de cette fonction:

ShellExecute(HWND HandleFenetre, *LPCSTR plOperation,*LPCSTR plFichier, *LPCSTR plParametres, *LPCSTR plDossier, SIGNED plCommandeAffichage), HINSTANCE RetVal

HandleFenetre
est le handle de la fenêtre parente (celle ou l'on va exécuter la fonction ShellExecute()), il s'agit de la valeur retournée par ma_fenetre{prop:handle}

plOperation est un pointeur sur une chaîne de caractères terminée par un zéro binaire (CSTRING), qui contient l'opération à effectuer:
'open' ouvre le fichier
'print' imprime le fichier

plFichier est un pointeur sur une chaîne de caractères terminée par un zéro binaire (CSTRING), qui contient le nom du fichier que l'on veut ouvrir ou imprimer grâce à ShellExecute().

plParametres est un pointeur sur une chaîne de caractères terminée par un zéro binaire (CSTRING), qui contient les paramètres que l'on veut passer à l'application qui ouvre ou imprime le fichier.

plDossier est un pointeur sur une chaîne de caractères terminée par un zéro binaire (CSTRING), qui contient le nom du dossier par défaut.

plCommandeAffichage est un nombre qui correspond à la méthode d'affichage du fichier choisi.

++
3
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
15 déc. 2006 à 11:58
ShellExecute
++
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
15 déc. 2006 à 12:21
net send ne marche plus depuis XP :)

ULARGE_INTEGERJokyQi=QI("Joky"
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
15 déc. 2006 à 12:45
C'est peut etre pas un mal :D
Mais risque de poser des problème a notre amis

++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nerone21 Messages postés 108 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 5 mai 2011
15 déc. 2006 à 12:48
Merci a vous deux laurent et joky mais laurent serait il possible de me donner la ligne de shell execute complet sil te plait.
0
nerone21 Messages postés 108 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 5 mai 2011
15 déc. 2006 à 13:33
Merci bein a toi laurent mais je vais t'embeter une derniere fois :-s

tu peut m'ecrire le shellexecute avec le netsend a la bonne place, pour les autres param je me debrouille...

merci encore une fois!
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
15 déc. 2006 à 13:50
c'est le parametre loperation ou tu dois mettre le netsend
shellexecute(hndle,"netsend", NULLl, NULL, ...
0
nerone21 Messages postés 108 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 5 mai 2011
15 déc. 2006 à 13:55
alors je suis dsl mais je voit encore ma fenetre dos ki apparait, même si c'est trés rapide elle apparait:

j'ai mis ca:
 ShellExecute(hwndDlg,system(Nbrfile),NULL,NULL,NULL,NULL);

encore dsl.
0
clempar55 Messages postés 59 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 4 avril 2007
15 déc. 2006 à 16:39
essaye plutôt

ShellExecute(hwndDlg,Nbrfile,NULL,NULL,NULL,NULL);

siNbrfile contient la commande a exécuter
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 déc. 2006 à 00:55
Il n'y a même plus du tout de service messages sur Vista.
On ne fait pas un prog qu'on sait obsolète avant d'avoir commencé.

ciao...
BruNews, MVP VC++
0
nerone21 Messages postés 108 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 5 mai 2011
16 déc. 2006 à 17:49
alors merci bien a tous...

et pour brunews, je sais kil n'existe plus sous vista mai mon programme va servir ds une entreprise ou les PC fonctionne majoritairement en XP, 2000 et 98.

donc merci bien kan même de la remarque.

Salutations. et bonnes fêtes!!!
0
Rejoignez-nous