Schriftart in die .exe übernehmen!

SirTurner

Grünschnabel
Hi
Hab mir mal ein kleines prog geschrieben!
Habe für die labels eine spezielle schriftart genommen
Als ich das prog auf einem anderen Pc testen wollt stand die Schrift normal in Arial da!
Jetzt meine Frage:
Kann ich die Schriftart mit in die .exe kompilieren, so das man auf dem ausführendem PC die schriftart nicht extra installieren muss
 
ob das geht, weiß ich leider net. aber versuch's doch einfach so:
lass die schriftart mit deinem programm (bzw. umgekehrt) mit einem installer auf das system installieren. dadurch würde die haupt-exe automatisch kleiner und man kann auch außerhalb des programms auf diese schriftart zugreifen.

neyman
 
Es gibt doch die Moeglichkeit, .res Dateien in die exe miteinzubauen. Wenn die Schriftart also nicht alsozuviel Speicher belegt, koenntest du sie vielleicht in eine res-Datei packen. Ich hab damit aber noch nie gearbeitet, kann dir also leider nicht mehr als diese Idee praesentieren.

mfg Grimreaper
 
Hallo SirTurner,

Grimreaper hat recht.

Die Schrift als Custom-Resource einbinden und dann beim Start deines Programms prüfen, ob Schrift im Fonts-Ordner vorhanden ist und notfalls aus der Resource die Schrift installieren.

Mit dem Aufruf:

Dim Buffer as Variant

Buffer = LoadResData(101, "Custom")

Open "C:\Windows\Fonts\" & Schriftname For Binary As #1
Put #1, , Buffer
Close #1

Probier dies mal aus.

ANI
 
@ANI viele Leute haben ihr Windows unter C:\Windows, und viele nicht :)

Installierte Schriftarten kannst du so ermitteln:
Code:
For i = 0 To Screen.FontCount - 1
    Debug.Print Screen.Fonts(i)
Next
Dieser Code gibt die Namen aller installierten Fonts im Direktfenster aus.
Hier musst du nur in der Schleife prüfen ob der Name gleich dem Namen deines Fonts ist, wenn ja ist er installiert.
Installation würde ich wie schon gesagt wurde im Setup-Programm erledigen.
 
Lieber Retlaw,

wenn Du der Meinung bist, daß die Hilfe von unserer Seite nicht kleinlich genug erklärt wurde, dann teile uns dies bitte direkt mit und werte unsere Hilfe nicht so ab.

Ich hätte meine Antwort auch so genau schreiben können, doch dann kann ich das Programm von 'SirTurner' auch selber schreiben.

Wir selbst wissen alle, das jeder User sein Windows-Verzeichnis auch anders benennen kann. API-Aufruf: GetWindowsDirectory(sTemp, Len(sTemp))

Dann würde der Code dann so aussehen:

Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer as String, ByVal nSize as Long) as Long

Function GetWinDir() as String

Dim sTemp as String * 256, iLen as Integer

iLen = GetWindowsDirectory(sTemp, Len(sTemp))
GetWinDir = Left$(sTemp, iLen)

End Function

if dir(GetWinDir() & "\Fonts\" & Schriftname,vbNormal + vbArchive)<> vbNullString then

Dim Buffer as Variant

Buffer = LoadResData(101, "Custom")

Open GetWinDir() & "\Fonts\" & Schriftname For Binary As #1
Put #1, , Buffer
Close #1

end if

Ich hoffe Deine Äußerung war nicht so gemeint, wie ich sie verstanden habe.

Hier geht es allein um Hilfe für andere User.

ANI
 
Original geschrieben von ANI
Ich hoffe Deine Äußerung war nicht so gemeint, wie ich sie verstanden habe.
Genau so ist es.

Ich wollte hier keine Lösung abwerten, sondern nur weitere Möglichkeiten mit VB-Hausmitteln anbieten.
 
Zurück