ايران ويج

نسخه‌ی کامل: غير فعال كردن Print Screen از صفحه كليد
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام دوست عزيز :
خسته نباشي!
شما گفته بوديد دو راه هست :

یک غیر فعال کردن print screen از طریق رجیستری و دوم استفاده از هوک ها که توصیه نمیشه .
حالا لطف ميكنيد اگه كدي به من بدبد تا بتونم از طريق رجيستري اين كار رو توسط دات نت انجام دهم . پيشاپيش از لطف بي كران شما سپاسگزارم .ممنون.
این کد برای غیر فعال کردن از طریق رجیستری :

کد:
string message = "0000000000000000040000002AE037E0000037E00000540000000000";
             byte[] in_buf = new byte[28];
             for (int i = 0; i <= in_buf.Length - 1; i++)
             {
                 in_buf[i] = byte.Parse(message.Substring(i * 2, 2), NumberStyles.HexNumber);
             }

             String strBaseKey = @"SYSTEM\CurrentControlSet\Control\Keyboard Layout";
             RegistryKey environmentKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, String.Empty).OpenSubKey(strBaseKey, true);
            
             try
             {
                 environmentKey.SetValue("Scancode Map", in_buf, RegistryValueKind.Binary);
             }
             catch (Exception ex)
             {
                 MessageBox.Show(ex.Message);
             }

تعاریف زیر هم فراموش نشه :
کد:
using Microsoft.Win32;
using System.Globalization;

بعد اجرای برنامه کافیه سیستم رو restart کنی تا کلید print Screen از کار بیافته !
اگر مال برنامه خودته میخوای راه ساده تر شاید این باشه موقع deActive شدن form یه نگاه بندازی به clipboard ببینی تصویری توش هست یا نیست
بعد اگر خواستی مییتونی چکش کنی تصویر برای فرم خودته (مثلا pixel صفرش مقایسه کنی )بعد پاکش کن .

اگر کلا میخوای از کار بندازی همین روش محمد توصیه میکنم . منم hook توصیه نمیکنم
(۱۰-فروردین-۱۳۸۸, ۰۰:۲۲:۰۱)esmaeily-hosein نوشته است: [ -> ]اگر مال برنامه خودته میخوای راه ساده تر شاید این باشه موقع deActive شدن form یه نگاه بندازی به clipboard ببینی تصویری توش هست یا نیست
بعد اگر خواستی مییتونی چکش کنی تصویر برای فرم خودته (مثلا pixel صفرش مقایسه کنی )بعد پاکش کن .

اگر کلا میخوای از کار بندازی همین روش محمد توصیه میکنم . منم hook توصیه نمیکنم
روش جالبی نیست ممکنه طرف عکس یا یه region رو کپی کرده باشه
البته به غیر از رجیستری میشه از یک globalhook هم استفاده کرد
منکه قبلش گفتم pixel 0x0 رو چک کنه .
به هر حال به نظرم از hook خیلی بهتره ، در مورد region هم فرقی نمیکنه در هر صورت در فرم های مگه همه قسمت ها مهمه که کپی نشه .
(۱۰-فروردین-۱۳۸۸, ۱۳:۰۰:۲۰)esmaeily-hosein نوشته است: [ -> ]منکه قبلش گفتم pixel 0x0 رو چک کنه .
به هر حال به نظرم از hook خیلی بهتره ، در مورد region هم فرقی نمیکنه در هر صورت در فرم های مگه همه قسمت ها مهمه که کپی نشه .
دوست عزیز منظورم اینه که اگه پیکسل 0x0 با رنگ عکس دیگری که در clipboard کپی شده باشه مطابقت کنه اشتباها clip board پاک می شه
pixel انتهایی رو هم یه چک بکن ، width چک کن . یا 10 تا pixel چک کن .
اصلا همشو چک کن ! برابری 2 تا تصویر در این مورد انقدرها کار سختی نیست .
ببخشيد
hook چيست؟
سلام.
تازگیا تبش قبر مد شده.
هوک ساده بگم. توابعی هستن که قبل از انجام کاری اون کار رو کنترل میکنن و اجازه میدن انجام بشه یا نه.
مثلا شما بسته شدن پنجره هارو هوک میکنید و اگه پنجره ای خواست بسته شه شما اجازشو میدید یا نمیدید. ولی آنتی ها به هوک به شدت گیر میدن. کار کردن با هوک هم با سادگی توابع دیگه نیست.
سلام
خيلي ممنون كه جواب دادين

اين يعني چي من نگرفتم :
نقل قول: تازگیا تبش قبر مد شده.

راستي اگه تونستين يه لطفي كنين يه نيم خط كد بنويسيد من ببينم اصلا چه شكلي با هوكها كار ميكنن
سلام.
هوک کیبرد تو سایت هست. در واقع کیلاگر با هوک به جای تابع GetAsyncKeyState.
صفحه‌ها: 1 2