Accueil > Forum > > > > Envoyer une ligne de commande en arriere plan
Envoyer une ligne de commande en arriere plan
mercredi 9 janvier 2008 à 14:21:22 |
Envoyer une ligne de commande en arriere plan

Uno22
|
Bonjour, Je suis en train de faire un projet informatique pour mon école, et j'envoi des commandes netsh pour appliquer des adresses IP, passerelle ... Le but est de faire une application de switcher de paramètres réseaux. En fait j'arrive à appliquer mais je voudrais savoir comment on fait en C++ pour envoyer une commande en arrière plan, car pour la présentation, avoir une fenetre d'invite de commande DOS pendant 3 secondes environ devant le logiciel , s'est pas top  Si quelqu'un avait une idée pour envoyer ces commandes en second plan sans qu'une invite de commande se lance à l'ecran, se serait super sympa  . Merci d'avance. Uno
|
|
jeudi 10 janvier 2008 à 13:41:49 |
Re : Envoyer une ligne de commande en arriere plan

rt15
|
Salut,
Heu... La fenêtre s'affiche sur des PC distant ou en local ?
Quel code utilises-tu ?
Si c'est en local, essais avec CreateProcess.
Cette fonction prend en entrée une structure STARTUPINFO.
Il faut que tu prépare cette structure :
ZeroMemory
Affectation du SizeOf dans cb
STARTF_USESHOWWINDOW dans dwFlags.
SW_HIDE dans wShowWindow
|
|
jeudi 10 janvier 2008 à 13:49:03 |
Re : Envoyer une ligne de commande en arriere plan

Uno22
|
Merci de ta réponse, En fait j'utilise simplement la commande system pour envoyer et une fenetre s'affiche . Voila une partie du code: void CIpMaskGateWay::AppliqueIPWithGateway(string carte) { std::string str; str="netsh interface ip set address name=\"" + carte + "\" static " + Ip +" "+ Mask+" "+ GateWay + " 0"; size_t size = str.size() + 1; char * buffer = new char[ size ]; strncpy( buffer, str.c_str(),size ); cout<<buffer<<endl; system(buffer); delete [] buffer; } Mais je voudrait que quand la commande system s'éxécute, la fenetre de commande DOS ne s'affiche pas à l'ecran. Tout ce si se passe sur un PC en local Voila si tu peut m'aider  Merci d'avance Uno
|
|
jeudi 10 janvier 2008 à 15:29:49 |
Re : Envoyer une ligne de commande en arriere plan

rt15
|
Heu bah en fait, j'avais l'impression de t'avoir filé les infos nécessaires.
Tu aurais donc pu écrire ça : #include "windows.h"
// // Affiche le message d'erreur associé la dernière erreur Win32 et ferme l'application. // void ShowLastError() { DWORD nLastError; LPSTR lpMessageBuffer;
// Récupération du numéro de l'erreur nLastError = GetLastError();
// Formatage du message FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, nLastError, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMessageBuffer, 0, NULL);
// Affichage du message et fin de l'appli MessageBox(NULL, lpMessageBuffer, "ERROR", MB_OK | MB_ICONERROR); ExitProcess(nLastError); }
// // Execute la commande spécifiée de manière cachée. // Attend la fin de la commande si bWait est à TRUE. // Renvoie FALSE en cas d'erreur. // BOOL ExecuteHidden(char* lpCommandLine, BOOL bWait) { STARTUPINFO startupInfo; // Info de démarrage du processus PROCESS_INFORMATION processInfo; // Récupération d'infos sur le processu créé BOOL res; // Renvoyé par CreateProcess
// Initialisation des infos de démarrage ZeroMemory(&startupInfo, sizeof(startupInfo)); startupInfo.cb = sizeof(startupInfo);
startupInfo.dwFlags = STARTF_USESHOWWINDOW; startupInfo.wShowWindow = SW_HIDE;
res = CreateProcess(NULL, // On va se servir de lpCommandLine lpCommandLine, NULL, NULL, // Pas de sécu FALSE, // Pas d'héritage des handles 0, // Pas de flags de création NULL, // Même environement NULL, // Même répertoire &startupInfo, &processInfo);
// Attente de la fin du processus si besoin if (res && bWait) WaitForSingleObject(processInfo.hProcess, INFINITE);
return res; }
int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { char* lpCommandLine = "cmd /C \"echo allo > olla.txt\""; if (! ExecuteHidden(lpCommandLine, TRUE)) ShowLastError(); return 0; }
Dans ton cas, faudrait probablement l'appeler comme ça (Je crois pas que tu es besoin de faire une copie de str) : ExecuteHidden(str.c_str(), TRUE));
|
|
vendredi 11 janvier 2008 à 00:12:48 |
Re : Envoyer une ligne de commande en arriere plan

Uno22
|
Bonsoir,
Je te remercie de ta réponse J'ai essayé un petit de mettre en place ton application, mais jene suis pas arrivé à le mettre en oeuvre pour le moment
Encore merci
Tchao
Uno
|
|
samedi 12 janvier 2008 à 18:10:24 |
Re : Envoyer une ligne de commande en arriere plan

jeffy131
|
C'est du grand n'importe quoi comme methode...
Il suffit d'utiliser les apis network.
|
|
samedi 12 janvier 2008 à 18:14:33 |
Re : Envoyer une ligne de commande en arriere plan

Uno22
|
Bonsoir, je viens de voir que tu as repondu ,s'est super sympa Je suis toujours à la recherche d'une solution si tu voulais expliciter un petit peu s'il te plait...  Merci beaucoup d'avance Uno
|
|
samedi 12 janvier 2008 à 23:41:07 |
Re : Envoyer une ligne de commande en arriere plan

rt15
|
Ah vi, c'est vrai que ce serait mieux de se passer du DOS. Pour changer des IP, y a par exemple WMI. Voilà quelques unes de ses possibilités sur le réseau. Mais c'est assez chiant de s'en servir en CPP. Sinon, quel est ton problème avec mon code ? C'est une application Win32 complète (Sans MFC ni ATL). Si elle fonctionne, un fichier olla.txt doit apparaître dans le répertoire courant.
|
|
mardi 23 décembre 2008 à 15:10:39 |
Re : Envoyer une ligne de commande en arriere plan
|
Cette discussion est classée dans : ligne, plan, commande, envoyer, arriere
Répondre à ce message
Sujets en rapport avec ce message
arriere plan(background) [ par cognac ]
Avec dev4++. Comment changer la couleur de l'arriere plan (mode dos)?Merci
Parametre sur la ligne de commande [ par payen ]
Salut a tous,j'ai un petit souci en C++ ...alors voila : j'ai ecrit un code qui prend comme parametres sur la ligne de commande 2 entiers. Ensuite, pl
control entre vers de C++ [ par bolix ]
je recherche la ligne de commande qui puisse me faire appeler à partir du c++ des programme en asembleurs.je recherche aussi la ligne de commande pou
Arguments en ligne de commande [ par Fantoooom ]
Salut,Je débute dans le C++. J'ai lu dans un livre un truc à propos des arguments en ligne de commande, mais je ne sais pas du tout ce que c'est, quel
ligne de commande [ par payen ]
Salut a tous,j'au ecrit plusieurs programmes que je lance depuis la ligne de commande. j'aimerais pouvoir les appeller depuis n'importe quel dossier,
application en arriere plan [ par flatmax ]
salutje viens de faire une application (dos) et j'aimerais que cette appli tourne en arriere-plan, sans avoir besoin d'etre active.je m'explique, j'ai
recuper les log dans un fichier [ par ben01n ]
salut tout le monde je prog un client-serveur sous linux qui devrait envoyer le contenu d'un fichier log et je me galère gravepour ce qui est d'envoye
Programme fonctionnant en arriere plan [ par bdkiller ]
Bonjour, je cherche a faire un programme qui va fonctionner en arriere plan, cad je crée un controlleur de winamp, et j'utilise ceci comme code: (je s
Recuperation des Parametres passés en ligne de commande [ par fortran ]
Bonjour.Voila, dans un programme win32, j'essaye de recuperer le chemin, et nom de mon executable, ainsi que les parametres qui lui ont été passés en
envoyer une commande à l'intérieure du programme sous forme de string [ par oudkaramla ]
bonjour tout le monde j'ai un programme qui demande à l'utilisateur d'entrer une commande sur la fenêtre consolesauf que moi je veux le faire à l'inté
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|