Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Vista erzählen, dass das programm KEINE Adminrechte braucht (https://www.delphipraxis.net/123749-vista-erzaehlen-dass-das-programm-keine-adminrechte-braucht.html)

FAlter 7. Nov 2008 17:34


Vista erzählen, dass das programm KEINE Adminrechte braucht
 
Hi,

wie muss mein Manifest aussehen, damit bei aktivierter UAC Vista trotzdem keine Meldung bringt, wenn das Programm gestartet wird? Denn das tut es fälschlicherweise. Und mit der Suche (Google. DP) komm ich nicht klar, da es einfach zu viele gibt, die genau das Gegenteil von meinem Problem haben... (Die MSDN-Suche ist irgendwie immer erfolglos :( ) Dadurch finde ich keine Infos zum "Ich will gar keine Adminrechte!".

Mfg
FAlter

rollstuhlfahrer 7. Nov 2008 17:41

Re: Vista erzählen, dass das programm KEINE Adminrechte brau
 
HI,

du nimmst ganz einfach das Manifest, was du auch für Adminrechte verwendest und setzt den Parameter für die Rechte auf false.

Code:
<?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="VistaLogonCustomizer.exe" type="*"/>
  <description>elevate execution level</description>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
   <security>
     <requestedPrivileges>
      <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
     </requestedPrivileges>
   </security>
  </trustInfo>
  <dependency>
   <dependentAssembly>
     <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
   </dependentAssembly>
  </dependency>
</assembly>
Die Zeile
Code:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
sollte dafür sorgen, dass die Adminrechte nicht gebraucht werden. Da ich kein Vista hab, kann ich nicht sagen, ob das jetzt richtig ist oder nicht. Falls es zu Problemen kommt, dass doch die Rechte angefordert werden, einfach mal auf TRUE setzen, was nach dem Sprachverständniss eigentlich nicht sein kann.

Bernhard

ringli 7. Nov 2008 17:42

Re: Vista erzählen, dass das programm KEINE Adminrechte brau
 
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    name="Programmname"
    processorArchitecture="*"
    version="1.2.3.4"
    type="win32"/>
<description>Beschreibung.</description>

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
   <security>
      <requestedPrivileges>
         <requestedExecutionLevel
            level="asInvoker"
            uiAccess="false"/>
        </requestedPrivileges>
   </security>
</trustInfo>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="*"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>
[EDIT]Ich weiß nicht mehr genau woher ich es habe, aber ich stelle die Beschreibung mal hier rein:
Code:
Application Manifest Schema
Application manifests are not new to the Windows Vista release. Manifests were used in Windows XP to help application developers identify such things as which versions of DLLs the application was tested with. Providing the execution level is an extension to that existing manifest schema.

The Windows Vista application manifest has been enhanced with attributes that permit developers to mark their applications with a requested execution level. The following is the format for this.

<requestedExecutionLevel
   level="asInvoker|highestAvailable|requireAdministrator"
   uiAccess="true|false"/>

level

asInvoker—The application runs with the same token as the parent process.
Important note  For Windows Vista Beta-1, the term used for this level is leastPrivilege. Developers wishing to mark their code for this level on Windows Vista Beta-1 should use leastPrivilege. Developers will need to update their manifest to use the term asInvoker in subsequent versions of Windows.
highestAvailable—The application runs with the highest privileges the current user can obtain.
requireAdministrator—The application runs only for administrators and requires that the application be launched with the full token of an administrator.
uiAccess

false—The application does not need to drive input to the UI of another window on the desktop. Applications that are not providing accessibility should set this flag to false. Applications that are required to drive input to other windows on the desktop (on-screen keyboard, for example) should set this value to true.
true—The application is allowed to bypass UI protection levels to drive input to higher privilege windows on the desktop. This setting should only be used for UI Accessibility applications.

Assertor 7. Nov 2008 17:47

Re: Vista erzählen, dass das programm KEINE Adminrechte brau
 
Hi Falter,

wie heißt Deine EXE?

@Rollstuhlfahrer: Ringli liegt richtig. Das uiAccess ist für was anderes da, wie ich im roten Kasten sehe hat er auch die richtigen Infos dafür schon beigefügt.

Gruß Assertor

FAlter 7. Nov 2008 18:02

Re: Vista erzählen, dass das programm KEINE Adminrechte brau
 
Hi,

MakeSLGui.exe

Das Problem liegt wohl eher in der Dateibeschreibung (Versionsinfo), aber die kann ich nicht ändern, ohne sie zu verstümmeln. Das Projekt ist Hier im Forum suchenSetup-Loader.

Das mit dem asInvoker klappt wirklich. Manchmal ist es einfacher als erwartet... Ich dachte wenn da false steht dann ist es genauso wie wenn der Teil im Manifest fehlt.

Also vielen Dank. ;)

Mfg
FAlter


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz