2010-09-04 18 views
5

Burada karanlıkta çekim yapıyorum - aramalar bu konuda verimli görünmüyor. Yazı tiplerini yüklemek ve kaldırmak için bir .NET programı oluşturmak istiyorum. Bir şey yüklüyse veya kaldırılırsa, bir şeyler yapmak için bir program çalıştırmak istiyorum.Monitor Windows'ta Fontları Yükle/Kaldır

Belki bir Windows Hizmeti düşünmüştüm, ancak yazı tiplerini nasıl izleyeceğimi anlayamadım. Bu doğru yol mu ve eğer öyleyse, neye bakıyorum? Değilse, bunu yapmanın farklı bir yolu var mı?

cevap

2

Sen yazı değişiklikleri için kayıt izleyebilir. süreç monitöre bakarak bunu Microsoft \ Windows NT \ CurrentVersion \ Fonts

+0

Bu ne gerektirir? '.Count'un değişip değişmediğini görmek için her saniyede bir sorguyu çalıştıralım mı? –

+0

Uygulama çalışıyorsa, etkinlik en iyisi olur. Olayı aldıktan sonra, değişiklikleri kontrol etmek için kayıt defterine göz atabilirsiniz. Başlangıçta, değişiklikleri kontrol etmek için kayıt defterindeki yazı tiplerini sıralayabilirsiniz. –

1

WM_FONTCHANGE windows mesajı için bir kanca oluşturabilirsiniz.

onay bu makalede Using Window Messages to Implement Global System Hooks in C#

+0

Windows bu mesajı yükleme/kaldırmada gönderir mi? Ya da, daha doğru tahmin ediyorum, Windows 'AddFontResource' veya' RemoveFontResource' kullanıyor mu? –

+0

@Otaku, Yanıtla Msdn Bağlantısını kontrol edin fo Sistemdeki yazı tiplerini ekleyen veya kaldıran bir uygulama (örneğin, AddFontResource veya RemoveFontResource işlevini kullanarak), bu iletiyi tüm üst düzey pencerelere göndermelidir.' – RRUZ

+0

Yaptım. Ne yazık ki, 'AddFontResource' kalıcı olarak bir font yüklemiyor. Http://msdn.microsoft.com/en-us/library/dd183326(VS.85).aspx dosyasından * Bu işlev, yazı tipini yalnızca geçerli oturum için yükler. Sistem yeniden başlatıldığında, yazı tipi mevcut olmayacaktır. Sistemi yeniden başlattıktan sonra bile yazı tipinin yüklenebilmesi için yazı tipinin kayıt defterinde * listelenmesi gerekir. Bu nedenle yazı tipi eklentilerini izlemek, hangi yazı tiplerinin gerçekten yüklü olduğunu ortaya çıkarmaz. –

0

\ 7.

HKEY_LOCAL_MACHINE \ SOFTWARE ben Yazı Tipleri Hakkında bu kadar bilmiyorum o yüzden sanılabileceği pencerelerde burada bilgileri saklar bakın ama sanırım bunların hepsi% windir% \ Fonts uygulamasında yüklü.

Bu durumda, herhangi bir değişiklik için bu dizini izlemek üzere hizmetinizde bir FileSystemWatcher ayarlayabilmeniz gerekir.

+0

Çoğu, ancak hepsi değil (Vista/7 yazı tiplerinin% windir% \ Fonts dışında yüklenmesine izin verir). –

İlgili konular