افزونه نصب فونت در 7 بدون نیاز به run as adminstrator

mbsa

Active Member
ویندوز سون به خاطر امنیت بالایی که داره اجازه نمی ده که mmb یا فایلهای کامپایل شده ی آن تغییر در درایو ویندوز بده . پس ما نمی تونیم با mmb فونت نصب کنیم .خیلی از کاربرا از جمله خودم این مشکل را داشتیم . من با استفاده از برنامه ی setup factory 8 تونستم این مشکل را حل کنم.
اول برنامه را از یکی از دو لینک زیر دانلود کنید (من در بانک نرم افزاری lord8 این نرم افزار را پیدا کردم . و در اکثر بانک ها نرم افزاری ها هم هست.)
لینک 1 لینک 2


بعد از نصب برنامه فایل ضمیمه که پروژه ی همین برنامه است را باز کنید.از منوی project و زیر منوی add file (یا کلید insert)هر فونتی را خواستید اضافه کنید .(تعدادش مهم نیست.)سپس از منوی publish->build را انتخاب کنید.نوع setup را تغییر ندید (همون webخوبه) nextبزنید و فایل installer را بسازید . حالا هر وفت این فایل اجرا شد برنامه installer پوشه فونت ویندوز را پیدا می کنه و فونت را کپی می کنه (حتی اگه برنامه با run as administrator هم باز نشده باشه جواب می ده) ----به همین راحتی-----این پروژه ی installer را من طوری تغییر دادم که کاملاًمخفی باشه فقط پیغامی در آخرش ظاهر می شه که نشون بده فونت ها با موفقیت نصب شدند که می تونید اونا را از پنل actionسمت چپ و قسمت on post installتغییر بدید.
برنامه ی setup factory8 از فارسی هم پشتیبانی می کنه و برنامه کاربر پسند و آسونی هم هست می تونید کارهای دیگری هم با این برنامه انجام بدید.
این installerبه صورتی که می تونه هم پوشه فونت xp و هم seven را شناسایی کنه (البته من فقط رو سون تست کردم) در هر حال هر کسی رو xp امتحان کرد و جواب داد خبر کنه تا ما هم مطمئن بشیم.
سوالی داشتیم در خدمتیم !:green:
 

پیوست ها

  • font installer.rar
    5 کیلوبایت · بازدیدها: 165
آخرین ویرایش:

Shir20

Member
ممنون از شما
من فایل اجرایی نصب فونت را ساختم حالا در کجا پروژه ام قرارش بدم که قبل از اجرای اون،فونت مورد نظر کپی بشه

با سپاس
 

mbsa

Active Member
سلام
مطابق با مثالی که در فایل های پیوست آپلود کردم عمل کنید.
توجه داشته باشید که متغییر fontinstaller باید با آدرس فایل اجرایی که قبلا با برنامه Setup Factory ساخته شده است ، پرشود و متغیر mainprogram با آدرس فایل اصلی برنامه که همان فایل اجرایی بیلدر میباشد
موفق باشید.
 

پیوست ها

  • FONT.rar
    498 بایت · بازدیدها: 86

Shir20

Member
تشکر ولی راه ساده تری وجود ندارد . که با یه کد توی startup بتونیم اون فایل اجرایی ساخته شده را اجرا کنیم. مگه اون فایلی که تو setup factory ساخته ایم خودش محل درایو نصب ویندوز رو تشخیص نمیده . اگه میشه یه کم ساده تر بفرمایید چون من خیلی حرفه ای نیستم

با سپاس فراوان
 

mbsa

Active Member
سلام
ببینید اگه درست متوجه شده باشم شما تو تعریف متغیر ها مشکل دارید .
در این روش شما اول یه فایل اجرایی که همان نصب کننده فونت است میسازید این همون فایلی است که تو مثال قبلی گذاشته بودم.کار این فایل اینه که فایل ستاپ فونت ها که با برنامه setup factory ساخته شده را اجرا می کنه و بعد از اتمام مراحل نصب فایل اصلی اتوران را باز میکنه.
فرض می کنیم فایلی که با setup factory ساخته اید با نام fonts.exe ذخیره شده است . و فایل اتوران اصلی شما هم main.exe است .
حالا باید کدی که تو page start قرار میگیره اینطوری باشه :
PHP:
fontinstaller$='<SrcDir>\fonts.exe'
mainprogram$='<SrcDir>\main.exe'
Run("fontinstaller$","WAIT")
Run("mainprogram$","")
بازم اگه مشکلی یا ابهامی در استفاده از این روش داشتیددر خدمتم
 
آخرین ویرایش:

Shir20

Member
سلام دوست عزیز
ممنون از شما .من علاوه بر کدهایی که شما اون بالا نوشتید یه دو کد دیگه هم تو اولین صفحه پروژه ام دارم .آیا باید این کد هایی که شما نوشتید رو جلوتر از این کدها کپی کنم. نکته دیگه اینکه من حجم پروژه ام زیر 10 مگ هست و می خوام اون فایل نصب کننده فونت که با setup factory ساختم را نیز embedded کنم .در این صورت کد هایی که شما نوشتید چگونه تغییر می کند؟

راستی با این کار اگه فونت مورد نظر توی سیستم کاربر وجود داشته باشه مشکلی پیش نمیاد؟

با سپاس
 

mbsa

Active Member
سلام
فکر کنم شما درست متوجه این روش نشدید . فایلی اجرایی که ما با mmb میسازیم و ازطریق اون و کدهای بالا فایل اصلی اتوران را بازمیکنیم ، کاملاً مجزا از فایل اصلی اتوران شما باید باشه. یعنی این مراحل اتفاق میفته:
1-اجرای فایل نصب کننده اتوران که با بیلدر ساخته شده
2-اجرای فایل نصب کننده فونت ها که با setup factoryساخته شده
3-بستن فایل اجرایی بیلدر
4-اجرای فایل اصلی اتوران شما
به شما توصیه نمی کنم که فایل نصب فونت ها را embedded کنید چون هم برنامه را سنگین میکنه هم لزومی نداره . درهر حال کد اینطوری میشه :
PHP:
fontinstaller$='<Embedded>\fonts.exe'
mainprogram$='<SrcDir>\main.exe'
Run("fontinstaller$","WAIT")
Run("mainprogram$","")
راستی با این کار اگه فونت مورد نظر توی سیستم کاربر وجود داشته باشه مشکلی پیش نمیاد؟
مشکلی پیش نمیاد . ولی overwrite کردن فایل ها یا پرسیدن سوال برای کپی فایل ها بستگی به تنظیمات داخل setup factory داره.دوست عزیز من الان این برنامه را ندارم که چک کنم ولی فکر کنم overwrite کنه.
درضمن ممکنه سوال براتون پیش بیاد که چرا این قدر این روش دردسر داره ! ولی اینطور نیست چند بار که از این روش استفاده کنید به مزایای این روش پی می برید .
 

Shir20

Member
دوستان دیگه هم این روش امتحان کردند ؟روی سیستم های متفاوت؟. بقیه دوستان از چه دستورات یا ترفندهایی استفاده می کنند .؟

با تشکر
 

mbsa

Active Member
سلام
دوستان دیگه هم این روش امتحان کردند ؟
من این روش را روی 3سیستم با سخت افزارهای متفاوت و در ویندوز های xp و seven امتحان کردم و جواب میده و شاید یکی از بهترین روش برای نصب فونت باشه چون اوالاً نیازی به Run as administrator نداره و ثانیاً فولدر فونت را به طور اتوماتیک پیدا می کنه.
بقیه دوستان از چه دستورات یا ترفندهایی استفاده می کنند .؟
منظورتون را درست متوجه نشدم ، ترفندها را برا کدوم مرحله میخواید استفاده کنید؟
موفق باشید
 
آخرین ویرایش:

Shir20

Member
برای من که این روش جواب نمیده . و با اجرای برنامه پیام خطای زیر میده

نمیدونم چی کار کنم . mbsa روش دیگه ای سراغ نداری؟
 

پیوست ها

  • Untitled.png
    Untitled.png
    20.1 کیلوبایت · بازدیدها: 12

Shir20

Member
از دوستان عزیز عاجزانه خواهش می کنم هر کسی میتونه به بهترین نحو کدی بنویسه که باهاش بشه دو فونت TitrB و KoodakB را در هر سیستمی با هر ویندوزی نصب کنه .چون خداییش خیلی برام ضروری هست .خودم هم یه سرچی تو انجمن کردم اما به نتیجه درستی نرسیدم

با نهایت سپاس
 

mbsa

Active Member
سلام
اون error به خاطر setup نیست . به احتمال زیاد آدرس دهیتون مشکل داره .
درهر حال ، اینم ستاپ اماده
موفق باشید:green:
 

پیوست ها

  • Output.rar
    667.7 کیلوبایت · بازدیدها: 88

Shir20

Member
با تشکر از شما
من توی ساختن setup مشکل ندارم

اگه میشه یه بار دیگه به طور کامل نحوه آدرس دهی را توضیح دهید

می خوام فایل setup توی پوشه font در کنار فایل اجرایی پروژه به نام bazi بزارم .یعنی نمی خوام فایل setup امبدد بشه

با سپاس از شما
 

Shir20

Member
یه چیزی که الان متوجه شدم اینه که خود mmb که وقتی فونتی رو بهش امبد می کنیم و بعد دستور نصب اون فونت امبدد شده میدیم فونت رو در این مسر (برای من که ویندوز 7 دارم) نصب می کنه نه در شاخه فونت ویندوز

C:\Users\shir20\AppData\Local\Temp\MMBPlayer
نمیدونم درست میگم یا خیر؟.آیا اگه از یه فونت خاص تو پروژه استفاده کنیم اون فونت باید تو شاخه فونت ویندوز کپی بشه یا اینکه توی مسر بالا

به هر حال بهترین و دقیق ترین روش برای نصب فونت در هر سیستم عاملی چی هستش. دوستان عزیز و مدیران محترم لطف کنید تو این قسمت مرا راهنمایی فرمایید .چون همه چی پروژه من تموم شده و فقط موندم با همین فونت KoodakB و TitrB که نمی دونم چه جوری تو هر سیستمی کپی بشه

با نهایت سپاس
 
آخرین ویرایش:

mbsa

Active Member
سلام
مثالی که الان پیوست کردم ، دقیقاً همین کارو انجام میده .

یه چیزی که الان متوجه شدم اینه که خود mmb که وقتی فونتی رو بهش امبد می کنیم و بعد دستور نصب اون فونت امبدد شده میدیم فونت رو در این مسر (برای من که ویندوز 7 دارم) نصب می کنه نه در شاخه فونت ویندوز

C:\Users\shir20\AppData\Local\Temp\MMBPlayer
دوست عزیز این پوشه ، محل نصب فونت ها نیست . در واقع این پوشه ایست که وقتی mmb یا فایل های کامپایل شده ی اون اجرا میشه همه ی فایل های embedded تو اون پوشه کپی میشه یا به عبارت دیگر اون پوشه ، پوشه ی موقت فایل های امبدد هست.
به هر حال بهترین و دقیق ترین روش برای نصب فونت در هر سیستم عاملی چی هستش.
به نظر من این روش یکی از استاندارد ترین روش ها برای نصب فونته . من اینا نمی گم چون این روش رو خودم گذاشتم بلکه :
1-نیازی به run as adminstrator نداره
2-محل پوشه فونت را اتوماتیک پیدا می کنه
3-از دید کاربر مخفی میمونه
4-نیازی به restart ویندوز نداره
5-....
اگه اشتباه میگم ، اساتید اصلاح کنند

موفق یاشید:cool:
 

پیوست ها

  • font.rar
    612 بایت · بازدیدها: 33

Shir20

Member
ممنون از شما
حالا چه جوری از این کد ها استفاده کنم
منظورم اینه که توی startup page پروژه ام به چه صورت اونها رو کپی کنم .ببخشید که اینقدر سوالهای ابتدایی می پرسم
کد:
***Codes for running font installer
Run("<SrcDir>\font\setup.exe","wait")
***Codes for running baz.exe ( your application)
Run("<SrcDir>\bazi.exe","")
*** exit project (optional)
Exit()
***
یعنی به همین صورت اونها رو کپی کنم؟

در ضمن اگه فونت ها از قبل روی سیستم کاربر وجود داشته باشه مشکلی به وجود نمیاد؟
 
آخرین ویرایش:

mbsa

Active Member
مثالی که تو پست 15 گذاشتم را کامپایل کنید و کنار فایل bazi.exe و پوشه font که خودتون گفتید بزارید . وقتی فایل کامپایل شده اجرا میشه بعد از نصب فونت، فایل bazi.exe اجرامیشود.
در ضمن اگه فونت ها از قبل روی سیستم کاربر وجود داشته باشه مشکلی به وجود نمیاد؟
تو پست های قبل هم عرض کردم . نه مشکلی ایجاد نمی کنه.
موفق باشید
 

Shir20

Member
یعنی همون مثال رو به صورت فایل خروجی بسازم و توی درایور سی دی بزارم بعدش توی درایور سی دی یه پوشه font بسازم و توی اون setup.exe بزارم و توی درایو سی دی نیز bazi.exe بزارم.
حالا سوالم اینجاست که موقعی که می خوام پروژه به صورت اتوران بسازم و توی سی دی بالا بیاد باید توی اون فایل autorun.inf چی بنویسم

با سپاس

در ضمن تو اون فایلی که شما بهم دادید یه دکمه بود که Inastall font بود می تونم اون رو به یه ماسک تغییر بدم که روش نوشته باشه اجرای نرم افزار یااینکه همانند یه لودر باشه که نوشته باشه لطفا چند لحظه صبر کنید و تو این مایه ها... و بعدش همون مراحل اجرا بشه

دوستان دیگه نظری ندارن و آیا کسی از این روش استفاده کرده و مشکلی نداشته؟

مدیران محترم این بخش نظرشون راجع به این روش که دوست عزیزmbsa گفتند چیه؟

با سپاس از همگی
 
آخرین ویرایش:

Shir20

Member
دوست من عین روش شما در پست 15 انجام دادم هیچ چیزی نشد که نشد؟! یه کم بهتر و دقیق تر کد ها رو بنویس

اگه بشه یه Progress bar درست کرد و یه اسکریپت نوشت که بیاد فایل setup را در پوشه font اجرا کنه و بعد از اون بیاد فایل اصلی و خروجی پروژه را اجرا کنه این جوری خیلی خوبه.منظورم اینه که من پروژه ام را بسازم و فایل نهایی اون را آماده کنم و در یه پروژه جداگانه دیگه یه لودینگ درست کرد که اول فونت ها نصب کنه و بعدش بیاد فایل اصلی را باز کنه
مثلا تو لودر پیوست بهش یه اسکرپت بدیم که بیاد اول فایل setup در پوشه فونت را اجرا کنه و بعدش فایل bazi.exe را اجرا کنه

اگه دوستان دیگه هم نظری دارن لطف کنند و کمک نمایند

با سپاس از همگی
 

پیوست ها

  • Loader.zip
    218.8 کیلوبایت · بازدیدها: 33
آخرین ویرایش:

mbsa

Active Member
یعنی همون مثال رو به صورت فایل خروجی بسازم و توی درایور سی دی بزارم بعدش توی درایور سی دی یه پوشه font بسازم و توی اون setup.exe بزارم و توی درایو سی دی نیز bazi.exe بزارم.
بله ، همین طوری باید عمل کنید
دوست من عین روش شما در پست 15 انجام دادم هیچ چیزی نشد که نشد؟! یه کم بهتر و دقیق تر کد ها رو بنویس
یعنی چی نشد که نشد؟!!! از این واضح تر . آخه من که برا هر کد توضیح گذاشتم!!!!

اگه بشه یه Progress bar درست کرد و یه اسکریپت نوشت که بیاد فایل setup را در پوشه font اجرا کنه و بعد از اون بیاد فایل اصلی و خروجی پروژه را اجرا کنه این جوری خیلی خوبه.منظورم اینه که من پروژه ام را بسازم و فایل نهایی اون را آماده کنم و در یه پروژه جداگانه دیگه یه لودینگ درست کرد که اول فونت ها نصب کنه و بعدش بیاد فایل اصلی را باز کنه
خب عزیز دلم این روشی که میگید من از همون اول براتون توضیح دادم . اصلاً اصل روش من مثل چیزیه که شما گفتید
فایل autorun.inf برای فایل با نام install font.exe پیوست شد
مثال پیوست شد
 

پیوست ها

  • font.rar
    3.4 کیلوبایت · بازدیدها: 20
  • autorun.rar
    132 بایت · بازدیدها: 21

جدیدترین ارسال ها

بالا