| Autor |
Beitrag |
Experience1986
      
Beiträge: 192
Win XP Pro SP2
Delphi 7
|
Verfasst: Do 29.01.04 16:11
hi,
ich will den Inhalt von HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run auselesen, also alle Windows Autostarts des aktuellen Benutzers, was brrauch ich dafür und was muss ich beachten?
´Hab bereits fleissig Gegoogelt und auch hier im Forum gesucht, aber ohne erfolg.
|
|
Chatfix
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Do 29.01.04 16:27
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
teebee
      
Beiträge: 109
D6 Prof
|
Verfasst: Do 29.01.04 16:32
Wenn man die Werte noch nicht kennt:
TRegistry.GetValueNames(StringListe);
Die OH ist Dein Freund!
Gruß, teebee
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 29.01.04 16:39
| teebee hat folgendes geschrieben: | | Die OH ist Dein Freund! |
OH? Oma Hiltrud? 
|
|
teebee
      
Beiträge: 109
D6 Prof
|
Verfasst: Do 29.01.04 16:54
| MathiasSimmack hat folgendes geschrieben: | | teebee hat folgendes geschrieben: | | Die OH ist Dein Freund! |
OH? Oma Hiltrud?  |
Nee, meine Oma heisst Hertha... 
|
|
Experience1986 
      
Beiträge: 192
Win XP Pro SP2
Delphi 7
|
Verfasst: Do 29.01.04 17:05
thx, hab es.
Aber wie kann ich zum Teufel in ein ListView (3 Columns: 1=Checkbox; 2=Name; 3=Wert) einen eintrag adden (in name und Wert)????
|
|
teebee
      
Beiträge: 109
D6 Prof
|
Verfasst: Do 29.01.04 17:27
Delphi-Quelltext 1: 2: 3: 4: 5:
| Var li: TListItem; li := ListView1.Items.Add; li.Caption := 'Erste Spalte'; li.Checked := True; li.SubItems.Add('Untereintrag'); |
Gruß, teebee
|
|
Experience1986 
      
Beiträge: 192
Win XP Pro SP2
Delphi 7
|
Verfasst: Do 29.01.04 17:32
Klasse, funzt auch
Hatte schon ne sau kompliziert Lösung angesteuert, das geht einfach und scheneller *G**
|
|
Experience1986 
      
Beiträge: 192
Win XP Pro SP2
Delphi 7
|
Verfasst: Do 29.01.04 18:04
Muss nochmal nerven:
Ich hab nuna lees eigentlich wie ich es will, ich habe nun eine Abfrage der einträge in HKEY_LOCAL_MACHINE und in HKEY_CURRENT_USER, leider kommt von HKEY_CURRENT_USER kein Eintrag zurück (In meiner Registry ist aber auch dort einer, bin ich mir sicher)
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:
| procedure TFRM_Main.Button4Click(Sender: TObject); var i: integer; reg, reg2: TRegistry; sl, s2: TStrings; li:TListItem; begin reg := TRegistry.Create; reg2 := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE; reg2.RootKey := HKEY_CURRENT_USER;
reg.OpenKeyReadOnly('SOFTWARE\Microsoft\Windows\CurrentVersion\Run'); reg2.OpenKeyReadOnly('Software\Microsoft\Windows\CurrentVersion\Run');
sl := TStringList.Create; s2 := TStringList.Create;
reg.GetValueNames(sl);
for i := 0 to sl.Count -1 do begin li := ListView1.Items.Add; li.Caption := ''; li.Checked := True; li.SubItems.Add(sl.Strings[i]); li.SubItems.Add(reg.ReadString(sl.Strings[i])); end;
for i := 0 to s2.Count -1 do begin li := ListView1.Items.Add; li.Caption := ''; li.Checked := True; li.SubItems.Add(s2.Strings[i]); li.SubItems.Add(reg.ReadString(s2.Strings[i])); end;
sl.Free; s2.Free;
reg.CloseKey; reg2.CloseKey;
reg.Free; reg2.Free; end; |
Was kann also falsch sein?
|
|
teebee
      
Beiträge: 109
D6 Prof
|
Verfasst: Do 29.01.04 18:37
Wie wär's mitreg2.GetValueNames(s2);Das hast Du vergessen.
In der zweiten for-Schleife solltest Du auch lieber reg2 auslesen..
Gruß, teebee
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 29.01.04 18:49
Ich frag mich, was das
| Zitat: | Delphi-Quelltext 1: 2:
| reg := TRegistry.Create; reg2 := TRegistry.Create; | |
soll? Und ich sag´s ungern, aber
| Zitat: | Delphi-Quelltext 1:
| reg.RootKey := HKEY_LOCAL_MACHINE; | |
kann unter NT-Systemen Probleme verursachen, wenn der Benutzer nicht ausreichende Berechtigungen zum Zugriff auf diesen Schlüssel hat. Der Grund liegt im
Delphi-Quelltext
bei dem das Registry-Objekt standardmäßig mit vollen Zugriffsrechten erzeugt wird. Und diese Rechte haben unter NT/2000/XP meist nur Benutzer der Admin-Gruppe.
Entweder du nimmst also
Delphi-Quelltext 1:
| TRegistry.Create(KEY_READ); |
was im Fall des Aus lesens ohnehin zu empfehlen ist, oder du klammerst beim Start mit eingeschränkten Benutzerrechten den HKLM-Schlüssel aus, falls der User den Autostart auch bearbeiten können soll. Nur der Admin bzw. User dieser Gruppe sollten neben dem persönlichen Autostart auch den maschinenbezogenen Autostart bearbeiten dürfen.
|
|
Experience1986 
      
Beiträge: 192
Win XP Pro SP2
Delphi 7
|
Verfasst: Do 29.01.04 21:55
Ok, das werd ich mir dann auf jeden fall noch angugen.
(Programmiere zur Zeit nur für mich, zur Übung.)
Nun wollt ich noch was wissen, was aber eher in den VCL Bereich geht, ich hoffe ihr antwortet mir hier trotzdem.
Wie kann ich bei einem TListView herausfinden, welcher "Eintrag" gerade aktiviert ist?
Ich habe bereits per OnSelectItem versuch die Variable "Item" (Wird von dem Ereignis erstellt) so einzusetzen, damit ich zum Beispiel den "Checked" Status des aktuellen Items abfragen kann:
Delphi-Quelltext 1: 2: 3: 4:
| if (ListView1.Items[Items].checked) then begin ... end; |
Aber das funktioniert nicht, da Item von Datentyp TListItem ist und ich ihn nicht so einfach abfragen kann, bin ich überhaupt auf dem richtigen weg?
Wenn ja, dann sagt mir bitte wie ich TListItem's abfragen kann.
|
|
teebee
      
Beiträge: 109
D6 Prof
|
Verfasst: Do 29.01.04 22:25
If ListView1.SelCount>0 Then If ListView1.Selected.Checked Then...Du solltest echt mal 'nen gründlichen Blick in die OH werfen. Nein, ich meine keine Oma sondern die Delphi-Hilfe....
Gruß, teebee
|
|
Experience1986 
      
Beiträge: 192
Win XP Pro SP2
Delphi 7
|
Verfasst: Do 29.01.04 23:02
THX, in de OH kann man ja manchmal innerhalb von Sekunden was finden, aber andererseits dauert es manchmal stunden....
Immerhin muss man ja wissen nach was man sucht, und dass ist nicht immer gewährleistet.
|
|
teebee
      
Beiträge: 109
D6 Prof
|
Verfasst: Fr 30.01.04 09:13
| Experience1986 hat folgendes geschrieben: | | Immerhin muss man ja wissen nach was man sucht, und dass ist nicht immer gewährleistet. |
Naja, immerhin weisst Du, dass es um TListView geht. Unter Eigenschaften/Methoden findest Du, was Du brauchst. Du kannst auch alle Eigenschaften/Methoden (von TListView und seinen Unterklassen meine ich...) nacheinander durchgehen, und Dir die Beschreibungen zu Gemüte führen, da findet man so allerhand.
Nix für ungut, soll eine Anregung für die Zukunft sein, schließlich hättest Du eine Lösung so viel schneller gefunden als hier im Forum.
Gruß, teebee
|
|