AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Programm hängt bei AddFontResource

Programm hängt bei AddFontResource

Offene Frage von "hoika"
Ein Thema von Schubi · begonnen am 2. Feb 2005 · letzter Beitrag vom 10. Mai 2016
Antwort Antwort
Schubi

Registriert seit: 4. Nov 2003
Ort: Happurg (Nürnberg)
331 Beiträge
 
Delphi 2006 Professional
 
#1

Programm hängt bei AddFontResource

  Alt 2. Feb 2005, 08:33
Hallo zusammen!
hab jetzt vermehr Probleme mit einem Programm was schon ewig im Einsatz ist.
Und zwar installiere ich beim starten des Programms temporär ein paar Schriftarten.
Folgender Code:
Delphi-Quellcode:
Try
  AddFontResource(PChar(EXEPath+'Dateien\Verdana.TTF'));
  AddFontResource(PChar(EXEPath+'Dateien\Webdings.TTF'));
  AddFontResource(PChar(EXEPath+'Dateien\Wingding.TTF'));
  AddFontResource(PChar(EXEPath+'Dateien\WINGDNG2.TTF'));
  AddFontResource(PChar(EXEPath+'Dateien\WINGDNG3.TTF'));
  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
except
end;
Das Problem: Auf manchen Rechnern (3 an der Zahl) dauern diese 6 Zeilen 2 Minuten, auf einem anderen Rechner hängt sich mein Programm auf ewig auf! Auf anderen Rechnern funktioniert der Code problemlos!

Woran kann das liegen?
Das Programm bleibt einfach stehen...

Hat irgendjemand ne Idee?

Gruß,

Schubi
Christian Schubert
Ich fange gerade erst an, den Umfang meiner Ahnungslosigkeit zu begreifen...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Programm hängt bei AddFontResource

  Alt 2. Feb 2005, 08:37
Existieren die Fonts eventuell auf den Problemrechnern schon? Oder allgemeiner gefargt, was unter scheidet die Rechner, auf denen es geht von denen auf denen es so lange dauert bzw. gar nicht geht?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Schubi

Registriert seit: 4. Nov 2003
Ort: Happurg (Nürnberg)
331 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Programm hängt bei AddFontResource

  Alt 2. Feb 2005, 08:45
Die Fonts sind auf fast allen Rechnern schon installiert, das scheint aber nichts zu machen.
Die Dateien die ich Registrieren will existieren natürlich auch
Ich hab mal versucht die Fonts zu deinstallieren, aber das hat nichts geholfen.

Unterschiede zwischen den Rechnern wüsste ich nicht. Handelt sich um WinXP Prof. Der Rechner wo es garnicht geht wurde erst vor nem Monat neu gemacht, dann lief es ne Weile, und jetzt mit einmal nicht mehr. Auf dem Rechner war das Problem aber vor der Neuinstallation auch schon (da hats aber nur ewig gedauert, ging also dann nach ner minute oder so weiter). Die Neuinstallation war verbunden mit nem Motherboard-Wechsel, also am Board liegts nicht
Auf Win98 PCs läuft es überall. Probleme macht nur XP
Christian Schubert
Ich fange gerade erst an, den Umfang meiner Ahnungslosigkeit zu begreifen...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
40.090 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Programm hängt bei AddFontResource

  Alt 9. Mai 2016, 09:37
Nur zur Info, weil wir das selbe Problemchen haben, seit Längerem.

Mein Code prüft allerdings vorher, ob der Font schon installiert ist und wenn, dann wird nichts gemacht. (Screen.Fonts.IndexOf)

Bei uns bleibt es im AddFontResourceEx+FR_PRIVATE hängen.
Dafür sind auch keine Rechte nötig, welche Probleme rumzicken könnten.



Warum es hängen bleibt ... keine Ahnung. Es tritt nicht erkennbar auf Kunden-PCs auf, wo diese Funktion irgendwann verwendet wird.

Die Lösung für uns ist das manuelle permanente installieren der Schriftarten.



Sollte es beim SendMessage hängen bleiben, dann eventuell so versuchen.
Delphi-Quellcode:
if SendMessageTimeout(HWND_BROADCAST, WM_FONTCHANGE, 0, 0, SMTO_NORMAL, 2500, PLongWord(nil)^) = 0 then
  PostMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
Oder nur das PostMessage, wenn es einem egal ist, wenn die Fonst im Delphi nicht sofort refresht werden. (alternativ PostMessage und SendMessage direkt an das eigene Appliaction.Handle)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 9. Mai 2016 um 09:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
40.090 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Programm hängt bei AddFontResource

  Alt 10. Mai 2016, 10:44
Ohhh, zufällig will ein Kunde gerade in den Windows-Ereignislogs rausgefunden haben, dass bei ihm MS Office das Laden der Fonts blockiert.
Aber nichts Genaues weiß ich noch nicht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.134 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Programm hängt bei AddFontResource

  Alt 10. Mai 2016, 14:47
Hallo,
es gibt doch diese "Schnellstart" (?) - Leiste von Office.

Die hatte ich schon mal per simplen OLE als Problemkind aus dem Autostart ruasgeworfen.


Heiko
Heiko
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf