AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Wie lese Ich Hard- und Software aus?

Wie lese Ich Hard- und Software aus?

Ein Thema von Dray · begonnen am 19. Mär 2003 · letzter Beitrag vom 23. Jul 2003
Antwort Antwort
Seite 2 von 3     12 3   
Dray

Registriert seit: 19. Mär 2003
Ort: Brilon
11 Beiträge
 
Delphi 5 Enterprise
 
#11
  Alt 20. Mär 2003, 12:05
So Leute erst mal danke für eure Hilfe. ich werde den Fall mal ausprobieren.

Und zu "Da hast du dir aber was vorgenommen": Das hab ich mir nicht vorgenommen, das is mir vorgenommen worden von meinem chef!
MfG Dray aka Christian
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12
  Alt 20. Mär 2003, 12:17
Na dann wollne wir mal deinen Chef glücklich machen:
Delphi-Quellcode:
uses Registry;

procedure TForm1.Button1Click(Sender: TObject);
var
  reg : TRegistry;
begin
  reg := TRegistry.Create(KEY_READ);
  try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    if reg.OpenKey('Software\Microsoft\Windows\Currentversion\Uninstall', FALSE) then
    begin
       reg.GetKeyNames(Listbox1.Items);
    end
    else
      RaiselastOSError();
  finally
    reg.Free;
  end;
end;
Und das nächste mal sagst du ihm, die paar Zeilen kann er selber schreiben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#13
  Alt 20. Mär 2003, 12:37
Zitat von janjan:
Auf meinem System sind viele Programme und Spiele die in der Registry oder in irgendwelchen .ini Dateien aufgeführt sind (z.b. DScaler, Quake1-3, HL,...).
Ich will nichts unterstellen, aber meine Versionen von Quake und Half-Life besitzen einen vernünftigen Installer. Quake 1 ist sogar ein noch ein DOS-Programm, dessen Ordner sich also ohne Risiko löschen lässt.
Das Problem mit den übrig bleibenden Dateien (Konfigs, INIs, usw.) lässt sich auf die damals benutzten Installer-Versionen schieben. Die haben nur das entfernt, was sie installiert haben. Dateien, die zur Laufzeit hinzukamen, stehen nicht im Install-Log und werden daher nicht beachtet. Seitdem aber auch InstallShield und Wise zunehmend auf das MSI-Modul von Microsoft setzen, bestünde die Möglichkeit, zusätzliche Dateien zu spezifizieren, die bei der Deinstallation ebenfalls gelöscht werden. Es liegt also im Ermessen des Entwicklers bzw. Installer-Machers, wie er die Mittel nutzt.

Zitat von Luckie:
Schlüssel:
HKLM\Software\Microsoft\Windows\Currentversion\Uni nstall
Dann noch unter dem gleichen Schlüssel in HKCU kucken ...
Verwechselst du da möglicherweise was mit dem Autostart von Programmen? Den Uninstall-Schlüssel gibt es nur unter HKEY_LOCAL_MACHINE. Ich spreche jetzt zwar nur für Win 95, 98 und XP, aber das sollte auch bei NT, ME und 2000 nicht anders sein. Und zumindest für XP kann ich mit Gewissheit sagen, dass nur Admins und Hauptbenutzer Software installieren können. Und beide Benutzergruppen haben Zugriff auf HKLM. Ohne diese Rechte schlägt (bei mir) die Installation von Software fehl.

Zitat von janjan:
Das ist mir schon bekannt, nur meiner Erfahrung nach klappt das nicht so toll wie es eigentlich sein könnte. Jedes Programm sollte sich beim installieren da eintragen, aber ob es das auch wirklich tut?
Mitnichten muss sich jedes Programm eintragen. Es gibt ein paar Systemupdates von Microsoft (das SP2 für MS-XML 3 fällt mir da z.B. ein), die zwar auch normale Installationsdateien sind, bei denen aber die Uninstall-Funktion deaktiviert ist. Damit sind sie eben nur einspielbar aber nicht entfernbar. In manchen Fällen macht das ja auch Sinn.

Wie ich anfangs schon andeutete: es ist die Aufgabe des Entwicklers, eine vernünftige Deinstallation zu planen. Wer sein Programm z.B. ohne Installer veröffentlicht, der sollte zumindest eine Möglichkeit anbieten, Registryschlüssel o.ä. beim Beenden des Programms löschen zu lassen.
Und dass man seine INIs, DLLs, usw. nicht mehr im Windows- oder im Systemordner ablegen darf, das sollte eigentlich auch bekannt sein.


Aber zurück zu einem der Themen -
Zitat von Dray:
Ich hatte da noch die Idee die Software aus der Systemsteuerung auszulesen. geht das? und wenn dann wie?
Im Anhang findest du die alte VCL-Version meines Tools "UnInstall Secrets". Alt deshalb, weil ich mich auf die NonVCL-Version konzentriert habe. Aber zur Ansicht mag die VCL-Version reichen. Außerdem zeigt sie alle Programme an. Auch die, die in der Systemsteuerung/Software gar nicht zu sehen sind. 8)
Die NonVCL-Version des Tools gibt es übrigens in den Win32-API-Tutorials. (Damit wäre die monatliche Werbung dafür auch erledigt. )
Angehängte Dateien
Dateityp: zip uis-vcl.zip (10,5 KB, 31x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#14
  Alt 20. Mär 2003, 12:41
Zitat von MathiasSimmack:
Zitat von Luckie:
Schlüssel:
HKLM\Software\Microsoft\Windows\Currentversion\Uni nstall
Dann noch unter dem gleichen Schlüssel in HKCU kucken ...
Verwechselst du da möglicherweise was mit dem Autostart von Programmen? Den Uninstall-Schlüssel gibt es nur unter HKEY_LOCAL_MACHINE. Ich spreche jetzt zwar nur für Win 95, 98 und XP, aber das sollte auch bei NT, ME und 2000 nicht anders sein. Und zumindest für XP kann ich mit Gewissheit sagen, dass nur Admins und Hauptbenutzer Software installieren können. Und beide Benutzergruppen haben Zugriff auf HKLM. Ohne diese Rechte schlägt (bei mir) die Installation von Software fehl.
War nur ein Schuß ins Blaue, ich war zu faul zu kucken und habe es einfach mal so hingeschrieben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#15
  Alt 20. Mär 2003, 12:48
Zitat von MathiasSimmack:
Zitat von janjan:
Auf meinem System sind viele Programme und Spiele die in der Registry oder in irgendwelchen .ini Dateien aufgeführt sind (z.b. DScaler, Quake1-3, HL,...).
Ich will nichts unterstellen, aber meine Versionen von Quake und Half-Life besitzen einen vernünftigen Installer. Quake 1 ist sogar ein noch ein DOS-Programm, dessen Ordner sich also ohne Risiko löschen lässt.
Das die Spiele nicht mehr in der Registry stehen liegt daran, dass ich ab und an mal meine SystemPartition formatiere. Da gehen dann bekanntermaßen alle Uninstall Informationen verloren. Da die Spiele auch ohne diese ganzen Sachen laufen, seh ich garnicht ein die nochmal neu zu isntallieren.

Zu dem Quake 1: Ich hab das aus einer Quake Collection die unter Windows installiert wird, unter anderem ist da auch QuakeGL dabei...
Die Wichtigkeit eines Postings im Forum ist reziprok zur Anzahl der enthaltenenen, kumulierten Ausrufungszeichen!!!
  Mit Zitat antworten Zitat
Dray

Registriert seit: 19. Mär 2003
Ort: Brilon
11 Beiträge
 
Delphi 5 Enterprise
 
#16
  Alt 20. Mär 2003, 13:06
So Leute da Ihr mir so gut Geholfen habt erst noch mal ein dickes DANKE!

Aber ich hab natürlich direkt noch ne Frage. Ich hab ja oben schon geschrieben das ich auch Hardware auslesen soll. Darauf is gefallen das die teilweise in der Registry stehen. Wisst ihr zufällig auch wo da?


P.S.: Chef is schon halbwegs glücklich das der Softwarekram schon mal funzt!
MfG Dray aka Christian
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#17
  Alt 20. Mär 2003, 13:19
Zitat von Dray:
P.S.: Chef is schon halbwegs glücklich das der Softwarekram schon mal funzt!
da warst du aber schnell. Ich hoffe mal, du hast da selbst was entwickelt und ihm nicht nur das programm vom Mathias vorgesetzt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dray

Registriert seit: 19. Mär 2003
Ort: Brilon
11 Beiträge
 
Delphi 5 Enterprise
 
#18
  Alt 20. Mär 2003, 13:25
Zitat von Luckie:
da warst du aber schnell. Ich hoffe mal, du hast da selbst was entwickelt und ihm nicht nur das programm vom Mathias vorgesetzt.
Nein hab ich natürlich nicht! Ich hab das ganze natürlich abgeändert zu meinem Zwecke und einen Filter eingebaut, da das Proggi mehr ausspuckte wie nötig war. Ausserdem musste ich das ganze ja in mein Clientproggi einbinden
MfG Dray aka Christian
  Mit Zitat antworten Zitat
Benutzerbild von Trouble_Maker
Trouble_Maker

Registriert seit: 30. Jan 2003
244 Beiträge
 
Delphi 6 Personal
 
#19
  Alt 20. Mär 2003, 13:43
hihio...
ich hab auch grad mal den Code von Luckie ausprobiert!
Funktioniert super, doch spuckt er echt zu viel aus!
Sowas wie : {0c82904........}

wie filter ich sowas raus... weil es ja nix zum deinstallieren ist !?!

Danke

Trouble_Maker
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#20
  Alt 20. Mär 2003, 14:03
Such doch in der Listbox nach "{" in einem Eintrag und löscht ihn.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 09:37 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