PDA

View Full Version : شبیه سازی یک حالت Standby برای Application



Mahyaa
یک شنبه 03 تیر 1386, 22:35 عصر
سلام

فکر کنم عنوانی که نوشتم به اندازه کافی گویا نیست ! قبلا عذر میخوام . عنوان مناسبتری به ذهنم نرسید .

در واقع کاری که من میخوام بکنم اینه :
اگر کاربر در یک مدت زمان معین ، هیچ کاری با برنامه انجام نداد ، برنامه بسته بشه یا مثلا دوباره پسوورد و اینا بپرسه .
برنامه من یک برنامه تحت شبکه است که دیتابیسش هم اراکل هستش .

آیا باید سرویسی مجزا براش بنویسم ؟ اگر اینطوره ، چطور باید جلوی بسته شدن اون سرویس رو بگیرم ؟
اصولا راه حل مناسب و معمولش چیه ؟

object
دوشنبه 04 تیر 1386, 10:52 صبح
این کار رو قبلا روی برنامه ایی که برای یک استند نوشته بودم انجام دادم
فکر میکنم بهترین کار این باشه که موس و کیبرد (و کلا دستگاههای ورودی) رو hock کنی
یک تایمر میذاری که در هر حرکت موس و هر فشردن دکمه کیبرد تایمر رو صفر میکنه و در OnTime تایمرت هم کد بسته شدن برنامه ات رو قرار میدی
امیدوارم به دردت خورده باشه
اگر خواستی بگو کامپوننتش رو هم برات میگذارم اینجا

Valadi
دوشنبه 04 تیر 1386, 11:04 صبح
جناب object

اگر خواستی بگو کامپوننتش رو هم برات میگذارم اینجا
نیکی و پرسش ؟
موفق و موید باشی

object
دوشنبه 04 تیر 1386, 11:58 صبح
رفیق جان من الان پیغامت رو دیدم
اما متاسفانه هر چی توی کامپیوترم گشتم اون کامپوننت رو پیدا نکردم برای همین یه سرچ کردم و اینو پیدا کردم
http://greatis.mediathree.net/delphicb/tips/lib/manipulators-hookmouse.html
امیدوارم به دردت بخوره البته خودم امتحانش نکردم
بازم معذرت میخوام
(ضمنا باید بگم hook درسته نه hock که توی پیغام قبلی نوشتم )

object
دوشنبه 04 تیر 1386, 12:03 عصر
این رو هم یه نگاه بندازی به نظر زیاد بد نیست
http://delphi.about.com/od/windowsshellapi/a/keyboard_hook.htm

object
دوشنبه 04 تیر 1386, 12:04 عصر
و اینجا هم چندتا کامپوننت خوب گذاشتن امیدوارم اینها کارت رو راه بندازه
http://www.vclcomponents.com/catalog/Hook

Mahyaa
دوشنبه 04 تیر 1386, 23:37 عصر
فکر میکنم بهترین کار این باشه که موس و کیبرد (و کلا دستگاههای ورودی) رو hock کنی
یک تایمر میذاری که در هر حرکت موس و هر فشردن دکمه کیبرد تایمر رو صفر میکنه و در OnTime تایمرت هم کد بسته شدن برنامه ات رو قرار میدی
ممنون
با Hook مشکلی ندارم . منظورم اینه که این پروسه چک کردن دستگاههای ورودی رو به چه ترتیبی پیاده سازی کنم که بطور متناوب چک کنه ؟
آیا همون استفاده از تایمر بهترین راهه ؟ راه دیگه ای وجود نداره ؟

باز هم ممنون

vcldeveloper
چهارشنبه 06 تیر 1386, 12:56 عصر
چک کردن دستگاههای ورودی رو به چه ترتیبی پیاده سازی کنم که بطور متناوب چک کنه ؟

GetLastInputInfo
قبلا در اینباره توضیح داده شده بود. یک سورس کد هم همراه با توضیحات در لینک زیر هست:
How to track a user's Idle time (http://delphi.about.com/od/adptips2004/a/bltip1104_4.htm)

پرواز
جمعه 30 شهریور 1386, 12:31 عصر
GetLastInputInfo
قبلا در اینباره توضیح داده شده بود. یک سورس کد هم همراه با توضیحات در لینک زیر هست:
How to track a user's Idle time (http://delphi.about.com/od/adptips2004/a/bltip1104_4.htm)
جناب کشاورز این روش برای اینکه زمان غیر فعال سیستم رو مشخص کنه.
برای بدست آوردن زمان غیر فعال بودن کاربر در یک برنامه خاص باید از روش دیگه ای استفاده کرد.

Mahyaa
جمعه 30 شهریور 1386, 12:38 عصر
جناب کشاورز این روش برای اینکه زمان غیر فعال سیستم رو مشخص کنه.

البته چیزی که من میخواستم هم همین بود .

پرواز
جمعه 30 شهریور 1386, 12:44 عصر
البته چیزی که من میخواستم هم همین بود .
جناب Mahayaa
این تاپیک رو آقای کشاورز از یه تاپیک دیگه لینک دادن و اون تاپیک رو قفل کردن.
درسته که شما به جوابت رسیدی ولی تاپیک قفل شده مذکور به نظر من به جواب نرسیده.
البته به اون جوابی که من مد نظرم بوده نرسیده. شاید مطرح کننده سوال به جوابش رسیده باشه.

vcldeveloper
جمعه 30 شهریور 1386, 22:16 عصر
این روش برای اینکه زمان غیر فعال سیستم رو مشخص کنه.
برای بدست آوردن زمان غیر فعال بودن کاربر در یک برنامه خاص باید از روش دیگه ای استفاده کرد.
GetLastInputInfo از اسمش هم مشخص هست که مربوط به آخرین استفاده کاربر از دستگاههای ورودی (مثل موس و کیبورد) هست. وقتی این دستگاهها فعالیتی از طرف کاربر ثبت نمی کنند، یعنی کاربر فعل خاصی انجام نمی دهد. در سایر برنامه ها هم همین روش استفاده میشه (مثل Screen Saver ها).
البته استفاده نکردن از موس و کیبورد دلیلی بر غیرفعال بودن سیستم نیست، چون ممکن است سیستم در حال پردازش باشد. این روش صرفا مشخص می کند که چه مدت از آخرین باری که کاربر از سیستم استفاده کرده است می گذرد. سوال شما هم ظاهرا همین را دنبال می کرد که چطور متوجه بشید کاربر از کامپیوتر استفاده می کند. پس سوال شما مربوط به همین تاپیک است و نیازی به تاپیک جدید نبود.

پرواز
جمعه 30 شهریور 1386, 23:08 عصر
GetLastInputInfo از اسمش هم مشخص هست که مربوط به آخرین استفاده کاربر از دستگاههای ورودی (مثل موس و کیبورد) هست. وقتی این دستگاهها فعالیتی از طرف کاربر ثبت نمی کنند، یعنی کاربر فعل خاصی انجام نمی دهد. در سایر برنامه ها هم همین روش استفاده میشه (مثل Screen Saver ها).
البته استفاده نکردن از موس و کیبورد دلیلی بر غیرفعال بودن سیستم نیست، چون ممکن است سیستم در حال پردازش باشد. این روش صرفا مشخص می کند که چه مدت از آخرین باری که کاربر از سیستم استفاده کرده است می گذرد. سوال شما هم ظاهرا همین را دنبال می کرد که چطور متوجه بشید کاربر از کامپیوتر استفاده می کند. پس سوال شما مربوط به همین تاپیک است و نیازی به تاپیک جدید نبود.
1- من تاپیک قفل شده قبل رو ایجاد نکرده بودم.
2-

با سلام
از کجا بفهمیم زمانی که یک برنامه را اجرا میکنیم مثلا برنامه کاربردی خود را
و تا مدتی از آن استفاده نمیکنیم زمان آنرا را بدست بیاوریم
بعبارت دیگر برنامه چه مدت بیکار است و کاربر با آن کار نمی کند



خوب از کجا بفهمیم که با برنامه کار نکرده ایم

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

vcldeveloper
شنبه 31 شهریور 1386, 02:43 صبح
و تا مدتی از آن استفاده نمیکنیم زمان آنرا را بدست بیاوریم
بعبارت دیگر برنامه چه مدت بیکار است و کاربر با آن کار نمی کند

----------------------

پرواز
شنبه 31 شهریور 1386, 04:17 صبح
از کجا بفهمیم زمانی که یک برنامه را اجرا میکنیم مثلا برنامه کاربردی خود را
و تا مدتی از آن استفاده نمیکنیم زمان آنرا را بدست بیاوریم
بعبارت دیگر برنامه چه مدت بیکار است و کاربر با آن کار نمی کند


خوب از کجا بفهمیم که با برنامه کار نکرده ایم
یه بازنگری بکنید!
خدای نکرده قصد جسارت ندارم. ولی حق با منه.