![]() |
Programm unter Vista als Administrator starten!
Hi,
ich möchte eine Art Instalations Programm schreiben das auch unter Vista laufen soll. Nun muss dieses einige Dateien nach "C:\Programme" kopieren. Das funktionirt unter Vista ja nicht einfach so. Ich selber habe nur XP und habe deswegen einen Freund folgendes Programm testen lassen:
Delphi-Quellcode:
Das funktionirt auch aber nur dann wen das Programm als Administrator ausgeführt wird.
procedure copy;
var themp: string; begin themp := IncludeTrailingBackslash(SysUtils.GetEnvironmentVariable('ProgramFiles')); showmessage(SysUtils.GetEnvironmentVariable('ProgramFiles')); copyfile(PChar(ExtractFilePath(ParamStr(0)) + 'text.txt'), PChar(themp + 'test1.txt'), false); copyfile(PChar(ExtractFilePath(ParamStr(0)) + 'text.txt'), PChar(themp + 'test2.txt'), false); copyfile(PChar(ExtractFilePath(ParamStr(0)) + 'text.txt'), PChar(themp + 'test3.txt'), false); copyfile(PChar(ExtractFilePath(ParamStr(0)) + 'text.txt'), PChar(themp + 'test4.txt'), false); copyfile(PChar(ExtractFilePath(ParamStr(0)) + 'text.txt'), PChar(themp + 'test5.txt'), false); copyfile(PChar(ExtractFilePath(ParamStr(0)) + 'text.txt'), PChar(themp + 'test6.txt'), false); end; Wie kann ich ereichen das beim Normalen ausführen wenigstens ein Bestätigungs Dialog oder so etwas kommt bzw. das Programm mit Administrator rechten gestartet werden muss! PS: Ich benutze Delphi 7 |
Re: Programm unter Vista als Administrator starten!
Das Result vom copyfile ist false wenn der Vorgang nicht wie gewünscht ausgeführt wird. Einfach auf das False mit einem Dialog Antworten.
Delphi-Quellcode:
If copyfile(xyz) = false then
showmessage('Es werden Admin Rechte benötigt!'); |
Re: Programm unter Vista als Administrator starten!
Besser
Delphi-Quellcode:
If not copyfile(xyz) then
|
Re: Programm unter Vista als Administrator starten!
Entweder ein entsprechendes Manifest einbinden (dafür gibt es IIRC Beispiele in der DP) oder gleich abfragen, ob der Benutzer Admin ist, z.B.
![]() |
Re: Programm unter Vista als Administrator starten!
Zitat:
|
Re: Programm unter Vista als Administrator starten!
danke für die informationen ich habe das mit dem manifest ausprobiert und es funktionirt
|
Re: Programm unter Vista als Administrator starten!
Zitat:
Zum selbst testen unter Vista und einem sauberen XP bietet sich das dafür kostenlos von MS zur Verfügung gestellte Virtual PC Image an: ![]() |
Re: Programm unter Vista als Administrator starten!
Weiß jemand warum das folgende Manifest nur unter Vista und nicht unter XP funktioniert? Sowohl als .manifest im Programmverzeichnis abgespeichert als auch eincompiliert.
XML-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="PROGRAMMNAME.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> |
Re: Programm unter Vista als Administrator starten!
Windows XP kennt den requestedExecutionLevel Parameter nicht. Den gibts erst seit Vista. Entsprechend kannst Du Dich nicht darauf verlassen, daß nur weil Du im Manifest angegeben hast, daß Du gern Admin Rechte hättest, Du diese auch erhälst (zumindest dann wenn Deine Anwendung auch auf Windows Versionen vor Vista ausführbar ist). Eine kleine Abfrage ob Du Admin Rechte hast gekoppelt mit einer Hinweisbox falls nicht, wären der sauberste Weg in dem Fall.
|
Re: Programm unter Vista als Administrator starten!
Ok werde mir da was überlegen.
PS: Ich habe die ganze sache auch unter Windows 7 getestet und es funktionirt auch! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 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