2009-04-18 6 views
2

Je voulais créer un petit outil dans Delphi qui peut mettre à jour les informations de version Delphi dans un autre fichier exe. Je sais que plusieurs utilitaires existants existent pour cela mais j'ai besoin d'un contrôle programmatique complet et je préférerais ne pas utiliser la ligne de commande, etc.Utilisation de Delphi pour modifier les informations de version d'un autre programme Delphi

Après une recherche sur le web, je n'ai trouvé aucun exemple de code source Delphi de version à modifier informations dans un exe, quelqu'un pourrait-il fournir un code ou une direction?

Répondre

7

Je ne peux pas donner une réponse complète, mais je peux vous aider à démarrer. Il y a an article at DelphiDabbler.com qui remplit comment obtenir les informations de version sur un fichier. GetFileVersionInfo est l'API Windows pour le faire. Pour le définir, je crois que UpdateResource est la fonction Windows API que vous aurez besoin d'utiliser. Il y a another article at CodeProject qui couvre cela, en utilisant C, mais cela devrait vous donner une bonne idée de ce qui doit être fait.

Bonne chance!

Edit: je l'ai trouvé un peu de code sur les newsgroups Delphi qui pourraient vous donner plus d'aide:

// Credit to Michael Winter for this code! 
Sz := GetLen; 
GetMem(Data, Sz); 
try 
    GetData(Data, Sz); 
    HFile := BeginUpdateResource(PChar(FileName), false); 
    if HFile = 0 then 
    RaiseLastWin32Error; 
    DoDiscard := true; 
    try 
    if not UpdateResource(HFile, RT_VERSION, PChar(1), 0, Data, Sz) then 
     RaiseLastWin32Error; 
    DoDiscard := false; 
    finally 
    if not EndUpdateResource(HFile, DoDiscard) then 
     RaiseLastWin32Error; 
    end; 
finally 
    FreeMem(Data); 
end; 

Il est juste un extrait, et nécessitera un travail de votre part, mais c'est la part du lion de la travail!

3

Il ya aussi le XN Resource Editor de Colin Wilson avec le code source qui pourrait aider.

+0

Le lien mentionné est mort. – Wolf

+1

semble être un bon miroir: https://stefansundin.github.io/xn_resource_editor/ – Wolf

Questions connexes