Commande System Invisible [Résolu]

Signaler
Messages postés
108
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
5 mai 2011
-
Messages postés
108
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
5 mai 2011
-
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

Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
22
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.

++
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
22
ShellExecute
++
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
net send ne marche plus depuis XP :)

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

++
Messages postés
108
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
5 mai 2011

Merci a vous deux laurent et joky mais laurent serait il possible de me donner la ligne de shell execute complet sil te plait.
Messages postés
108
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
5 mai 2011

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!
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
22
c'est le parametre loperation ou tu dois mettre le netsend
shellexecute(hndle,"netsend", NULLl, NULL, ...
Messages postés
108
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
5 mai 2011

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.
Messages postés
59
Date d'inscription
samedi 1 janvier 2005
Statut
Membre
Dernière intervention
4 avril 2007

essaye plutôt

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

siNbrfile contient la commande a exécuter
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
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++
Messages postés
108
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
5 mai 2011

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!!!