اسکرین سیور

آقا شرمنده میخوام اسکرین سیور رو تنظیم کنم که هر 5 دقیقه یا 10 دقیقه مثل ویندوز بیاد بالا و این در صورتی هست که کاربر توی محیط بیلدر ما کاری نکنه این جریانش چه طوریه؟
 

the_king

مدیرکل انجمن
آقا شرمنده میخوام اسکرین سیور رو تنظیم کنم که هر 5 دقیقه یا 10 دقیقه مثل ویندوز بیاد بالا و این در صورتی هست که کاربر توی محیط بیلدر ما کاری نکنه این جریانش چه طوریه؟

رخداد هایی که نشونه بیکاری کاربره اصولا کلیک نکردن روی دکمه ها و جابجا نکردن ماوس و فشار ندادن کلید های
صفحه کلیده. جابجایی ماوس و فشرده شدن کلید های ماوس رو میشه با MouseX و MouseY و MouseLButton و غیره
کشف کرد. اما چون برای تمامی دکمه های صفحه کلید اسکریپت تعریف کردن دیوانگیه، بررسی مستقیم فشرده شدن
تمامی کلید ها رو بیخیال بشید. بجایش اگه در فرم EditBox ای دارید، رخداد تغییر کردن محتویات اش رو مد نظر قرار بدید.

منطق اصلی الگوریتم اینه، شما یک متغیری دارید که هر ثانیه 1 بار افزایش پیدا می کنه، هر بار که کاربر کلیکی کرد
و یا ماوس رو جابجا کرد یا کلیدی رو فشار داد، این مغیر مجددا صفر میشه و از نو می شماره. اما اگه به مقدار
مشخصی رسید، یعنی فلان قدر ثانیه سیستم بیکار بوده، پس موقع اجرا کردن Screen Saver است.

یک متغیری مثل count رو با مقدار اولیه صفر در نظر بگیرید. یک اسکریپت هم در نظر بگیرید که خودش رو با دستور
ScriptTimer هر 1000 میلی ثانیه (1 ثانیه) یکبار اجرا کنه و داخل این اسکریپت مقدار count رو یک واحد افزایش بدید.
همچنین اگه مقدار count به 300 (معادل 300 ثانیه یا 5 دقیقه) رسید، فلان کد ها رو که Screen Saver رو راه
می اندازه اجرا کنه.

در پروژه پیوستی اینکار رو برای مقدار 60 (بعد از یک دقیقه) انجام میده.
 

پیوست ها

  • ScreenSaver.zip
    8.4 کیلوبایت · بازدیدها: 35
شرمنده حالا این فایلی گذاشتید با چی باز می کنه با بیلدر که باز نمی کنه حتی وقتی پسوند براش می زارم
 

the_king

مدیرکل انجمن
شرمنده حالا این فایلی گذاشتید با چی باز می کنه با بیلدر که باز نمی کنه حتی وقتی پسوند براش می زارم

من فایل zip ای با نام ScreenSaver.zip رو پیوست کرده بودم که داخلش فایل ScreenSaver.mbd قرار داره که با
MMB باز میشه. خودم الان فایل پیوستی رو داونلود کردم و WinRar ام رو غیر فعال کردم تا فایل zip شده رو با
خود Explorer ویندوز تست کنم که بدون مشکل باز شد. مشکل هر چیه مربوط به معیوب بودن فایل من نیست.
 

Ehssan_it

Well-Known Member
البته من مثال جناب the_king رو دانلود نكردم ولي؛
قبلا هم قبلا يك سكرين سيور درست كرده بوده كه ميتونيد از اون هم استفاده كنيد .

( مثال ها با اخرين نسخه بيلدر كه لينكش تو صفحه اول انجمن بيلدر هست باز ميشه )
 

amirrayaneh

Member
با سلام و احترام
من هم فایل را دانلود کردم ولی بدون پسوند هست و باز نمیشه
البته چندین بار یا این مشکل مواجه شدم که بعد از چند روز دوباره فایل دانلود درست شد
فکر میکنم مشکل از سرور مجید آنلاین باشه
 

m javad

کاربر متخصص
راهنمایی

خب این که حساسیت به دکمه هاش کار نمیده!!!!
یعنی هر دکمه ای رو هم بزنیم بازم اسکرین سیور فعال میشه و فشرده شدن کلید رو اصلا درک نمیکنه
فقط اینتر و اسپیس رو میفهمه و اونم به خاطر او اسکریپتها هست. مگر این که رو ایت باکس فوکوس کنه و تو اون تغییر بده که بازم با یه بار فعال شدن اسکرین سیور از بین میره
بهتره تو اسکریپت TickTimer دستور زیر رو وارد کنید.


کد:
[LEFT]Show("EditBox")

ScriptTimer("TickTimer","1000")
[/LEFT]

البته دستور تایمر رو داره.میخواستم بگم بالای اون بزاریدش کافیه.
این طوری حداقل تمام دکمه هایی که تغییر تو ادیت باکس وارد میکنن رو میشناسه.
اینم از عجایبه که با یه دستور Show کار ما حل میشه.!!!!!!!!!!
 

the_king

مدیرکل انجمن
راستش همون اول که داشتم به بررسی فشردن کلید ها فکر می کردم می دونستم که به یک راه حل بدون نقص
نمی رسم. راه حل بهتر تعریف کردن اسکریپت جداگانه برای هر کلیده که همونطور که قبلا گفتم به نظرم معقول نیست.
بایستی این مشکل با کمک یک پلاگین حل بشه.

البته دستور تایمر رو داره.میخواستم بگم بالای اون بزاریدش کافیه.
این طوری حداقل تمام دکمه هایی که تغییر تو ادیت باکس وارد میکنن رو میشناسه.
اینم از عجایبه که با یه دستور Show کار ما حل میشه.!!!!!!!!!!
در اینکه مشکل Screen Saver با تعیین کردن موقعیت Focus اونم هر ثانیه یکبار تا حدود زیادی حل میشه که شکی نیست،
اما کلا کار با برنامه اصلی مختل میشه، تا کاربر می خواد توی EditBox1 چیزی تایپ کنه، Focus جابجا میشه.

متاسفانه بدون پلاگین راه حل مناسبی ای وجود نداره.
 

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

بالا