Fonts mithilfe eines selbstprogrammierten Programms install.

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Fonts mithilfe eines selbstprogrammierten Programms install.

Beitrag von Vermilion »

Ich wollte mal Fragen, was muss ich in den Quelltext schreiben, damit mein Programm eine Schrift im System installiert?

Mit CopyFile(VonHier, NachDa) habe ich es schon versucht, hat aber nicht geklappt. Wahrscheinlich wegen dem Windows Schreibschutz, oder was das war...

Natürlich habe ich selber etwas geforscht, und in der Registry so einen Ordner, oder wie man das noch mal nennt, gefunden, indem für jede installierte Schriftart ein Schlüssel drin war.

Also muss ich einen Schlüssel anlegen und die Datei anschließend kopieren, oder?
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Fonts mithilfe eines selbstprogrammierten Programms inst

Beitrag von Kiffi »

> Mit CopyFile(VonHier, NachDa) habe ich es schon
> versucht, hat aber nicht geklappt. Wahrscheinlich wegen dem Windows
> Schreibschutz, oder was das war...

Fehlermeldung?

Grüße ... Kiffi, oder so...
a²+b²=mc²
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

du musst aber afaik nicht unbedingt eine schriftart installieren, um sie nutzen zu können...

ich bin mir jetzt nicht wirklich sicher über den zugriff der DrawText-sachen,
aber vielleicht geht es ja, wenn dich der zeichensatz im selben pfad wie die exe befindet.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

Kaeru Gaman hat geschrieben:du musst aber afaik nicht unbedingt eine schriftart installieren, um sie nutzen zu können...

ich bin mir jetzt nicht wirklich sicher über den zugriff der DrawText-sachen,
aber vielleicht geht es ja, wenn dich der zeichensatz im selben pfad wie die exe befindet.
nein, es reicht nicht, wenn der Font im selben Pfad ist. Hab das mal ausprobiert und mich maßlos geärgert weil ichs nicht gebacken bekommen habe lol..
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

hm.. schade eigentlich...

das bringt uns zurück zum topic:

weiß jemand, wie das geht?

besonders für die kollegen, die installer schreiben, wäre das praktisch.
wenn man beim zusammenstellen des pakets das gleich als schriftart
aufnehmen kann, die dann beim install ins FONTS geschrieben wird,
das wär doch mal was.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> weiß jemand, wie das geht?

CopyFile("C:\LBRITE.TTF", "C:\WINDOWS\Fonts\LBRITE.TTF")

... wobei das Fonts-Verzeichnis latürnich mit SHGetSpecialFolderLocation_()
korrekt ermittelt werden muss.

Solange wir keine Fehlermeldung von 'the Nameless' bekommen, können wir
lange herumrätseln, warum es bei ihm nicht klappt.

Grüße ... Kiffi
a²+b²=mc²
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

hm.. könnte man nicht auf den API aufruf SHGetSpecialFolderLocation_() verzichten, wenn man

Code: Alles auswählen

CopyFile("C:\LBRITE.TTF", "%system%\Fonts\LBRITE.TTF") 
benutzt?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

noja.. die fonts sind ja keine normalen dateien die im FONT-verzeichnis von windoof sind, sondern "installiert"...
das merkt man z.b. wenn man sich die dateinamen ansieht oder eine TTF-Font-datei ins FONT-verzeichnis "kopiert"

also die datei "reinkopieren" reicht glaub ich da nich, oder?
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Jilocasin hat geschrieben:also die datei "reinkopieren" reicht glaub ich da nich, oder?
tja das ist halt die frage....
ob PB einfach nach der Datei im FONTS-verzeichnis guckt, oder ob es in der registry sucht...
da man jedoch beim einschalten den Fontnamen und nicht den dateinamen angeben muss,
befürchte ich, dass PB die API-funktion benutzt, die über die registry läuft...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Fonts müssen registriert werden in der Registry, ansonsten sind es tote
Dateien im Fonts-Ordner. Diese Registrierung erfordert Adminrechte ab
Win2k. Leider kenne ich die passende API nicht, um die Einträge
vorzunehmen. Ob Windows die Einträge aus der Win.ini überträgt ist mir nicht
bekannt, genausowenig wie das Format (ist bei mir leer der Schlüssel [fonts]

Entweder den Font als Resource in die Exe und von dort nutzen, ist die
sauberste Lösung, oder einen Installer benutzen. Als Datei im
Programmverzeichnis ist er wohl auch eingeschränkt nutzbar, hat dann aber
nichts im Fonts-Ordner zu suchen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten