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

 Delphi Discussion :

Savoir si la ressource Manifest est présente


Sujet :

Delphi

  1. #1
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 681
    Points
    681
    Par défaut Savoir si la ressource Manifest est présente
    Bonjour,

    je créer un composant et suivant si le fichier manifest est présent, je change l'allure.
    J'ai essayé ce code mais ça ne fonctionne pas :
    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
    procedure TForm1.Button2Click(Sender: TObject);
    var
      dHandle: THandle;
    // constante trouvé sur Internet
    const RT_MANIFEST = 'MANIFEST' ;
    begin
        dHandle := FindResource(hInstance, nil, RT_MANIFEST);
     
        if dHandle <> 0
        then begin
            dhandle := LoadResource(hInstance, dHandle);
     
            if dHandle <> 0
    	    then begin
    	        MessageBox(Handle, 'yes', 'yes', MB_OK) ;
    	    end ;
    	end ;
    end ;
    J'ai chercher sur internet et je n'ai rien trouvé à problème.
    En plus, il faut que le manifest sois la première ressource :

    Quelqu'un aurait-il une idée ?

    Je travaille sous delphi 6

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    Effectivement, c'est une idée !
    Il est vrai que si tu fais un composant, comment savoir si dans le projet où l'on utilise ton compo, on a ajouté la ressource ... deplus en Delphi6, il n'y avait pas le composant TXPManifest, tu as récupéré la ressource "sample.manifest" de Delphi7 ???

    Sinon, tu dois avoir des fonctions API pour lire l'API, comme un GetFileVersion par Exemple, un GetFileAssembly ou un truc du genre ...

    Perso, j'ai remarqué, que les CheckBox sous XP, le texte reste en noir, et il y aussi des alignements différents ... donc je réagis en conséquence

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure StyleChanged(var Msg: TMessage); message WM_THEMECHANGED;
     
    procedure TTrucForm.StyleChanged(var Msg: TMessage);
    begin
      inherited;
      if UxTheme.IsThemeActive() then
        ManageXPTheme()
      else
        ManageClassicTheme();
    end;

  3. #3
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 681
    Points
    681
    Par défaut
    Je gère le changement de thème et le fait que le thème est actif au pas.
    Mais si on écrit un appli et qu'on ne met pas la ressource XP, on l'ancien affichage.
    Donc, je veux dans ce cas que mon composant propose un affichage avec bordure ancien style.

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    Faut voir si tu peux faire un LoadLibrary sur System.DLL et un GetProcAddress sur GetAssembly, c'est du .Net, donc je ne sais pas si l'on peut les accéder à l'ancienne ...

    Sinon, voir dans NTDLL.DLL et GetAssembly, idem ... genre, j'ignore les paramètres

  5. #5
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 681
    Points
    681
    Par défaut
    N'y a-t-il pas un moyen de lister les ressources de type MANIFEST (si c'est bien ce type) ou de type 24 ?

    A moins que le nom de la ressource est chr(24)

    Sinon il faudrait voir avec un programme qui liste les ressources mais je n'en connais pas.

Discussions similaires

  1. JavaCC : Comment savoir si un token est présent ?
    Par jojodu31 dans le forum EDI et Outils pour Java
    Réponses: 1
    Dernier message: 01/04/2008, 11h20
  2. Savoir si le caret (curseur texte) est présent ou pas
    Par nabab dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/02/2008, 12h01
  3. Réponses: 2
    Dernier message: 13/08/2006, 23h56
  4. [VBA] Comment savoir si un dossier est présent
    Par tiotel dans le forum Access
    Réponses: 4
    Dernier message: 04/08/2006, 11h46
  5. [Liste] Savoir si un élément est présent dans une liste
    Par Wookai dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 02/05/2005, 20h44

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