Einzelnen Beitrag anzeigen

berens

Registriert seit: 3. Sep 2004
434 Beiträge
 
Delphi 10.4 Sydney
 
#33

Re: .exe Dateien kleiner / UPX-Windows-7 Problem / ntdll.dll

  Alt 18. Feb 2010, 14:54
Ich hatte tatsächlich EurekaLog installiert. Dieses habe ich nun komplett deinstalliert und aus allen Projekten die Verweise darauf entfernt. Danach neu kompiliert: Fehler immernoch da.

Ich habe nun mit Himatsu's Manifest-Create ein Manifest erstellt, es als Resource im selben Ordner wie das Projekt kompiliert und dann in die Projekt-Quelltext Unit eingefügt {$R w7.res}. Leider keine Besserung. Weitere Vorschläge?

Das Manifest. Zu Testzwecken mit Administrator Rechten.
Delphi-Quellcode:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
    version="0.0.0.0"
    processorArchitecture="X86"
    name="welcome-soft"
    type="Win32"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="requireAdministrator"
          uiAccess="true"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
    </application>
  </compatibility>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
</assembly>
Das Manifest schein nicht korrekt zu funktionieren.

Wenn ich die identische .exe (mit Fehlermeldung) nach dieser Anleitung: http://www.virtual-cbfunk.de/Win7.htm starte (im Klatsch&Tratsch Forum verpöhnt; jetzt bitte keine Diskussionen um den Programmierstiel etc), funktioniert das Programm tadellos ohne eine einzige Fehlermeldung.

Was mache ich falsch?

Bzw.: Kann ich über ShowMessage oder so ausgeben, mit welchen Rechten das Programm jetzt tatsächlich gestartet wurde? Im Taskmanager steht die .exe immer mit dem aktuellen Benutzername drinnen.

Edit: Den Post von Hoika eben erst gesehen.
Hoika: Das "aktuelle" Problem dreht sich ja drum, dass der Fehler sogar bei Compilieren&Starten durch Delphi auftritt. Wenn ich das Programm über rechte Maustaste "als Admin starten" ausführe, kommt die Fehlermeldung nicht. Also ist das denke ich kein Problem mit den Pfaden. (Regulär bin ich im Moment auch Admin, btw.)

Kann es sein, dass die beiden .dll's auch die .res Datei mit dem Manifest brauchen?

Edit: Es scheint so als würde es nun funktionieren, nun, da die .dll Dateien auch das Manifest eingebunden haben. Da das Problem generell ja eher zufällig autritt, kann ich es aber noch nicht abschließend sagen.

Wenn das Problem gelöst ist, ist nun die Frage: Funktioniert es, weil das Manifest auch in den dlls eingebunden ist (generell) oder weil das Manifest den dlls (im Moment) Admin rechte gibt.

Auf Deutsch: War es nun ein Kompatibilitäts- oder ein Zugriffsrechteproblem?

Ich muss es demnächst nochmal mit einem Manifest mit normalen Benuterrechten testen. Bin mal gespannt.
  Mit Zitat antworten Zitat