PDA

View Full Version : سوال: مشاهده لیست افراد آنلاین



ali190
شنبه 17 اردیبهشت 1390, 19:37 عصر
باسلام و عرض خسته نباشید
من یه برنامه با vb6+sql server2000 نوشتم که تحت شبکه هست
در این برنامه افرادی با ثبت نام اونها توسط admin و دادن یوزرنیم و پسورد به هر شخص به دیتابیس کانکت میشن و از برنامه استفاده میکنند
میخوام admin سیستم امکان این رو داشته باشه تا افرادی که در حال حاضر با برنامشون به دیتابیس وصل شده رو ببینه (مثلاً لیست کل افراد نمایان بشه و هر کدوم که آنلاین بودند چراغشون سیز رنگ و اونهایی هم که آنلاین نیستند چراغشون قرمز باشه ، حالا چراغها زیاد مهم نیستند)
موندم از چه روشی برای اینکار استفاده کنم؟
روشی که خودم به ذهنم رسیده اینطور هست:
در جدول user بعد از فیلد یوزنیم و پسورد یه فیلد boolean میذارم مثلاً با اسم vaziyat
زمانیکه کاربرم میخواد وارد برنامه میشه بعد از زدن دکمه "ورود" در فرم login مقدار فیلد vaziyat اش در جدول user مساوی با true میشه
بعد admin میتونه از طریق این فیلد افرادی رو که فیلد vaziyat اونها true هست رو فیلتر کنه
فقط باید اطلاعات list box اشت رو از طریق یک timer در یک مدت مشخص refresh کنه
هعنگامی هم که کاربر قصد خروج از برنامه رو داره فیلد vaziyat کاربر false میشه
فقط مشکل اینجاست که هنگامی که برنامه کابر هنگ میکنه و توسط task manager ویندوز مجبوریم ببندیمش دیگه false به سمت فیلد vaziyat اون یوزر فرستاده نمیشه و کاربر با اینکه از برنامه خارج شده همچنان در لیست افراد آن لاین باقی میمونه (چون رویداد unload فرم اصلی بدون اینکه Fire بشه از بین میره)
این ایده نصفه نیمه ای بود که به ذهنم رسید
ممنون میشم از دوستان تا نظراتشون رو در این مورد بدن
ممنون و متشکر از لطف دوستان
یاعلی

milad-fa
شنبه 17 اردیبهشت 1390, 19:52 عصر
با سلام،
همین روش روش خوبیه.
با استفاده از winsock هم میتونید مشکلی که گفتید رو از بین ببرید.
هر کاربری که میخواد وارد برنامه بشه توسط winsock یک پیغام بده،سرور هم اجازه کانکت شدن بهش میده و یک ایندکس بهش اختصاص میده و ایندکسش رو تو یه فیلد دیگه تو بانک ذخیره کنه.
به محض خارج شدن از برنامه به هر نحوی رفتن برق،هنگ کردن،بستن از taskmanager و ...
winsock سرور ایندکس کامپیوتر dc شده رو میده و شما میتونی تغییرات لازم در بانک رو برای کامپیوتر مورد نظر انجام بدی.(مثل False کردن فلید Vaziyat)
موفق باشید.

ali190
شنبه 17 اردیبهشت 1390, 21:44 عصر
سلام میلاد جان
ممنون از توضیحاتت
میشه از روشی که گفتی یه Sample کوچیک بذاری؟
ممنون و متشکر
یاعلی

milad-fa
شنبه 17 اردیبهشت 1390, 22:13 عصر
این هم یک Sample (http://barnamenevis.org/forum/attachment.php?attachmentid=49096&d=1274034164) در رابطه با Winsock.