AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Installed Software function

Ein Thema von value is NULL · begonnen am 24. Mai 2011 · letzter Beitrag vom 24. Mai 2011
Antwort Antwort
Seite 1 von 2  1 2      
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#1

Installed Software function

  Alt 24. Mai 2011, 08:45
Hi Delphianer

habe folgende Function im Netz gefunden:

Delphi-Quellcode:
function GetUninstallList : string;
const
  cUninstallPath = 'Software\Microsoft\Windows\CurrentVersion\Uninstall';
var
  reg: TRegistry;
  TmpKeyNames: TStringList;
  i: Integer;
  TmpResult: string;
begin
  TmpResult := '';
  Result := TmpResult;
  TmpKeyNames := TStringList.Create;
  TmpKeyNames.Clear;
  reg := TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  if reg.KeyExists(cUninstallPath) then
    if reg.OpenKeyReadOnly(cUninstallPath) then
      reg.GetKeyNames(TmpKeyNames);
  reg.CloseKey;
  for i := 0 to TmpKeyNames.Count - 1 do
    if reg.OpenKeyReadOnly(cUninstallPath + '\' + TmpKeyNames.Strings[i]) then
    begin
      if reg.ValueExists('DisplayName') then
        TmpResult := TmpResult + reg.ReadString('DisplayName') + CRLF;
      reg.CloseKey;
    end;
  reg.Free;
  TmpKeyNames.Free;
  Result := TmpResult;
end;
Bekomme bei folgender Zeile:
TmpResult := TmpResult + reg.ReadString('DisplayName') + CRLF; folgenden Fehler:
Code:
[DCC Fehler] Unit1.pas(35): E2003 Undeklarierter Bezeichner: 'CRLF'
Was habe ich den falsch gemacht?

LG & Danke schon mal!
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Installed Software function

  Alt 24. Mai 2011, 08:52
Ja wo ist denn CRLF definiert?! Nirgends, genau.
Ersetzte es z.B. mal mit sLineBreak.
(An sich wäre die Übergabe von TStrings hierfür eher geeignet ... aber naja.)
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#3

AW: Installed Software function

  Alt 24. Mai 2011, 09:04
Funzt einwandfrei! DANKE!
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Installed Software function

  Alt 24. Mai 2011, 09:09
Ich hoffe du weißt auch warum es jetzt geht und arbeitest nicht nur mit Copy & Paste
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Installed Software function

  Alt 24. Mai 2011, 09:16
Sehe ich das falsch, oder hat diese Funktion noch Optimierungspotential? Wozu die Variable tmpResult gebraucht wird, erschließt sich mir z.B. nicht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Installed Software function

  Alt 24. Mai 2011, 09:18
Das ist zwar sinnlos, aber nicht so schlimm. Schlimmer finde ich, dass kein Try-finally-Block genutzt wird, um die erzeugten Objekte sicher wieder freizugeben.
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Installed Software function

  Alt 24. Mai 2011, 09:20
Jepp, auch ein Clear einer gerade erzeugten TStringlist ist so flüssig, das ist schon überflüssig. Wer opfert sich und schreibt das mal ins Reine?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Installed Software function

  Alt 24. Mai 2011, 09:34
Ich denke mal, so ist es besser. Ob mein Stil euch aber gefällt, ist eine andere Sache
Delphi-Quellcode:
procedure GetUninstallList(AList: TStrings);
const
  UNINSTALL_PATH = 'Software\Microsoft\Windows\CurrentVersion\Uninstall\';
  DISPLAY_NAME = 'DisplayName';
var
  LIndex: Integer;
begin
  AList.Clear;
  With TRegistry.Create do
  try
    RootKey := HKEY_LOCAL_MACHINE;
    If KeyExists(UNINSTALL_PATH) and OpenKeyReadOnly(UNINSTALL_PATH) then
    begin
      GetKeyNames(AList);
      CloseKey;
    end;
    LIndex := 0;
    While LIndex < AList.Count do
    begin
      If not (OpenKeyReadOnly(UNINSTALL_PATH + AList[LIndex]) and
        ValueExists(DISPLAY_NAME)) then AList.Delete(LIndex)
      else begin
        AList[LIndex] := ReadString(DISPLAY_NAME);
        Inc(LIndex);
      end;
      CloseKey;
    end;
  finally
    Free;
  end;
end;
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#9

AW: Installed Software function

  Alt 24. Mai 2011, 09:55
<falsche Bedenken gelöscht>

Geändert von Satty67 (24. Mai 2011 um 09:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Installed Software function

  Alt 24. Mai 2011, 09:57
Dann ist es einer weniger
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:03 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