نمایش نتایج 1 تا 16 از 16

نام تاپیک: قفل کردن موس وکیبورد Locked Mouse & Keyboard

  1. #1

    Lightbulb قفل کردن موس وکیبورد Locked Mouse & Keyboard

    Salam be tamame baxaye bahale barnamenevis.org ye soal dige dashtam khedmatetoon

    قفل کردن موس وکیبورد Locked Mouse & Keyboard

    mamnon misham age kasi bege

  2. #2
    Private Declare Function BlockInput Lib "user32.dll" (ByVal fblock As Long) As Long

    Private Sub Form_Load()
    BlockInput True
    End Sub


  3. #3
    Motmaeni Payman jan ke in Code kar mide?

  4. #4
    نقل قول نوشته شده توسط The One
    Motmaeni Payman jan ke in Code kar mide?
    من قبلا این کد رو رو خودم تست کرده ام و جواب داده. ولی اگه بعد قفل شدن موس و کیبرد alt+ctrl+delete رو بزنی قفلشون باز میشه . حالا باید ببینی چه طور میشه جلو این روش رو گرفت. مثلا شما میتونی کد رو داخل یه حلقه بی پایان قرار بدی. طرف که نمیتونه پشت هم alt+ctrl+delete رو بزنه در نتیجه میشه گفت موس و کیبردش قفل شده. به این صورت :
    Private Declare Function BlockInput Lib "user32.dll" (ByVal fblock As Long) As Long

    Private Sub Form_Load()
    Do
    BlockInput True
    Loop While (1)
    End Sub

    این روش یه حالیم به cpu طرف میده. شاید بشه گفت سیستم طرف هم به نحوی قفل میکنه. چون این حلقه عرق cpu رو در میاره و حسابی ازش کار میکشه.
    ولی اگه کمی وجدان داری و نمیخوای سر به سر cpu بذاری میتونی از دستور sleep تو حلقه استفاده کنی که cpu هم نفسش بند نیاد. به این صورت:
    Private Declare Function BlockInput Lib "user32.dll" (ByVal fblock As Long) As Long
    Private Declare Function SleepEx Lib "kernel32" (ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As Long

    Private Sub Form_Load()
    Do
    BlockInput True
    SleepEx 1000, False
    Loop While (1)
    End Sub
    آخرین ویرایش به وسیله Payman62 : دوشنبه 15 اسفند 1384 در 18:23 عصر

  5. #5
    من توی حلقه های برنامه ام ،مقدار خیلی زیادی CPU کند میشه ؟
    ببخشید میخواست بدونم این Sleep که گفتید توی حلقه چه کاری میکنه ؟
    و فرقش با DOEvents چیه ؟

  6. #6
    نقل قول نوشته شده توسط ashkan209
    من توی حلقه های برنامه ام ،مقدار خیلی زیادی CPU کند میشه ؟
    ببخشید میخواست بدونم این Sleep که گفتید توی حلقه چه کاری میکنه ؟
    و فرقش با DOEvents چیه ؟
    sleep با توجه به زمانی که براش تعیین میکنی در وسط کار برنامه مکث ایجاد میکنه و در آن زمان هیچ خطی از کد برنامه اجرا نمیشه و همان طور که از اسم تابع مشخصه برنامه در آن زمان به خواب میره.
    sleep زمانی که با محیط خارج از برنامه در ارتباطی خیلی مفیده. چون معمولا وقتی دستوری در vb اجرا شه و فرمانی به خارج از برنامه بفرسته(مثلا بگه فایلی اجرا شه) تا ویندوز به اون دستور پاسخ بده کمی زمان میبره و برنامه تحت vb سریع میره به خط های بعد. ممکنه خط های بعد در مورد نتایج آن دستور نوشته شده باشه و چون هنوز آن دستور که به خارج فرستاده شده بود اجرا نشده برنامه با مشکل روبرو میشه. ولی یه sleep چند ثانیه ای باعث میشه به ویندوز فرصت بدی سایر دستورات فرستاده شده به خارج برنامه رو اجرا کنه. البته گاهی اوقات هم نمیدونیم چند ثانیه مکث کنیم و ممکنه مجبور شیم برای احتیاط زمان زیادی مکث کنیم که سرعت برنامه میاد پایین. به همین دلیل بهتره تا میتونیم از دستورات خود vb استفاده کنیم تا برنامه های خارجی.

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

    اگه حلقه هات خیلی تو در تو هستند شاید بتونی با تغییر الگوریتم سرعت و کارایی برنامه رو بالا ببری.

  7. #7
    بهتره به جای Sleep از DoEvents استفاده کنید تا برنامتون هم کارشو ادامه بده وگرنه در مدت زمان Sleep باز میشه قفل رو باز کرد
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  8. #8
    نقل قول نوشته شده توسط vbhamed
    بهتره به جای Sleep از DoEvents استفاده کنید تا برنامتون هم کارشو ادامه بده وگرنه در مدت زمان Sleep باز میشه قفل رو باز کرد
    اگه منظورت برنامه موس و کیبرد قفل کن هست بهترین کار استفاده از یه تایمر با اینترول مثلا 2 هست. دیگه کاربر که نمیتونه 2 ثانیه 2 ثانیه قفل باز کنه. پدرش در میاد. البته استفاده از sleep در حلقه do میشه یه چیزی تو مایه های همون تایمر.
    ولی اینکه من گفتم sleep بذار به این دلیل بود که چه با doevents چه بی doevents کارکرد cpu شدیدا میره بالا. این بود که گفتم یه sleep در حلقه do یا تایمر بذاریم بهتره.

  9. #9
    دوست عزیز
    مشکلی که با sleep وجود داره اینه که برنامه خود شما هم تا sleep کارشو انجام بده متوقف میشه ولی Doevents اینطور نیست ضمنا چون doevents به دفعات زیاد اجرا میشه پس وقت بیشتری رو به cpu برای انجام کارهای دیگه اش میده و سرعت رو پایین نمیاره
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  10. #10
    نقل قول نوشته شده توسط vbhamed
    دوست عزیز
    مشکلی که با sleep وجود داره اینه که برنامه خود شما هم تا sleep کارشو انجام بده متوقف میشه ولی Doevents اینطور نیست
    خدا از دهنت بشنوه. خوب منم واسه همین میگم از sleep یا تایمر استفاده کنیم. چون وقتی برنامه موقتا متوقف بشه کارکرد cpu هم میاد پایین و cpu فرصت میکنه به کارای دیگه هم برسه. یه sleep در حلقه do یا یک تایمر که هر 2 ثانیه یک بار یه فرمان به cpu میفرستن بیشتر به cpu فشار میارن یا یه doevents در حلقه do که هر ثانیه میلیون ها فرمان به cpu میفرسته. درسته که doevents زیاد اجرا میشه ولی چه فایده به همون اندازه اجرا شدنش هم کارکرد cpu میره بالا. در روش اول وقتی برنامه متوقف شه cpu خودش میره سراغ کارای دیگه.

  11. #11
    سلام
    ببینید
    doevents اگر هم زیاد فرمان بفرسته فرمان این است که به کارهای دیگه برس ضمنا پس پردازش داخلی خود دستور sleep چی؟ مگه خودش چک نمیکنه ببینه زمانش رسیده یا نه ؟ اما با sleep برنامه خود شما هم متوقف میشه
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  12. #12
    ای بابا. شما این تو تا فایل رو دانلود کن و ببین کدوم بیشتر سرعت سییتم رو میاره پایین. بعد میفهمی من چی میگم.
    فایل های ضمیمه فایل های ضمیمه

  13. #13
    سلام دوست عزیز

    می بخشید ها
    قضیه لج و لجبازی نیست
    اما برنامه ای که با sleep نوشته شده بود سرعت رو بیشتر پایین آورد
    ضمن اینکه خودش هم یه طورایی انگار متوقف شده
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

  14. #14
    امکان نداره شما اصلا به کارکرد cpu نگاه کردی. ندیدی doevents چه طور نمودارو میچسبونه اون بالا.
    از دوستان دیگه خواهش میکنم نظر بدن. بین این 2 تا برنامه ببینید کدوم بیشتر سرعت سیستم رو میارن پایین همراه با سورسن . 2 تا برنامه خیلی سادن.

  15. #15
    Doevents مقدار CPU Usage را تا 100 بالا برد ، در حالیکه Sleep تقریبا تغییری در CPU Usage نداشت ،البته Sleep بعد از حدود 30 ثانیه Not Respond شد، شاید هم Loop اجرا نشده که Cpu تغییر نکرد
    عکس های ضمیمه عکس های ضمیمه

  16. #16
    اشکان ممنون از نظرت
    عزیز loop اجرا میشه not respond شدن هم به خاطر همون loop و حلقه بی پایان هست. ولی بحث سر not respond شدن یا نشدن نیست. بحث سر اینکه کدام برنامه بیشتر به cpu فشار میاره که همون طور هم که گفتی doevents کارکرد cpu رو 100% میکنه ولی sleep تغییر محسوسی تو کارکرد نمیده.

تاپیک های مشابه

  1. من وقتی برنامه ام را اجرا می کنم ارور file is locked
    نوشته شده توسط hamidehsadat در بخش ارزیابی نرم افزار
    پاسخ: 4
    آخرین پست: جمعه 22 تیر 1386, 13:30 عصر
  2. mouse & keyboard
    نوشته شده توسط مجتبی صادقپور در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 2
    آخرین پست: چهارشنبه 22 فروردین 1386, 12:16 عصر
  3. Locked و TextBox
    نوشته شده توسط Hamedm در بخش VB.NET
    پاسخ: 4
    آخرین پست: چهارشنبه 20 مهر 1384, 08:56 صبح
  4. این دیگه چیه؟ too many record are locked
    نوشته شده توسط aliasghar در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: شنبه 08 فروردین 1383, 18:12 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •