Avatar billede spil2vind Nybegynder
13. december 2007 - 15:04 Der er 8 kommentarer

Delphi Win32 prg til at køre automatisk som Run as administrator

Jeg arbejder med et program, hvor jeg har behov for at det kører som "Run as administrator", idet jeg ellers ikke kan læse og skrive filer i programmet bibliotek, som ligger under c:\programmer, eller er der en anden måde at få programmet til at kunne læse fra RegDatabase og læse/skrive filer??
Avatar billede spil2vind Nybegynder
13. december 2007 - 16:38 #1
Upsss glemte at skrive at det Vista det skal køre på
Avatar billede hrc Mester
14. december 2007 - 00:13 #2
Hvad med en Delphi-service på maskinen eller er det kun i forbindelse med installation? En service er ikke så svær når man lige læser Tolderlunds intro: http://www.tolderlund.eu/delphi/service/service.htm

Kan du ikke bare tildele dit login administratorrettigheder?
Avatar billede spil2vind Nybegynder
14. december 2007 - 07:15 #3
Jo, men hvordan det er jo noget programmet skal tildele sig selv under installation på den enkelte brugers computer. Der er lavet et installationsjob via winzip som virker perfekt, men når programmet som er blevet installeret skal startes, skal det startes med "Run as administrator", hvis du forstår hvad jeg mener
Avatar billede spil2vind Nybegynder
17. december 2007 - 14:52 #4
Er der slet ikke nogen som har gode ideer til at løse mit problem??
Avatar billede hrc Mester
17. december 2007 - 22:26 #5
Hvis det er et spil du skal installere bør det ske til en pc der har administrationsrettigheder til den lokale disk. Enhver ordentlig PC plejer da at være sat op på den måde, ikke? Andet vil være et brud på Windows' "sikkerhedspolitik".
Avatar billede pidgeot Nybegynder
17. december 2007 - 22:55 #6
Du kan bruge en manifest-fil til at fortælle at administratorrettigheder kræves. Hvis du bruger Delphi 2007 mener jeg der er en komponent med du kan bruge, men se ellers http://developersoven.blogspot.com/2007/02/leveraging-vistas-uac-with-delphi-part.html.

Alternativet er at ændre programmet så det aldrig skal skrive uden for brugerprofilen (dvs. hold dig til HKCU og C:\Users\<aktuelt profilnavn>). Der er ingen problemer med at læse fra C:\Programmer, så længe du ikke er røget i Folder Redirection (så får du muligvis andre filer hvis programmet bliver kørt som administrator).
Avatar billede spil2vind Nybegynder
21. december 2007 - 11:04 #7
Tak, det var noget af en lang forklaring, måske er der nogen der ved hvorledes man får sat "Run as administrator" i shortcut filen .lnk når man opretter denne
Avatar billede kammeyer Nybegynder
13. januar 2008 - 16:49 #8
Det er jo netop idéen med UAC - at man ikke skal kunne gemme data i "program files" mappen. Men - der er jo en anden løsning. Du kan gemme data i "Application data". Enten "Application data" for "brugeren" eller "alle brugere".

Dermed har du en mappe specifikt for dit program, og alle rettigheder er tilstede - og UAC er overholdt.

Her er kode for at hente path til mappen.
"folder" er en integer, og du skal benytte enten
CSIDL_COMMON_APPDATA eller CSIDL_LOCAL_APPDATA.
Førstnævnte er "alle brugere" og sidstnævnte er den specifikke bruger.

Husk - SHFolder i Uses.

function GetSpecialFolderPath(folder : integer) : string;
const
  SHGFP_TYPE_CURRENT = 0;
var
  path: array [0..MAX_PATH] of char;
begin
  if SUCCEEDED(SHGetFolderPath(0,folder,0,SHGFP_TYPE_CURRENT,@path[0])) then
    Result := path
  else
    Result := '';
end;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester