View Full Version : سوال: بیرون کردن کاربر غیر مجاز و یا بیرون کردن کاربران جهت اعمال تعغیرات در شبکه
rofirash
شنبه 28 دی 1387, 23:03 عصر
سلام . اگه بخواهیم یک کاربر آنلاین رو که برنامه رو باز کرده برنامش رو ببندیم میشه . بعضی از مواقع مدیر سیستم برای اعمال تغیرات احتیاج داره کاربران برنامشون رو ببندند. کلا می خواهیم هر کسی یا یه کاربر خواص که برنامه رو باز کرده ارتباطش با برناممون رو قطع کنیم.
rofirash
یک شنبه 29 دی 1387, 19:49 عصر
با سلام. آقای قربانی شما که یه برنامه جهت ارسال پیام به افراد حاضر در شبکه ارائه کردید. آیا نمی شه توی همون یه تغیری داد و این عمل رو انجام داد.
مهدی قربانی
دوشنبه 30 دی 1387, 13:39 عصر
سلام
دوست عزیز دارم روش فکر می کنم ، اگر به نتیجه رسیدم اعلام خواهم کرد .
ali_bagheri34
سه شنبه 01 بهمن 1387, 08:05 صبح
سلام
دوست عزیز شما می توانید در فرم اصلی برنامه که همیشه باز است درایونت OnTimer آن هر یک دقیقه چک کنید که آیا در جدول X مقداری ست شده است یا خیر که اگر مثلا True بود از کل برنامه با دادن یک پیغام خارج شود
این مثال برای تمام کاربران می باشد و اگر برای یک کاربر می خواهیم مقدار True را در جدول کابران ست کنید و در ایونت On Timer مقدار ترو جدول کاربر را چک کنید
مهدی قربانی
سه شنبه 01 بهمن 1387, 15:33 عصر
سلام
این نمونه تکمیل شده نمونه قبلیه که در این تاپیک (http://barnamenevis.org/forum/showpost.php?p=620254&postcount=11) قرار داده بودم ، نکات اضافه شده به برنامه :
اول اضافه کردن یک کامند باتون جدید روی فرم Frm_StartUp با عنوان بستن برنامه کاربران
و قراردان کدهای زیر در On Click اون
On Error GoTo Check
Dim strUPD As String
strUPD = "UPDATE tb_log_users SET tb_log_users.active = True WHERE" & _
"(((tb_log_users.username)<>[forms]![frm_startup]![text6]));"
If DCount("username", "tb_log_users", "username <>" & """" & "m.ghorbani" & """") = 0 Then
MsgBox "ÏÑ ÍÇá ÍÇÖÑ åí ˜ÇÑÈÑí ÂäáÇíä äíÓÊ", vbExclamation + vbMsgBoxRight, "ÊæÌå"
Exit Sub
End If
DoCmd.SetWarnings False
DoCmd.RunSQL (strUPD)
DoCmd.SetWarnings True
MsgBox "ÚãáíÇÊ ÈÇ ãæÝÞíÊ ÇäÌÇã ÔÏ"
Check:
If Err.Number = 3085 Then
MsgBox "ÏÑ ÍÇá ÍÇÖÑ åí ˜ÇÑÈÑí ÂäáÇíä äíÓÊ", vbExclamation + vbMsgBoxRight, "ÊæÌå"
Exit Sub
ElseIf Err.Number = 0 Then
Exit Sub
Else
MsgBox Err.Description
Exit Sub
End If
دوم اضافه کردن تکه کد زیر در رخداد On Load فرم Frm_StatrUp
نام کاربری که در تکه کد زیر قرمز شده باید به نام کاربری شبکه کاربر Admin ست بشه
If Me.Text6 = "m.ghorbani" Then
Me.Command9.Visible = True
Else
Me.Command9.Visible = False
End If
سوم اضافه کردن کد زیر به رخداد On timer فرم Frm_StatrUp
ضمناً نام کاربری قرمز شده باید مثل مرحله دوم با نام کاربری شبکه شخص Admin ست بشه
Dim RstQ As DAO.Recordset
Dim strSQL1 As String
strSQL1 = "SELECT tb_log_users.active FROM tb_log_users WHERE" & _
"(((tb_log_users.active)=True));"
Set RstQ = CurrentDb.OpenRecordset(strSQL1)
If RstQ.RecordCount > 0 And Me.Text6.Value <> "m.ghorbani" Then
DoCmd.Quit
End If
bbkyawho
پنج شنبه 10 بهمن 1387, 22:03 عصر
سلام
ميشه درباه با برنامه بيشترتوضيح بديد .چون من امتحان كردم و فقط يك كاربر ان لاين نشو ميده كه كامپوتر خودم هست . ايا باد در administarator كار كرد يا .........؟
مهدی قربانی
دوشنبه 14 بهمن 1387, 11:42 صبح
سلام
شما برنامه رو به چه صورت تست می کنید ؟
bbkyawho
دوشنبه 14 بهمن 1387, 18:40 عصر
به دو صورت :
1 برنامه روي كامپيوتر ادمين باز هست و پيغام مي فرستم براي بقيه
2 برنامه روي همه كامپيوتر ها باز هست و من از روي كامپيوتر ادمين پيغام مي فرستم
سيستم شبكه دومين هست نه ورك گروپ .
ولي در هر صورت فقط يك كتربر ان لاي داريم كه خودم هستم !!!!!!!!!!!!!!
مهدی قربانی
سه شنبه 15 بهمن 1387, 08:33 صبح
سلام
اتفاقاً منم برنامه رو در شبکه Domain تست کردم و به خوبی جواب داده ، روی کامپیوترهای دیگه هم که برنامه رو باز می کنید باز همون یک کاربر رو نشون می دن ؟ در ضمن برنانمه رو بدون اینکه از روی دستگاه Admin باز کنید فقط از روی دستگاههای دیگه باز کنید بینید چه اتفاقی میفته .
nabeel
سه شنبه 15 بهمن 1387, 10:20 صبح
سلام
براي كار به چند نكته اشاره ميكنم حالا اگه خواستيد ادامه بديد !
اكسس Client Base هستش
اگه فايل رو روي سرور گذاشتيد و همه به اون متصل ميشن كه :
بدترين كار ممكن رو انجام داديد
در اين حالت Admin دستور خروج رو از طريق VBA و تعريف يك متغير به انجام برسونه
اگه فايل به صورت Front End / Back End هستش كه شما بايد اعلان رو توي يك جدول اشتراكي كه در داخل Back End قرار داره ذخيره كنيد
تذكر : هيچوقت پس از اعلام پيغام به كاربر برنامش رو به صورت اتومات نبنديد . پروسه شما بايد توي همون مرحله هشدار و نمايش پيغام متوقف بشه ، كاربر خودش بايد برنامش رو ببنده
در نمونه كد ارسالي از DAO اگه قرار باشه دستور Set كردن به توالي در داخل Timer استفاده بشه ديگه عملاً بايد قيد كارايي برنامه رو زد .
پس از Set كردن حتماً اون رو از حافظه خارج كنيد .
در سيستمهاي مبتني بر SQL Server اگه ميبيند كاربر رو به صورت يك طرفه از سوي Server بيرونش ميندازن موضوع با Access خيلي متفاوته .
موفق باشيد
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.