Unter der Annahme, wurde das Programm richtig geschrieben, und tatsächlich funktionieren, wenn sie als Standardbenutzer ausgeführt wird, können Sie es manifestieren als Standardbenutzer ausgeführt werden .
Hinweis : Wenn das Programm unter Windows XP nicht funktioniert hat, schlägt es weiterhin unter Windows Vista oder Windows 7 fehl. Sie können diese Anwendung testen, indem Sie sich bei Windows XP anmelden und prüfen, ob sie funktioniert. (Sie tun als Standardbenutzer auf Windows XP anmelden, oder?)
Wenn das Programm unter Windows XP nicht ordnungsgemäß als Standardbenutzer ausgeführt wird, wird es unter Windows 7 nicht als Standardbenutzer ausgeführt. Wenn Sie das Programm unter Windows XP als Administrator ausführen müssen, müssen Sie das Programm unter Windows 7 als Administrator ausführen.
Wenn Sie überzeugt sind, dass das Programm nicht als Administrator ausgeführt werden muss, können Sie eine Manifest- Anweisung Windows hinzufügen, die es als Standardbenutzer ausführen soll.
Erstellen Sie die Manifestdatei in demselben Ordner wie Ihre Anwendung. Goldwave.exe
Sie erstellen zB :
Goldwave.exe.manifest
:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="IsUserAdmin" type="win32"/> <description>Description of your application</description> <!-- Identify the application security requirements. --> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly>
Hinweis: Dies ist ein sogenanntes externes Manifest, da es sich in einer separaten Datei befindet. Es ist durchaus möglich, dass die Anwendung bereits hat ein Manifest.
Manifeste wurden mit Windows 2000 eingeführt, um Abhängigkeiten von bestimmten DLL-Versionen zu erklären. Dieses Manifest wurde häufig zusammen mit Windows XP verwendet, damit Programme ihre Abhängigkeit von Version 6 von comctl32.dll
- erklären konnten, so dass die Anwendung "thematisch" war.
Wenn die Anwendung bereits über ein eingebettetes Manifest verfügt, ignoriert Windows alle externen Manifestationen. In diesem Fall müssen Sie Resource Hacker verwenden, um das eingebettete RT_MANIFEST
Manifest (Ressourcentyp 24) zu ändern .
Das nächste, was Sie tun können, ist die Registry zu überprüfen, um zu sehen, ob jemand bereits ein Erhöhungs- Shim auf Ihr Programm angewendet hat . Laden Sie Regedit und prüfen Sie:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags \Layers
Dort werden Sie wahrscheinlich eine große Anzahl von Programmen finden, die durch Leerzeichen getrennt sind:
- C: \ Programme (x86) \ ACDSee32 \ ACDSee32.exe
HIGHDPIAWARE
- C: \ Programme (x86) \ Google \ Picasa3 \ Picasa3.exe
ELEVATECREATEPROCESS
- C: \ Programme (x86) \ skiStunt \ skiStunt \ bin \ skiStunt.exe
WINXPSP2
- C: \ Programme (x86) \ Steam \ Steam.exe
HIGHDPIAWARE ELEVATECREATEPROCESS
- C: \ Programme (x86) \ SysInternals \ autoruns.exe
ELEVATECREATEPROCESS RUNASADMIN
- C: \ Programme (x86) \ Windows Live \ Messenger \ msnmsgr.exe
VISTASP2
- D: \ Games \ Call of Duty \ CoDSP.exe
WINXPSP3
- D: \ Shared \ Win32app \ Spy \ SPYXX.EXE
DISABLEDWM
Vergewissern Sie sich, dass Ihr Programm nicht dort ist. Eine ähnliche Gruppe von Einträgen (die für " alle Benutzer ") finden Sie auch in:
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\AppCompatFlags\Layers