Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Console und registry ? (https://www.delphipraxis.net/102910-console-und-registry.html)

k4ni 6. Nov 2007 22:00


Console und registry ?
 
Hey leute, ich will eine console application machen die zwei registry einträge löscht.


Ich hab das benützt: (In einer normalen delphi Form)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var regist: TRegistry;
begin
  regist:=TRegistry.Create;
  regist.RootKey:=HKEY_CURRENT_USER;
  regist.OpenKey('Software\Microsoft\Windows\CurrentVersion\Runonce', true);
  regist.DeleteValue('Ad-killer');
  regist.free;
  regist.RootKey:=HKEY_LOCAL_MACHINE;
  regist.OpenKey('Software\Microsoft\Windows\CurrentVersion\Runonce', true);
  regist.DeleteValue('Ad-killer');
  regist.free;
end;
und dann hab ich den code in der console appliction so:

Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils, Registry;

var regist: TRegistry;
begin
  regist:=TRegistry.Create;
  regist.RootKey:=HKEY_CURRENT_USER;
  regist.OpenKey('Software\Microsoft\Windows\CurrentVersion\Runonce', true);
  regist.DeleteValue('Ad-killer');
  regist.free;
  regist.RootKey:=HKEY_LOCAL_MACHINE;
  regist.OpenKey('Software\Microsoft\Windows\CurrentVersion\Runonce', true);
  regist.DeleteValue('Ad-killer');
  regist.free;
  writeln('done');
  readln;
end.
Doch der compiler gibt mir den error:
Delphi-Quellcode:
[Error] Project2.dpr(11): Undeclared identifier: 'HKEY_CURRENT_USER'
[Error] Project2.dpr(15): Undeclared identifier: 'HKEY_LOCAL_MACHINE'
Ich versteh ihn eigentlich schon, doch was kann ich machen damit es geht?

mkinzler 6. Nov 2007 22:04

Re: Console und registry ?
 
Binde mal noch Windows ein.

dominikkv 6. Nov 2007 22:08

Re: Console und registry ?
 
oder du erstellst 2 neue constanten:
Delphi-Quellcode:
const
  HKEY_CURRENT_USER    = DWORD($80000001);
  HKEY_LOCAL_MACHINE   = DWORD($80000002);

k4ni 6. Nov 2007 22:31

Re: Console und registry ?
 
Zitat:

Zitat von mkinzler
Binde mal noch Windows ein.

Bin ich dumm...hät ich selber drauf kommen können...DANKE!

Zitat:

Zitat von dominikkv
oder du erstellst 2 neue constanten:
Delphi-Quellcode:
const
  HKEY_CURRENT_USER    = DWORD($80000001);
  HKEY_LOCAL_MACHINE   = DWORD($80000002);

Mhh jetzt kommt das DWORD unbekannt ist, ich glaub man braucht auch Windows unit für DWORD. Danke trotzdem.

Nur jetzt noch ne kleine frage.
Das ist jetzt mein kompletter code:
Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils, Registry, Windows;

 var regist: TRegistry;

begin
  regist:=TRegistry.Create;
  regist.RootKey:=HKEY_CURRENT_USER;
  regist.OpenKey('Software\Microsoft\Windows\CurrentVersion\Runonce', true);
  regist.DeleteValue('Ad-killer');
  regist.free;
  regist.RootKey:=HKEY_LOCAL_MACHINE;
  regist.OpenKey('Software\Microsoft\Windows\CurrentVersion\Runonce', true);
  regist.DeleteValue('Ad-killer');
  regist.free;

  writeln('done');
  readln;
end.
Doch er macht das nur kurz auf und beachtet das writeln oder/und readln nicht. Wieso?

dominikkv 6. Nov 2007 22:41

Re: Console und registry ?
 
setz doch nen Haltepunkt und debugge.
vllt kommt er ja garnicht bis readln, sondern bricht vorher ab...

ansonsten solltest du einen ressourcenschutzblock verwenden, also try...finally...end;

edit:
ohh ja... warum gibst du regist in zeile 15 frei und greifst danach nochmal darauf zu?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 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