Angenommen, das Programm wurde ordnungsgemäß geschrieben und funktioniert tatsächlich , wenn es als Standardbenutzer ausgeführt wird, können Sie es als Standardbenutzer ausführen.
Hinweis : Wenn das Programm unter Windows XP nicht funktioniert hat, schlägt es unter Windows Vista oder Windows 7 weiterhin fehl. Sie können diese Anwendung testen, indem Sie sich bei Windows XP anmelden und prüfen, ob sie funktioniert. (Sie tun Login auf Windows XP als Standardbenutzer, nicht wahr?)
Wenn das Programm unter Windows XP als Standardbenutzer nicht ordnungsgemäß ausgeführt wird, kann es unter Windows 7 als Standardbenutzer nicht ordnungsgemäß ausgeführt werden. Wenn Sie das Programm als Administrator unter Windows XP ausführen müssen, müssen Sie das Programm als Administrator unter Windows 7 ausführen.
Wenn Sie zufrieden sind, dass das Programm nicht als Administrator ausgeführt werden muss, können Sie eine Manifest- Anweisung Windows hinzufügen , die als Standardbenutzer ausgeführt werden soll.
Erstellen Sie die Manifestdatei im selben Ordner wie Ihre Anwendung. zB Goldwave.exe
erstellen Sie:
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 Versionen von DLLs zu deklarieren. Eine weitverbreitete Anwendung dieses Manifest kam mit Windows XP zusammen, um Programmen ihre dependancy auf zu erklären , Version 6 von comctl32.dll
- so dass der Antrag wurde „ unter dem Motto“.
Wenn die Anwendung bereits über ein eingebettetes Manifest verfügt, ignoriert Windows jedes externe Manifest. 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 Registrierung zu überprüfen, um festzustellen, ob jemand bereits einen Elevate Shim auf Ihr Programm angewendet hat . Laden Sie Regedit und überprüfen Sie:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
\Layers
Dort finden Sie wahrscheinlich eine große Anzahl von Programmen mit ihren durch Leerzeichen getrennten Unterlegscheiben:
- 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: \ Spiele \ Call of Duty \ CoDSP.exe
WINXPSP3
- D: \ Shared \ Win32app \ Spy \ SPYXX.EXE
DISABLEDWM
Überprüfen Sie, ob Ihr Programm nicht vorhanden ist. Sie können auch einen ähnlichen Satz von Einträgen (die für " alle Benutzer ") finden in:
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\AppCompatFlags\Layers