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

Java Discussion :

Ajout de fichier manifest à une application Java / UAC prompt


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Par défaut Ajout de fichier manifest à une application Java / UAC prompt
    Bonjour à tous!

    Je m'intéresse à la programmation sous windows seven et j'ai rencontré un problème. J'ai écris un programme qui doit modifier certains fichiers de "program files" et le système de sécurité (l'UAC) sous seven refuse l'accès de tels dossiers à mon programme.

    Je me suis donc renseigné sur Internet pour savoir comment rendre mon programme compatible avec l'UAC. J'ai appris qu'il fallait ajouter un "fichier manifest" au programme qui informerait windows seven que ce programme a besoin de droits d'administrateurs. J'ai d'ailleurs trouver un exemple de manifest :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <assemblyIdentity version="1.0.0.0" processorArchitecture="X86"
           name="yourapp.exe" type="win32">
      </assemblyIdentity>
      <description>Some Application Description</description>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32"
             name="Microsoft.Windows.Common-Controls"
             version="6.0.0.0" processorArchitecture="*"
             publicKeyToken="6595b64144ccf1df" language="*" />
        </dependentAssembly>
      </dependency>
      <ms_asmv3:trustInfo xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3">
        <ms_asmv3:security>
          <ms_asmv3:requestedPrivileges>
            <ms_asmv3:requestedExecutionLevel level="requireAdministrator"
                uiAccess="false">
            </ms_asmv3:requestedExecutionLevel>
          </ms_asmv3:requestedPrivileges>
        </ms_asmv3:security>
      </ms_asmv3:trustInfo>
    </assembly>
    Trouvé sur ce site.

    Ah oui mais problème, je ne sais pas du tout comment faire pour ajouter un manifest à une application java... J'ai essayé de suivre la démarche présentée sur le site d'oracle mais à chaque fois j'obtiens l'erreur "invalid header file" ...

    Donc voilà pour résumer, quelqu'un saurait-il intégrer ce fichier manifest à une application java?

    Merci beaucoup pour votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Le fichier XML semble être un MANIFEST pour .net.
    En tout cas un MANIFEST Java ressemble à un fichier de propriété mais avec des "sections".

    Le détail pour faire fonctionner avec Java est expliqué dans le dernier paragraphe ... Il est plutôt conseiller de lire ces sources entièrement avant de poser une question
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Par défaut
    Oui merci du conseil, cependant ce que l'auteur explique dans le dernier paragraphe c'est que, pour faire une opération qui nécessite le niveau d'administrateur dans une application java (sans afficher un prompt dès qu'on lance l'application), il faut coder cette opération dans une application à part, et puis lancer cette application. Ici l'auteur lance son programme "uac-example.exe", qui est codé en C++ et auquel je n'ai pas compris le moindre mot, à partir d'un programme en java.

    Dans le programme en C++, l'auteur arrive à déclencher un prompt UAC sans la méthode du fichier manifest, mais je n'ai pas compris grand chose à ce qu'il a codé >.<

    Merci de votre réponse, mais pourriez vous m'indiquer où je peux trouver un endroit ou apprendre à créer un fichier manifest pour java qui ferait la même chose que celui ci dessus?

    Merci pour votre aide.

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Les deux types de MANIFEST n'ont rien en commun en dehors de leur nom ... Le MANIFEST Java est à destination de la JVM et non de Windows.
    Tu peux essayer de faire du JNI.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Par défaut
    D'accord c'est ce qui me semblait. La meilleure solution c'est peut être alors de compiler le programme java sous forme d'un executable et de lui rajouter un manifeste et de le lancer comme ça?

    J'ai pas très bien compris ce que c'était le JNI ou en tous les cas comment ça aiderait

  6. #6
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Un programme Java se compile en ByteCode et jamais en langage machine sauf lors de son exécution.

    Je ne sais pas si JNI peut ou non résoudre ton problème. Mais c'est une manière d'appeler du langage machine qui pourrait invoquer des bibliothèques Windows comme le fait l'auteur de l'article.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. Comment ouvrir un fichier avec une application java ?
    Par chihaoui_med dans le forum Général Java
    Réponses: 3
    Dernier message: 05/11/2009, 13h58
  2. Réponses: 1
    Dernier message: 09/09/2008, 00h58
  3. drag & drop de fichiers dans une application java
    Par devmat dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 13/12/2007, 00h41
  4. lire un fichier xml à partir d'une application java
    Par diamonds dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 23/01/2007, 18h23
  5. Integration d'un fichier dll dans une application Java
    Par menzlitsh dans le forum Langage
    Réponses: 3
    Dernier message: 21/09/2006, 15h54

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