Autor Beitrag
uranop
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
BeitragVerfasst: 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

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 29.11.08 19:03 
Wie wäre es mit ListViewX.Items.Add? ;-)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
with ListViewX.Items.Add do
begin
  Caption := 'Test';
  SubItems.Add('Spalte 2');
  SubItems.Add('Spalte 3');
end;
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 29.11.08 19:31 
Schau mal hier: GetEnvironmentStrings
uranop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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? :nixweiss:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 30.11.08 11:58 
user profile iconuranop hat folgendes geschrieben Zum zitierten Posting springen:
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 ...
Das kann ich nicht reproduzieren :nixweiss:, bei mir funktioniert das mit der VCLSkin Demo wunderbar, auch mit vsReport. Wo ist das Problem denn dabei?

user profile iconuranop hat folgendes geschrieben Zum zitierten Posting springen:
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 : )
Dafür gibt es dort die Eigenschaft Strings.
uranop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149

Win XP, Win 7, Slackware 11, FreeBSD
D6E, php
BeitragVerfasst: 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

ausblenden volle Höhe Delphi-Quelltext
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:
// Environment remote Rechner



procedure TForm1.Button48Click(Sender: TObject);

var Reg: TRegistry;
    sList: TStringList;
    i: integer;
    Item: TListItem;
    s : string;
    Column: TListColumn;
begin
 // user
  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;

// system
  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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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) ;-).