Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie in registry schreiben ? (https://www.delphipraxis.net/106411-wie-registry-schreiben.html)

ghost007 10. Jan 2008 14:31


Wie in registry schreiben ?
 
Hallo,

ich hab folgende datei als .reg im netz gefunden, um fonts zu installieren
Zitat:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]
"11px2bus (TrueType)"="11px2bus.ttf"
"11px3bus (TrueType)"="11px3bus.ttf"
"11pxbus (TrueType)"="11pxbus.ttf"
"13pxbus (TrueType)"="13pxbus.ttf"
"5px2bus (TrueType)"="5px2bus.ttf"
"5pxbus (TrueType)"="5pxbus.ttf"
"6px2bus (TrueType)"="6px2bus.ttf"
"6pxbus (TrueType)"="6pxbus.ttf"
"7px2bus (TrueType)"="7px2bus.ttf"
"7px3bus (TrueType)"="7px3bus.ttf"
"7px4bus (TrueType)"="7px4bus.ttf"
"7pxbus (TrueType)"="7pxbus.ttf"
"7pxkbus (TrueType)"="7pxkbus.ttf"
"8pxbus (TrueType)"="8pxbus.ttf"
"9px2bus (TrueType)"="9px2bus.ttf"
"9px3bus (TrueType)"="9px3bus.ttf"
"9pxbus (TrueType)"="9pxbus.ttf"
"icq (TrueType)"="icq.ttf"
Mit welchem aufruf kann ich genau das selber in die registry schreiben lassen ?
Mein Ansatz bis jetzt lautet so:

Delphi-Quellcode:
   Reg := TRegistry.Create;
   try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    Reg.OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts', True);
    //was muss hier rein ??
    Reg.CloseKey;
   finally
    Reg.Free;
MfG - Ghost007

dazar_t 10. Jan 2008 14:37

Re: Wie in registry schreiben ?
 
http://www.dsdt.info/tutorials/registry/
:D

marabu 10. Jan 2008 14:41

Re: Wie in registry schreiben ?
 
Hallo Christian,

wenn du es nicht unbedingt programmieren willst: Es genügt ein Doppelklick auf die Datei. Aber auch mit ShellExecute() und dem Verb 'open' werden die Daten in die Registry übernommen.

Grüße vom marabu

himitsu 10. Jan 2008 14:43

Re: Wie in registry schreiben ?
 
ansonsten kann man auch hier in der Hier im Forum suchenTRegistry etwas rumstöpern,
aber vorallem in der OH Delphi-Referenz durchsuchenTRegistry steht alles dazu.


aber: willst du dieses nur einmal eintragen (dann ruf einfach die .reg-Datei auf - geht auch per ShellExecute)

und dann gab's da nicht passende WinAPIs zum registrieren/installieren von Schriftarten?

so mußt du doch bestimmt erstmal den REG-Eintrag vornehmen und dann vermutlich entweder Windows neu starten oder irgendwie Windows mitteilen daß du was geändert hast.
(Windows wird doch warscheinlich nicht ständig da reinsehn, ob's was Neues gibt)

ghost007 10. Jan 2008 14:48

Re: Wie in registry schreiben ?
 
Also,
das mit dem execute wollte ich nicht machen. Ich wollte das schon per delphi reinschreiben.
Das neuestarten ist kein problem, das ist mir auch klar, das es gemacht werden muss.
Sollte es damit gehen?

Delphi-Quellcode:
//Bsp für den icq font
Reg := TRegistry.Create;
   try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    Reg.OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts', True);
    Reg.WriteString('icq (TrueType)','icq.tff');
    Reg.CloseKey;
   finally
    Reg.Free;
MfG - Ghost007

himitsu 10. Jan 2008 15:01

Re: Wie in registry schreiben ?
 
wenn der Regeintrag reicht, dann dürfe es gehn.

und dann noch die Datei nach %windir%/Fonts (C:\Windows\Fonts) kopieren

wobei es bei mir (damals unter Win2000 war das noch) ausreichte die Datei(en) einfach nur in das Fontsverzeichnis zu kopieren
und das sollte doch jetzt auch noch ausreichen?
(OK, hiermit kann man wohl den angezeigten Fontnamen festlegen, aber wenn man den im Font gespeicherten nimmt, dann gibt's ja bestimmt keine Probleme?)

RavenIV 10. Jan 2008 15:02

Re: Wie in registry schreiben ?
 
Zitat:

Zitat von ghost007
Sollte es damit gehen?

Sollte passen.
Aber such lieber nach den WinAPI-Funktionen zum Fonts registrieren.

ghost007 10. Jan 2008 15:22

Re: Wie in registry schreiben ?
 
Ich teste das ma so, danke.
Ich meld mich dann wieder :)

MfG - Ghost007

ghost007 10. Jan 2008 17:17

Re: Wie in registry schreiben ?
 
funktioniert wunderbar, danke

MfG - Ghost007


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 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 by Thomas Breitkreuz