PDA

View Full Version : غیر فعال کردن عمل Paste در TextBox



vbprogramer
یک شنبه 17 آبان 1383, 15:11 عصر
سلام عزیزان
:oops:
من برای فیلد پسوردم به مشکل خوردم :sad2: لطفاْ منو راهنمایی کنید


ببینید من اطلاعات این فیلد رو به صورت کد هم تبدیل و ذخیره یا بازیابی میکنم ولی مشکل اینجاست که کاربر اگه عقلش برسه و بانک رو با اکسس باز کنه و محتویات کد شده فیلد پسورد رو Copy کنه می تونه در Textbox مربوط به ورود پسورد اون رو Paste کنه بدون اینکه بفهمه پسورد چیه .

من می خواهم توی اون textbox دیگه نتونه چیزی paste کنه چه از طریق Ctrl+v و یا کلیک راست و انتخاب Paste و یا هر راه دیگر... :گیج:


پیشاپیش از همه ممنون

BOB
دوشنبه 18 آبان 1383, 04:51 صبح
سلام .
اگه یه تگاه به رویدادهای کنترل textbox مینداختی مطپنا مشکلت حل شده بود .
باید از onMousedown , keypress استفاده کنی .

vbprogramer
دوشنبه 18 آبان 1383, 07:34 صبح
اگه یه تگاه به رویدادهای کنترل textbox مینداختی مطپنا مشکلت حل شده بود .

یه نگاه که هیچی 100 تا انداختم :(


باید از onMousedown , keypress استفاده کنی

منظورت اینه که کلیک راست و یا کد کلیدهای Ctrl+c رو غیر فعال کنم؟
خوب منم همین رو میخواهم عزیز
یعنی وقتی که کاربر کلیک راست بزنه بتونم یا paste اون رو غیر فعال کنم یا اصلاْ براش پنجره ای باز نشه .
ولی تو رویداد mousedown اول اون پنجره باز میشه بعد تازه میگه کلیک راست شده یا نه

دوستان دیگه هم اگه نظری دارند راهنمایی کنند
متشکرم

bahar60
دوشنبه 18 آبان 1383, 09:17 صبح
البته نمی دونم اینی که می گم چقدر بدر تون بخوره ولی می تونید با رویداد ماوس اور از فعال شدن ماوس برروی textbox جلوگیری کنید و با key press هم کلید های صفحه کلید را کنترل کنید اگر کد مربوط به keypress را هم خواستید می تونید بگید براتون بفرستم(که فکر کنم بدونید)
البته به نظر من مطلب دیگه اینه که یه کاربر اگر به password ها دسترسی داره نیاز نیست که با کپی و پیست کردن password را وارد کند ،گیریم شما راه paste کردن را بستید می تونه یاد داشت کنه و بعد پسورد را با صفحه کلید وارد کنه
البته من دقیقا نفهمیدم که شما منظورتون از پسورد ، پسوردی است که به هر شخصی می دید یعنی بعد از اجرای برنامه امکان تعریف پسورد جدید وجود داره ، اگر نیاز به تعریف پسورد جدید ندارید پسورد یا پسوردهایتان را در کد برنامه بطور ثابت بنویسید(این مطمئن تر است) :mrgreen:

vbprogramer
دوشنبه 18 آبان 1383, 11:22 صبح
از راهنمایی شما خیلی ممنون
در این برنامه امکان تعریف کاربر جدید وجود داره و وقتی پسورد ها به صورت رمز شده در می آیند به شکل اجق وجق (کاراکتر های اسکی ) نمایش داده می شوند و کاربر نمی تواند آنها را از صفحه کلید وارد کند .
من می خواهم کاری کنم که کاربرانی که اجازه ندارند با سیستم کار کنند و یا پسورد آنها شامل محدودیت یا همان permission است از توی بانک قادر نباشند پسورد مدیر سیستم را کپی و paste کنند

? ok

:گیج:

bahar60
دوشنبه 18 آبان 1383, 11:32 صبح
بله متوجه شدم
پس فکر کنم راه اول (یعنی استفاده از ماوس اور ....) بهتر باشه :sunglass:

jannati
دوشنبه 18 آبان 1383, 12:05 عصر
اینم یه مثال در این زمینه.(راست کلیک موس و کلید shift)غیر فعال میشن! :mrgreen:

vbprogramer
دوشنبه 18 آبان 1383, 14:06 عصر
پس فکر کنم راه اول (یعنی استفاده از ماوس اور ....) بهتر باشه

نه :( چون بنا به دلایلی کاربر باید بتونه روی text با موس کلیک کنه

اینم یه مثال در این زمینه.(راست کلیک موس و کلید shift)غیر فعال میشن
جنتی جان اینم کار نکرد آخه میدونی چرا؟
یه جورایی عمل مربوطه حالا یا پاک کردن text باشه یا نمایش یک msgbox زودتر از عمل paste انجام میشه و بعد از اون باز هم paste کار خودشو می کنه.
یه امتحان بکنید متوجه میشید .
راستی عمل paste کردن با کلید ctrl+v انجام میشه کاری به کلید Shift نداره

MM_Mofidi
سه شنبه 19 آبان 1383, 00:07 صبح
عزیز جان چک کن هر کلیدی که فشار داده میشود اگر در محدوده مجاز به استفاده در کلمه عبور میباشد در یک متغیر اضافه کن. بعد هر بار در رویداد change یا موقع اعمال پسورد ببین طول متن موجود در textbox با طول متغیر برابر است یا نه؟ اگر نبود کاربر کار بد کرده:mad:
باید حالشو گرفت text box ا خالی کن. اگه برابر بود برو صفا کن :wink:

vbprogramer
سه شنبه 19 آبان 1383, 07:41 صبح
آقا من یک پسورد ندارم که
کاربر خودش میتونه به هر تعداد که خواست user و pass تعریف کنه من نمی دونم که پسوردش چیه؟
:(

bahar60
سه شنبه 19 آبان 1383, 09:03 صبح
برای اون دیتا بیستون سطح دسترسی تعریف کنید کسی غیر از خودتون اون هم با پسورد خودتون نتونه هر تیبلی را که خواست نگاه کنه :mrgreen:
شاید سر بریده توش بود :mad:

vbprogramer
سه شنبه 19 آبان 1383, 09:28 صبح
حالا عصبانی نشو :D
ببین مدیر سیستم که من نیستم هر کسی میتونه بشه با هر پسوردی
من برنامه رو جوری نوشتم که هنگام تعریف کاربران به آنها permission داده می شود حالا این permission میتواند full و یا اینکه محدود به نمایش اطلاعات یا چاپ اطلاعات یا تغییر اطلاعات و یا هر چیز دیگری باشد
? ok

bahar60
سه شنبه 19 آبان 1383, 10:00 صبح
یعنی چی که یک کاربر بتونه غیر از admin پرمیژن فول داشته باشه :strange:
می تونی فقط روی اون تیبل امکان read راهم برداری اون وقت کارشون تمومه :evil2:
البته باید یک گروه هم تعریف کنی با همان عضو هایی که حق دیدن اون تیبل را ندارندو به اون جدول اختصاص بدی

vbprogramer
سه شنبه 19 آبان 1383, 12:27 عصر
ببینید من که پرمیژن فول نمی دم که
مدیر بهش میده
شاید دلش میخواهد برای خودش معاون هم داشته باشه :wink:
حالا به هر حال
یه جورایی یه کاری کردم که کارم تا حدودی راه افتاد :wise1:

از راهنمایی همه دوستان ممنون :flower:

bahar60
سه شنبه 19 آبان 1383, 12:30 عصر
چه کار کردی؟بگو ماهم بدونیم :mrgreen:

vbprogramer
سه شنبه 19 آبان 1383, 21:05 عصر
ببین من اومدم گفتم که هر موقع که کاربر پسوردش رو وارد کرد حالا یا کش رفته یا خودش داشته اون رو با استفاده از تابع encrypt کن یا به رمز تبدیلش کن و وقتی که رمز شد حالا با اون که توی بانکه و از قبل رمز شده هست کنترل کن اگه پسورد اصلی باشه وقتی که رمز شد خوب مسلمه که مقایسه درست انجام میشه و وارد سیستم میشه واگه کاربر رفت و از توی بانک یه پسورد انتخاب و کپی کرد به دلیل اینکه پسوردهای موجود در بانک رمز شده هستند وقتی در textbox مربوطه اونو paste کرد تابع encrypt پسورد رمز شده رو دوباره به رمز تبدیل میکنه و بعد با اون که توی بانکه مقایسه میکنه که اشتباه در میاد و نمی تونه وارد بشه :mrgreen:
نمی دونم فهمیدی یا نه یکم پیچیده شد :)

خوب به هر حال از همه ممنونم که وقتشون رو به من دادن :embr:

MM_Mofidi
چهارشنبه 20 آبان 1383, 00:47 صبح
vbprogramer عزیز معلومه درست نخوندی
1-هرچنتا دوست داشت کلمه عبور درست کنه.شما آن را با محتویات db مقایسه میکنی
در صورت paste شدندر یکبار رویداد Change طول متن یک دفعه تغییر میکند(مر آنکه طول رمز 1 باشد)2-

vbprogramer
چهارشنبه 20 آبان 1383, 07:19 صبح
بله درست می فرمایید من بد خوندم :sorry:

به هر حال ممنون :flower:

حامد مصافی
پنج شنبه 21 آبان 1383, 01:40 صبح
چطوره به جای textbox از Rich textbox استفاده کنی ( چون منوی راست کلیک نداره )
و برای غیر فعال کردن Ctrl + V می تونی از کد زیر استفاده کنی



Private Sub RichTextBox1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyControl And Shift = vbCtrlMask Then KeyCode = 0
End Sub

vbprogramer
جمعه 22 آبان 1383, 23:07 عصر
از لطف شما خیلی ممنون ولی اگر جایی گیر کردم حتماْ از کد شما استفاده میکنم ::نوشتن::