AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Problem mit UpdateResource und XP-Manifest
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit UpdateResource und XP-Manifest

Offene Frage von "Daniel"
Ein Thema von MrKnogge · begonnen am 24. Mai 2004 · letzter Beitrag vom 22. Jan 2007
 
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#1

Problem mit UpdateResource und XP-Manifest

  Alt 24. Mai 2004, 19:58
na guten Abend !

Ich möchte ein kleines tool schreiben, mit dem ich das XP-Manifest nachträglich in compilierte Exe-Files integrieren kann. Also nicht einexternes Manifest namens "Programname.exe.manifest".

Eigentlich klappt das auch schon alles:

Delphi-Quellcode:
function MAKELANGID(const usPrimaryLanguage : WORD;const usSubLanguage : WORD) : WORD;
begin
  Result := (usSubLanguage shl 10) or usPrimaryLanguage;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  stream: TFilestream;
  hInst: THandle;
  ptr: Pointer;
begin
  stream := TFileStream.Create('C:\test.manifest', fmOpenRead);
  getmem (ptr,Stream.size+1);
  try
    stream.Seek(soFromBeginning, 0);
    stream.read(ptr^, Stream.size);
    hInst := BeginUpdateResource('C:\test.exe', false);
    if hInst > 0 then begin
      UpdateResource(hInst, MakeIntResource(24), '1',
      MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL), ptr, Stream.size);
      EndUpdateResource(hInst, false);
    end;
  finally
    freemem(ptr, Stream.size+1);
    stream.Free;
  end;
end;
Das XP-Manifest:
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
     type="win32"
    name="DelphiApplication"
    version="1.0.0.0"
     processorArchitecture="*"/>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
</assembly>
Zum testen hab ich einfach kurz ein Delphi-Programm mit verschiedenen Controls erstellt, + das gleiche mit eingebundenem XP-Manifest von Delphi. Anschliesend das ohne XP-Manifest mit meinem Programm modifieziert und im Resource Hacker verglichen, identisch ! Allerdings werden bei dem von mir modifizierten Programm die Controls nicht im XP-Style angezeigt.

Was mach ich falsch ?

gruss
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz