AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Programm unter Vista als Administrator starten!
Thema durchsuchen
Ansicht
Themen-Optionen

Programm unter Vista als Administrator starten!

Ein Thema von Deltachaos · begonnen am 4. Mai 2009 · letzter Beitrag vom 6. Mai 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#1

Programm unter Vista als Administrator starten!

  Alt 4. Mai 2009, 16:54
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:
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;
Das funktionirt auch aber nur dann wen das Programm als Administrator ausgeführt wird.
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
Maximilian Ruta
Ich weiß mein Deutsch ist ! Bei Fragen: ich bin fast immer im Mumble
Server: cubexsports.de
Port: 64738
  Mit Zitat antworten Zitat
Frankfurtoder

Registriert seit: 27. Mär 2008
112 Beiträge
 
RAD-Studio 2010 Pro
 
#2

Re: Programm unter Vista als Administrator starten!

  Alt 4. Mai 2009, 16:58
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!');
Erik
Alles gut?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Programm unter Vista als Administrator starten!

  Alt 4. Mai 2009, 17:08
Besser
If not copyfile(xyz) then
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

Re: Programm unter Vista als Administrator starten!

  Alt 4. Mai 2009, 17:09
Entweder ein entsprechendes Manifest einbinden (dafür gibt es IIRC Beispiele in der DP) oder gleich abfragen, ob der Benutzer Admin ist, z.B. so. Aber wenn Du schon das CopyFile auswertest, dann bitte mit GetLastError die genaue Fehlerursache ermitteln.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Programm unter Vista als Administrator starten!

  Alt 4. Mai 2009, 17:32
Zitat von Deltachaos:
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!
Wenn dein Programm den Text "setup" oder "install" im Namen trägt, dann verlangt Vista automatisch Adminrechte. (hab's selbst nicht getestet; nur aufgeschnappt)
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#6

Re: Programm unter Vista als Administrator starten!

  Alt 4. Mai 2009, 17:46
danke für die informationen ich habe das mit dem manifest ausprobiert und es funktionirt
Maximilian Ruta
Ich weiß mein Deutsch ist ! Bei Fragen: ich bin fast immer im Mumble
Server: cubexsports.de
Port: 64738
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Programm unter Vista als Administrator starten!

  Alt 4. Mai 2009, 17:52
Zitat von Deltachaos:
Ich selber habe nur XP und habe deswegen einen Freund folgendes Programm testen lassen:
Dort hast du das selbe Problem, wenn du nicht als Administrator arbeitest. Erstelle einfach bei dir ein eingeschränktes Konto und teste es dort auch.

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:
http://www.microsoft.com/downloads/d...displaylang=en
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#8

Re: Programm unter Vista als Administrator starten!

  Alt 5. Mai 2009, 04:52
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>
  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Programm unter Vista als Administrator starten!

  Alt 5. Mai 2009, 07:05
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.
Fridolin Walther
  Mit Zitat antworten Zitat
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#10

Re: Programm unter Vista als Administrator starten!

  Alt 6. Mai 2009, 08:50
Ok werde mir da was überlegen.

PS: Ich habe die ganze sache auch unter Windows 7 getestet und es funktionirt auch!
Maximilian Ruta
Ich weiß mein Deutsch ist ! Bei Fragen: ich bin fast immer im Mumble
Server: cubexsports.de
Port: 64738
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz