مشاهده نسخه کامل
: افزودن Font به ویندوز
kasra_khan2003
17-08-2012, 22:10
سلام،
میخوام در هنگام Load شدن فرم، یه فونت به پوشه Fonts ویندوز اضافه بشه.
خیلی جستجو کردم، ظاهراً باید از AddFontResource استفاده کنی، اما این هم کارساز نبود. از Copy هم استفاده کردم اما اصلا فونت رو کپی نمیکنه. نمیدونم مشکلش کجا هست.
szh_1367
18-08-2012, 00:09
سلام،
میخوام در هنگام Load شدن فرم، یه فونت به پوشه Fonts ویندوز اضافه بشه.
خیلی جستجو کردم، ظاهراً باید از AddFontResource استفاده کنی، اما این هم کارساز نبود. از Copy هم استفاده کردم اما اصلا فونت رو کپی نمیکنه. نمیدونم مشکلش کجا هست.
دقیق یادم نیست اما فکر میکنم باید از api ویندوز استفاده کنید :9:
اما از طریق کپی کردن خیلی راحت میتوانید این کار رو انجام دهید نمونه کد
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
kasra_khan2003
18-08-2012, 00:25
دقیق یادم نیست اما فکر میکنم باید از api ویندوز استفاده کنید :9:
اما از طریق کپی کردن خیلی راحت میتوانید این کار رو انجام دهید نمونه کد
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
من با VB مینویسم و این اگر اشتباه نکنم C# هست. هرچند فرقی نمیکنه، معادل همین رو تو VB نوشتم اما کار نکرد...
تو این آدرس به مشکل شما پرداخته شده، حالا نکته مهم اینجاست که اگر میخواید تغییرات دائمی باشه و بعد از ریبوت شدن ویندوز فونت موردنظر پاک نشه باید حتما تغییراتی رو که انجام دادید رو در رجیستری ویندوز هم وارد کنید. (راهنمایی لازم در همین آدرس قرار داره.)
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
kasra_khan2003
20-08-2012, 20:11
تو این آدرس به مشکل شما پرداخته شده، حالا نکته مهم اینجاست که اگر میخواید تغییرات دائمی باشه و بعد از ریبوت شدن ویندوز فونت موردنظر پاک نشه باید حتما تغییراتی رو که انجام دادید رو در رجیستری ویندوز هم وارد کنید. (راهنمایی لازم در همین آدرس قرار داره.)
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
ممنون، ولی این به زبان VB نیست، زیاد خوب متوجه نشدم.
ضمن اینکه چون میخوام تو Crystal Report از فونت استفاده کنم، فکر کنم حتماً باید کامپیوتر Restart بشه. اما اگر اشتباه میکنم و نیاز به Restart نیست، صرفاً در صورتی که فقط تو همون بازه ی زمانی استفاده از نرم افزار، فونت کار کنه، و بعد Restart کار نکنه هم مشکلی ندارم.
من تو عمرم اصلن از کریستال ریپورت استفاده نکردم:دی
ولی شما بیاید و از این کد استفاده کنید، و همزمان در پروژه تون از کریستال استفاده کنید ببینید نیاز به restart هست یا خیر.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
نمونه ی کامل تر:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای تبدیل کدهای C# به VB از آدرس روبرو میتونید کمک بگیرید : [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
kasra_khan2003
20-08-2012, 21:27
من تو عمرم اصلن از کریستال ریپورت استفاده نکردم:دی
ولی شما بیاید و از این کد استفاده کنید، و همزمان در پروژه تون از کریستال استفاده کنید ببینید نیاز به restart هست یا خیر.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای تبدیل کدهای C# به VB از آدرس روبرو میتونید کمک بگیرید : [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
مشابه این رو قبلاً استفاده کردم، اما کار نکرد.
یه جا تو سایت MSDN بود، که لینکش رو الان هرچی میگردم پیدا نمیکنم، اما طبق گفته ی اون، اگر بخوای همون لحظه از فونت استفاده کنی و بعد Restart دیگه نخوایش، از دستور AddFontResourceA باید استفاده کرد. (جواب نداد!)
اما اگر بخوای بعد Restart هم کار کنه، باید اول تو فولدر فونت کپی کنی و بعد از AddFontResourceA استفاده کنی (باز هم جواب نداد).
به چه صورت فونت مورد نظرتون رو برای کریستال ریپورت ست می کنید؟ اینکار رو بصورت رانتایم برای فیلد موردنظرتون انجام بدید ببنید درست میشه یا خیر.
بسم الله.
سلام.
این یه نمونه پروژه تغییر فونت در کریستال ریپورت هست که میتونید ازش استفاده کنید. ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
اگر میخوای موقع نصب نرم افزارت فونت نصب بشه موقع Setup مثل شکل زیر استفاده کن:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
برای درج فونت در سیستم عامل هم میتونید از api به نام gdi32.dll استفاده کنید به شکل زیر که دوستان هم به اون اشاره ای کردند:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
نمونه کد سی شارپ که میتونید ازش استفاده کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق و سربلند باشید در پناه حق.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.