Autor |
Beitrag |
uranop
      
Beiträge: 149
Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
|
Verfasst: Sa 29.11.08 18:15
Hallo Leute,
nach langer Abstinenz mal wieder ne "nervige" Frage von mir : )
Ich lese derzeit 2 verschiedene SystemVariablen mit Hilfe von Tinos Beitrag
-> www.delphi-library.d...tzenlesen_18588.html
aus, und beschreibe die - falls leer -.
Jetzt möchte ich einen Schritt weiter gehen ...
Ich würde gerne die kompletten EnvironmentSettings für User und System auslesen,
und diese dann aehnlich der >> winmsd << in einen Tlistview (im folgenden TLV ) schreiben
das TLV hat 3 Spalten / Collums
Name, Wert, User
wie kann ich nun hergehen und mit sowas wie
Delphi-Quelltext 1: 2: 3: 4:
| procedure TForm1.Button1Click(Sender: TObject); begin Caption := GetSystemWideEnvironmentVariable (eoSystem, 'OS'); end; |
das entsprechend in die liste pumpen ?
Zumal ich das ja nicht einzeln abfragen soll sondern alles auf einmal also mit nem wildchar ?
Bin schon wieder etwas raus aus der Materie und bräuchte mal wieder nen mittel bis grossen Schubbs in die richtige Richtung
Danke
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 29.11.08 19:03
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 29.11.08 19:31
|
|
uranop 
      
Beiträge: 149
Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
|
Verfasst: Sa 29.11.08 21:26
heisst das mit anderen Worten ich kann keine Massenabfrage machen ?
Um dann mit dem Array die Liste zu bedampfen ?
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 29.11.08 21:27
Als letztes wurde dir doch gerade eine Funktion gepostet, die dir die programmbezogene Liste liefert und wie du das einträgst in die ListView hatte ich dir gepostet. Wo ist das Problem?
Und bei den systemweiten Umgebungsvariablen kannst du dir ja eine Liste der Einträge in dem Registryzweig holen. (den siehst du ja deinem eigenen Link)
|
|
uranop 
      
Beiträge: 149
Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
|
Verfasst: Sa 29.11.08 21:34
ARGH ich sollte nicht zuviele Sachen parallel bearbeiten xD
hab mich doch tatsaechlich wieder verrant ...
jou merci erst mal ich werde mal sehen wie ich das msdn zeuch verwerten kann
|
|
uranop 
      
Beiträge: 149
Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
|
Verfasst: So 30.11.08 11:26
also ich mach das nun pur ueber die registry ...
ich bekomme auch ansatzweise das hin was ich will.
habe dabei nur ein problem ...
ich will ja "key-name" UND "key-wert" in der listview haben...
wenn ich den listview style auf vsReport setze , dann spackt die VCLSkin komponente rum ...
also geht das nicht.
nun wollte ich umschwenken auf die valuelist .
dort sind wenigstens die spalten schön definiert .
stellt sich jetzt noch die frage wie ich meine werte da rein jage : )
[EDIT]
Problem gelöst ... einfach "showcolumnheaders" ausgeschalten und schon geht dad mit VCL Skin ...
funktionierender Code wird nachgereicht.
Zuletzt bearbeitet von uranop am So 30.11.08 12:01, insgesamt 1-mal bearbeitet
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 30.11.08 11:58
|
|
uranop 
      
Beiträge: 149
Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
|
Verfasst: So 30.11.08 12:20
Sooo ... hier das was ich gebaut habe ...
wie immer nen haufen Wind um nicht grade viel : )
Auch wenns nicht 100% sauber gecodet ist, erfüllts erst mal den zweck
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85:
|
procedure TForm1.Button48Click(Sender: TObject);
var Reg: TRegistry; sList: TStringList; i: integer; Item: TListItem; s : string; Column: TListColumn; begin begin ListView1.Columns.Clear; Column := ListView1.Columns.Add; Column.Caption := 'Name'; Column.Width := 200; Column := ListView1.Columns.Add; Column.Caption := 'Wert'; Column.Width := 297;
Reg := TRegistry.Create; Reg.RootKey := HKEY_CURRENT_USER; Reg.RegistryConnect(Edit24.Text); sList := TStringList.Create; try if Reg.OpenKey('Environment',false) then begin Reg.GetValueNames(sList); for i := 0 to sList.Count - 1 do begin Item := ListView1.Items.Add; Item.Caption := sList[i]; s := Reg.ReadString(sList[i]); Item.SubItems.Add(s); end; Reg.CloseKey; end; finally Reg.Free; sList.Free; end; end;
begin
ListView2.Columns.Clear; Column := ListView2.Columns.Add; Column.Caption := 'Name'; Column.Width := 200; Column := ListView2.Columns.Add; Column.Caption := 'Wert'; Column.Width := 297;
Reg := TRegistry.Create; Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.RegistryConnect(Edit24.Text); sList := TStringList.Create; try if Reg.OpenKey('SYSTEM\CurrentControlSet\Control\Session Manager\Environment',false) then begin Reg.GetValueNames(sList); for i := 0 to sList.Count - 1 do begin Item := ListView2.Items.Add; Item.Caption := sList[i]; s := Reg.ReadString(sList[i]); Item.SubItems.Add(s); end; Reg.CloseKey; end; finally Reg.Free; sList.Free; end;
end;
end; |
Aussehen tuts dann so wie im Anhang
Einloggen, um Attachments anzusehen!
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 30.11.08 13:03
Du kannst die Spalten der ListView übrigens auch im Objektinspektor schon festlegen, wenn du die Spalten nicht während das Programm läuft verändern möchtest (um verschiedene Inhalte in der gleichen ListView anzuzeigen)  .
|
|