AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Umgebungsvariablen unter Vista ohne Admin-Rechte
Thema durchsuchen
Ansicht
Themen-Optionen

Umgebungsvariablen unter Vista ohne Admin-Rechte

Ein Thema von HPW · begonnen am 21. Apr 2009 · letzter Beitrag vom 21. Apr 2009
 
HPW

Registriert seit: 28. Feb 2003
160 Beiträge
 
Delphi 7 Professional
 
#1

Umgebungsvariablen unter Vista ohne Admin-Rechte

  Alt 21. Apr 2009, 08:30
Bislang habe ich mir Umgebungsvariablen so geholt:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
  Registry,
  Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1 : TEdit;
    Edit2 : TEdit;
    Button1 : TButton;
    Label1 : TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

Type
  tEnviromentOwner = (eoUser, eoSystem);

var
  Form1: TForm1;

Const
  cEnviromentOwnerRegPlace : Array [tEnviromentOwner] of Record
      Root: HKEY;
      Key: String
    End = (
      (Root: HKEY_CURRENT_USER;
       Key: 'Environment'),
      (Root: HKEY_LOCAL_MACHINE;
       Key: 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment')
    );


implementation

{$R *.dfm}

Function GetSystemWideEnvironmentVariable (aOwner: tEnviromentOwner; aName: String): String;
Var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  With Reg, cEnviromentOwnerRegPlace [aOwner] Do
    Try
      RootKey := Root;
      OpenKey (Key, False);
      Result := ReadString (aName);
    Finally
      Free;
    End;
end;

Function GetEnv(regarea, varname : STRING ): String;
VAR
   retstr : String;
BEGIN
    IF AnsiUpperCase(regarea) = 'USERTHEN
      retstr := GetSystemWideEnvironmentVariable (eoUser, varname)
    ELSE IF AnsiUpperCase(regarea) = 'SYSTEMTHEN
      retstr := GetSystemWideEnvironmentVariable (eoSystem, varname)
    ELSE
      retstr := '';
    Result := retstr;
END;


procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := GetEnv( Edit1.Text , Edit2.Text );
end;

end.
Als Standard-User unter Vista gibt dies nichts mehr zurück.
Das Test-Programm als Administrator gestartet liefert wie immer zurück.
Wie funktioniert das immer?

Grüsse,
Hans-Peter
  Mit Zitat antworten Zitat
 


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 04:27 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