[delphi] Regeditor parameters

Pagina: 1
Acties:

  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Ik heb nu zover gekregen, dat ik in delphi een .reg bestand kan openen. Deze voegt dus een paar waardes aan het register toe. Alleen is nu het probleem, dat ie eerst om een bevestiging vraagt.

Hij vraagt of je de waardes wilt toevoegen, en geeft een melding als dat gedaan is.

Nu is mijn vraag, of je die meldingen met bepaalde parameters kan omzeilen of zo. Ik heb geen idee.

Dit is de code die ik gebruik om 't op te roepen...
code:
1
ShellExecute(GetDesktopWindow, NIL, PChar('IERenamer2002.reg'), NIL, NIL, SW_NORMAL);

Alvast bedankt voor je reply! ;)

  • Delphi32
  • Registratie: Juli 2001
  • Laatst online: 01:20

Delphi32

Heading for the gates of Eden

Zoals jij dat nu doet, kan je niet om de messageboxen heen. Die worden door Windows gegenereerd als je een .reg bestand opent; Windows interpreteert dat als 'ah, iemand wil deze waarden in de registry invoeren', en meent vervolgens de gebruiker met nutteloze boxes om de oren te moeten slaan.

Je hebt 2 alternatieve routes:
1. proberen een api-call te vinden die een .reg bestand kan inlezen en invoeren in het register; dikke kans dat daarmee de messageboxen omzeild worden;
2. bestand zelf inlezen, parsen en met TRegistry object de waarden wegschrijven in je registry.

Mocht je route 1 kiezen, dan ben ik benieuwd of je wat kan vinden. Moet je in de SDK eens zoeken onder RegLoadKey.

Daar staat wat grappigs bij:
code:
1
If the function succeeds, the return value is ERROR_SUCCESS.

>:)

Verwijderd

Gebruik -S :)
code:
1
2
  ShellExecute(Handle, 'open', 'regedit.exe', PChar('-S ' + RegFileName),
    nil, SW_SHOWNORMAL);

  • Delphi32
  • Registratie: Juli 2001
  • Laatst online: 01:20

Delphi32

Heading for the gates of Eden

-S = Silent ?
Hmm weer wat geleerd :)

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Je kan het register in delphi net zo benaderen als een ini-file. Er staat zelfs een voorbeeld-project in de examples directory. En zoek ook eens in de help op registry. Suc6

  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Op zaterdag 15 juni 2002 00:47 schreef DiFool het volgende:
Gebruik -S :)
code:
1
2
  ShellExecute(Handle, 'open', 'regedit.exe', PChar('-S ' + RegFileName),
    nil, SW_SHOWNORMAL);
Thanks man! Werkt perfect! Zo, nu wordt m'n proggie tenminste een beetje beter.
Ik ga 'm zo snel mogelijk uploaden.

Hier staat ie nu: (misschien nog oude versie)
www.ironage.nl/oikoyama/ierenamer/nl/
Oude versie: 1.02.xp.2002
Nieuwe versie: 2.xx.xp.2002

  • maikel
  • Registratie: Januari 2001
  • Laatst online: 04-09 16:24
Waarom gebruik je niet gewoon TRegistry in Delphi ?
Lijkt mij een stuk handiger dan via een extern programma te werken.

  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
TRigestry? Ik ben nog een beetje duf in Delphi, doe het pas sinds 3 weken, maar waar kan ik die vinden? Is dat zo'n component?
En kun je daarmee ook uit het register lezen?

Kan iemand mij dat a.u.b. uitleggen?

  • Yohost!
  • Registratie: Juni 2000
  • Laatst online: 05-09 15:34
TRegedit is een class. Voeg Regedit toe aan je uses en dan kun je gebruik maken van TRegedit:
code:
1
2
3
4
5
6
7
8
9
10
11
var
  Reg: TRegedit;
begin
  Reg := TRegedit.Create;
  try
    Reg.RootKey = HKEY_LOCAL_MACHINE;
    enz, enz, enz
  finally
    Reg.Free
  end;
end;

  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Ah zow. Maar nu nog een vraagje voor de final tuch, want ik denk dat ik het dan wel door heb. Hoe kun je met dat, uit het register keys halen en plaatsen?

  • Yohost!
  • Registratie: Juni 2000
  • Laatst online: 05-09 15:34
Zie help bij TRegistry.

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Idd, in de help kwam ik dit tegen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm1.WMEndSession(var Message: TWMEndSession);
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CURRENT_USER;
    if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\RunOnce', True) then
    begin
    Reg.WriteString('MyApp','"' + ParamStr(0) + '"');
    Reg.CloseKey;
    end;
  finally
    Reg.Free;
    inherited;
  end;

end;

Doe er je voordeel mee. :)

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • The-Source
  • Registratie: Augustus 2001
  • Laatst online: 04-09 09:03
Op zondag 16 juni 2002 21:39 schreef Yohost! het volgende:
TRegedit is een class. Voeg Regedit toe aan je uses en dan kun je gebruik maken van TRegedit:
code:
1
2
3
4
5
6
7
8
9
10
11
var
  Reg: TRegedit;
begin
  Reg := TRegedit.Create;
  try
    Reg.RootKey = HKEY_LOCAL_MACHINE;
    enz, enz, enz
  finally
    Reg.Free
  end;
end;
Het is toch Registry toevoegen aan de uses en dan in een procedure de volgende code om te schrijven:
code:
1
2
3
4
5
6
7
8
9
procedure TForm1.SaveMRU;
    var Reg: TRegistry;
      i: integer;
    begin
    Reg:=TRegistry.create;
    Reg.OpenKey('Software\Jouw prog naam\mapje\key naam',true);
    Reg.WriteString('File'+intToStr(i),FileList[i]);
    reg.closeKey;
    reg.free

Met de Reg.OpenKey ga je gelijk naar HKEY_current_user dacht ik.

Taal fouten inbegrepen ;)

Pagina: 1