IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual Studio Discussion :

[Visual Studio 2015] Ajout fichier batch dans .exe


Sujet :

Visual Studio

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut [Visual Studio 2015] Ajout fichier batch dans .exe
    Bonjour à tous

    J'ai besoin de votre aide car là je sèche.

    Je dois coder un programme en C# sous Visual Studio 2015 permettant d'exécuter et modifier un fichier batch.
    Jusque là tout va bien, je sais faire
    Mon problème est que ce petit programme est destiné à être déplacé souvent, et par conséquent je dois rendre un seul fichier contenant le programme et le fichier batch (qu'on pourra exécuter ou modifier depuis le programme).
    J'ai déjà essayé de mettre le fichier batch en ressource dans mon projet sous Visual Studio, mais les ressources sont en lectures seules, et je ne peux donc pas le modifier.

    Voila, en espérant que vous pourrez m'aider.
    Merci d'avance.

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    l'idée c'est que l'utilisateur lancera directement le fichier batch in fine ?
    Si oui alors tu peux le générer à la volée (en checkant s'il est pas dans le répertoire d'exécution, sinon tu modifies l'existant).
    Si non alors ton fichier batch n'a aucune utilité, autant tout faire en C# et mettre le paramétrage dans un .config.
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Salut

    J'avais pensé à générer le fichier batch, mais le problème est qu'il faut que je garde en mémoire les éventuelles modifications qui ont été faites dans le fichier, car il sera utilisé plusieurs fois. Et du coup ça ne résout pas mon problème étant donné que je ne pourrais pas générer mon fichier batch avec les bonnes informations si elles n'ont pas été sauvegardées quelque part.

    Merci pour ton aide.

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Re,
    Citation Envoyé par Mafiexo Voir le message
    Salut

    J'avais pensé à générer le fichier batch, mais le problème est qu'il faut que je garde en mémoire les éventuelles modifications qui ont été faites dans le fichier, car il sera utilisé plusieurs fois. Et du coup ça ne résout pas mon problème étant donné que je ne pourrais pas générer mon fichier batch avec les bonnes informations si elles n'ont pas été sauvegardées quelque part.

    Merci pour ton aide.
    Citation Envoyé par jopopmk Voir le message
    Salut,

    l'idée c'est que l'utilisateur lancera directement le fichier batch in fine ?
    Si oui alors tu peux le générer à la volée (en checkant s'il est pas dans le répertoire d'exécution, sinon tu modifies l'existant).
    Si non alors ton fichier batch n'a aucune utilité, autant tout faire en C# et mettre le paramétrage dans un .config.
    Je comprends pas bien le souci.

    PS : "répertoire d'exécution" serait plutôt "répertoire de l'exécutable". Mais tu peux aussi le mettre n'importe où et renseigner une variable d'environnement, même si c'est un peu old school c'est très pratique.
    Plus je connais de langages, plus j'aime le C.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    En gros, le fichier batch a pour objectif de monter des lecteurs réseaux automatiquement. Seulement, en fonction de l'utilisateur, ça ne sera pas les mêmes lecteurs qui seront montés. Et c'est l'administrateur qui décide, via une fenêtre protéger par un mot de passe, quels lecteurs réseaux seront montés pour cet utilisateur.

    Et donc au final, mon chef veut avoir une version du logiciel sur son PC, qu'il pourra copier et donner à différents utilisateurs, après avoir modifié les lecteurs réseaux accessibles comme il le souhaite. Il faut donc que je puisse garder en mémoire quels lecteurs réseaux à monter d'une façon ou d'une autre.

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Bon j'ai peut-être trouvé quelques pistes pour mon problème, mais j'ai toujours des soucis.

    Tout d'abord j'ai trouvé ce logiciel : http://alloy.fr.malavida.com/
    Seulement quand je l'utilise, j'arrive bien à générer un .exe contenant à priori mon .bat, mais quand je l’exécute j'obtiens l'erreur Windows (0xc000007b)

    J'ai aussi regardé du côté des dataset dans Visual Studio, pour stocker les informations nécessaires au .bat, puis le créer à la volée, mais je ne suis pas sûr de bien comprendre comment ça marche. On peut remplir un dataset à la main ? Où il faut obligatoirement importer des données d'une base de données existante ?

    Si quelqu'un s'y connait avec l'une des 2 solutions, je prends

  7. #7
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Re,

    vacance aidant j'ai un peu oublié de suivre cette discussion.
    Faut dire aussi que j'ai pas bien compris le besoin dans ton message du 22 décembre.
    Reprenons point par point :

    En gros, le fichier batch a pour objectif de monter des lecteurs réseaux automatiquement.
    Tu veux donc générer des batch avec plein de net use dedans, ok.

    Seulement, en fonction de l'utilisateur, ça ne sera pas les mêmes lecteurs qui seront montés.
    La liste des lecteurs montés dans le btach varie selon l'utilisateur destinataire du batch, ça j'ai.

    Et c'est l'administrateur qui décide, via une fenêtre protéger par un mot de passe, quels lecteurs réseaux seront montés pour cet utilisateur.
    Là tu parles de ton outil ou d'autre chose (genre droit, admin, réseau ...) ?

    Et donc au final, mon chef veut avoir une version du logiciel sur son PC, qu'il pourra copier et donner à différents utilisateurs, après avoir modifié les lecteurs réseaux accessibles comme il le souhaite. Il faut donc que je puisse garder en mémoire quels lecteurs réseaux à monter d'une façon ou d'une autre.
    C'est là où je suis perdu.
    Il veut distribuer des appli ou des batch ?
    Ce que tu veux c'est avoir en réserve l'ensemble des lecteurs réseaux possibles, pour que l'utilisateur de ton appli (ton chef) puisse choisir dedans ?
    Ton chef c'est un admin ?
    Plus je connais de langages, plus j'aime le C.

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Pas de souci pour le délai de réponse, j'étais en vacances aussi ^^

    Là tu parles de ton outil ou d'autre chose (genre droit, admin, réseau ...) ?
    Je parle du programme que j'ai codé. C'est via son interface que le fichier bat est modifié pour savoir quel "net use" utilisé.

    Il veut distribuer des appli ou des batch ?
    Une appli, le programme que j'ai codé.

    Ce que tu veux c'est avoir en réserve l'ensemble des lecteurs réseaux possibles, pour que l'utilisateur de ton appli (ton chef) puisse choisir dedans ?
    Exactement. En fait quand il ouvre sa fenêtre admin, il a la liste des lecteurs disponibles est il coche ceux qui doivent être montés. Et c'est ça que je dois garder en mémoire.

    Ton chef c'est un admin ?
    Oui, c'est le responsable informatique de l'entreprise.

    Encore merci de ton aide

  9. #9
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Alors ton appli, que ton chef/admin va utiliser, va génèrer les fameux batchs qui montent les lecteurs réseaux.
    Mais du coup c'est les batch qu'il faudrait distribuer aux utilisateurs finaux, pas l'appli en elle-même ?
    Ou alors tu veux wrapper tes batch dans une jolie appli Win32 (pas vraiment utile, autant monter les lecteurs sans le .bat) ?
    Plus je connais de langages, plus j'aime le C.

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Distribuer les bat n'est pas une option valable pour mon chef, il ne veut pas que les bat soient accessibles pour les utilisateurs.

    Et pour l'appli , je veux bien monter sans le .bat (je ne sais pas comment faire, mais en cherchant je devrai trouver), mais ça ne règle mon problème : comment garder en mémoire quels lecteurs réseaux doivent être montés ?

  11. #11
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Distribuer les bat n'est pas une option valable pour mon chef, il ne veut pas que les bat soient accessibles pour les utilisateurs.
    Voilà le fond du problème ... sachant qu'un fichier incorporé ne peut être modifier sans passer par l'étape recompilation. Du coup, à part monter un process de recompil' (qui soulève plusieurs soucis), il te reste que le chiffrement (plus ou moins complexe selon que ton boss pense que les utilisateurs sont des benêts ou des agents de la NSA). Tu peux alors chiffrer le .bat résultant, ou alors une liste de booléen indiquant les lecteurs à monter (dont la liste complète pourra alors être incorporée car non modifiée).

    Petite question : à un moment tu indiques que ton boss devra se connecter pour accéder à la fonctionnalité "modifier accès", mais comment vas-tu valider ses credentials ?

    edit : pour faire les net use en C# tu peux faire la commande via Process.Start ou importer WNetAddConnection de mpr.dll.
    Plus je connais de langages, plus j'aime le C.

  12. #12
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour, bonsoir,

    POUR RECAPITULER :

    - Ton programme devra connecter/déconnecter des lecteurs réseau au moyen de fichiers bat
    - Ton boss devra utiliser des ids de connexion pour ton programme
    - Ton programme devra garder en mémoire les configurations de ton boss
    - Tu souhaites garder des logs des modifications apportées dans ton programme

    DONC :

    ---> Qui exécutera le programme chez les clients ? Je dis ça car il faut bien penser qu'il faudra exécuter ton programme avec une élévation de privilèges si ton boss distribue l'appli à chaque utilisateur car je suppose qu'ils n'ont pas de droits admin.......
    ---> Attention au système de connexion que tu comptes mettre en place (pas de stockage de mot de passe en dur dans le logiciel car c'est très facilement récupérable !!!)
    ---> Il te faudra externaliser un fichier de configuration pour mémoriser les choix des lecteurs à monter/démonter.
    ---> Les fameuses traces des modifications apportées peuvent être stockées dans un fichier log sur un espace partagé du réseau d'entreprise......

    CECI DIT :

    Il subsiste beaucoup de points obscures comme l'a évoqué jopopmk ...et notamment au niveau des droits il faut creuser avant d'aller plus loin.
    * Pense à ton système de connexion avant toute chose.
    * Voit pour mettre en place un fichier de config mais à en choisir un type pour commencer (xml, ini, ...etc..)
    * Oublie les fichiers .bat car si tu comptes distribuer ton appli la classe Process est bien plus malléable.

    A+

Discussions similaires

  1. Mon Visual Studio 2015 ne trouve pas un fichier .ipdb
    Par DarkKnight dans le forum Visual Studio
    Réponses: 0
    Dernier message: 02/12/2015, 13h10
  2. [Débutant] Web Service sur Application en VB dans Visual Studio 2015
    Par Carotsh dans le forum Framework .NET
    Réponses: 0
    Dernier message: 05/11/2015, 14h24
  3. Réponses: 2
    Dernier message: 27/08/2015, 15h16
  4. [Visual Studio 2008] Ajouter un projet dans un dossier
    Par Sancha dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 27/01/2010, 13h24
  5. [visual studio 2005] ajout d'un fichier resource
    Par oolon dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/03/2008, 13h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo