AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Autostart Manager
Thema durchsuchen
Ansicht
Themen-Optionen

Autostart Manager

Ein Thema von Martin K · begonnen am 13. Jun 2006 · letzter Beitrag vom 19. Okt 2006
Antwort Antwort
Seite 2 von 8     12 34     Letzte »    
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#1

Re: Autostart Manager

  Alt 14. Jun 2006, 11:38
Aha, na da kommen wir doch schon der Sache näher.
Also bei mir geht's so schnell, dass ich die Balken gar nicht zählen kann.

Also bei 80% werden die Autostart-Einträge von allen Usern ausgelesen, also HKEY_USERS und von allen Schlüsseln, die da drin sind, die Autostart-Einträge.
Wie viele Schlüssel habt ihr denn da?

Wie viele User habt ihr denn bei euch eingerichtet?
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Autostart Manager

  Alt 14. Jun 2006, 11:45
Selbst bei 25 Benutzern sollte das kein Thema sein. Ich denke mal der fehler liegt in deinem Code.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Autostart Manager

  Alt 14. Jun 2006, 11:54
Ja, bin ich denn der eingigste bei dem es läuft

Hab es mit einem User und auf dem anderen Rechner mit 4 Usern getestet.
Aber selbst bei 25 sollte es eigentlich gehen.

Hier mal ein bissl Code-Fetzen:
Delphi-Quellcode:
    ProgressBar1.Position:=60;
    Reg.RootKey:=HKEY_LOCAL_MACHINE;
    List.Clear;
    if Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',False) then
    try
      Reg.GetValueNames(List);
      if List.Count>0 then
        for i:=0 to List.Count-1 do
          NewItem(List[i],Reg.ReadString(List[i]),'HKEY_LOCAL_MACHINE');
    finally
      Reg.CloseKey;
    end;
    ProgressBar1.Position:=80;
    Reg.RootKey:=HKEY_USERS;
    List.Clear;
    if Reg.OpenKey('',False) then
    try
      Reg.GetKeyNames(Keys);
      Reg.CloseKey;
      while Keys.Count>0 do
        if Reg.OpenKey(Keys[0]+'\Software\Microsoft\Windows\CurrentVersion\Run',False) then
        begin
          Reg.GetValueNames(List);
          if List.Count>0 then
            for i:=0 to List.Count-1 do
              NewItem(List[i],Reg.ReadString(List[i]),'HKEY_USERS\'+Keys[0]);
          List.Clear;
          Keys.Delete(0);
          Reg.CloseKey;
        end;
    finally
      Reg.CloseKey;
    end;
List und Keys sind StringListen, ansonsten ist das Prinzip bei HKEY_CURRENT_USER und HKEY_CLASSES_ROOT dasselbe wie bei HKLM,
lediglich bei HKEY_USERS ist es anders, da ja noch die Unterschlüssel einzeln ausgelesen werden.
Und NewItem ist eine Prozedur, die dann den neuen Eintrag zur ListView hinzufügt.
Inkl. einer Funktion die das Icon zum Pfad sucht, die Funktion wird gerade noch verbessert.
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Autostart Manager

  Alt 14. Jun 2006, 11:59
Warum ist das:
Delphi-Quellcode:
      while Keys.Count>0 do
        if Reg.OpenKey(Keys[0]+'\Software\Microsoft\Windows\CurrentVersion\Run',False) then
        begin
          Reg.GetValueNames(List);
          if List.Count>0 then
            for i:=0 to List.Count-1 do
              NewItem(List[i],Reg.ReadString(List[i]),'HKEY_USERS\'+Keys[0]);
          List.Clear;
          Keys.Delete(0);
          Reg.CloseKey;
        end;
keine for-Schleife? Du weißt doch, wie viele Eintrage in der Liste Keys sind.

Und wie erstellst du das TRegistry-Objekt? Ich würde es mal mit KEY_READ versuchen als Parameter der Create-Methode.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Autostart Manager

  Alt 14. Jun 2006, 12:05
Zitat von Luckie:
Warum ist das: [...] keine for-Schleife? Du weißt doch, wie viele Eintrage in der Liste Keys sind.
Ja, werde mal eine for-Schleife draus machen...
Bin halt ein Variablen-Sparer

Zitat von Luckie:
Und wie erstellst du das TRegistry-Objekt? Ich würde es mal mit KEY_READ versuchen als Parameter der Create-Methode.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Reg:=TRegistry.Create;
 {...}
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FreeAndNil(Reg);
end;
Wenn ich es mit KEY_READ mache, kann ich doch keine neuen Einträge mehr reinschreiben/löschen/ersetzen ???
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Autostart Manager

  Alt 14. Jun 2006, 12:09
Bei mir funktioniert das auslesen jetztr mit der debug-version.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Autostart Manager

  Alt 14. Jun 2006, 12:12
Zitat von DGL-luke:
Bei mir funktioniert das auslesen jetztr mit der debug-version.
Endlich mal einer, bei dem es klappt
Wie lange dauert denn das Auslesen?

Komisch ist:
Wenn Du auf den Button klickst wird genau dasselbe gemacht, was vorher bei FormCreate gemacht wurde!
Bis auf die ProgressBar hab ich sonst wirklich nix geändert...
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Autostart Manager

  Alt 14. Jun 2006, 12:19
Hmm... nur ne sekunde, mehr nicht, ich hab auch nur zwei,drei einträge.

Allerdings solltest du das nicht im formcreate machen, wenn dann im formshow! Im formcreate sind die ganzen komponenten, auf die du wahrscheinlich zugreifst, noch gar nicht da.

EDIT: Es sollte dann eigentlcih AVs hageln...
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Autostart Manager

  Alt 14. Jun 2006, 12:36
Zitat von Martin K:
Wenn ich es mit KEY_READ mache, kann ich doch keine neuen Einträge mehr reinschreiben/löschen/ersetzen ???
Ja und? Willst du zu dem Zeitpunkt doch eh nicht, sondern nur anzeigen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Autostart Manager

  Alt 14. Jun 2006, 12:42
Zitat von Luckie:
Zitat von Martin K:
Wenn ich es mit KEY_READ mache, kann ich doch keine neuen Einträge mehr reinschreiben/löschen/ersetzen ???
Ja und? Willst du zu dem Zeitpunkt doch eh nicht, sondern nur anzeigen.
Und wie kann ich dann zu einem späteren Zeitpunkt das KEY_READ ändern?
Dann muss ich jeden mal die Registry neu createn???

Zitat von DGL-luke:
Hmm... nur ne sekunde, mehr nicht, ich hab auch nur zwei,drei einträge.

Allerdings solltest du das nicht im formcreate machen, wenn dann im formshow! Im formcreate sind die ganzen komponenten, auf die du wahrscheinlich zugreifst, noch gar nicht da.

EDIT: Es sollte dann eigentlcih AVs hageln...
Nö, bei mir hat's ja auch in FormCreate geklappt und AV's gab's definitiv keine!
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 8     12 34     Letzte »    


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 12:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz