نمایش نتایج 1 تا 10 از 10

نام تاپیک: هيچ راه خروجي در برنامه نباشه

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #6
    کاربر دائمی آواتار debugger
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    Turkey
    پست
    843

    نقل قول: هيچ راه خروجي در برنامه نباشه

    این کد ها برای غیر فعال کردن Alt+Tab, Alt+Esc, Ctrl+Esc هست البته برای محیط خارج از دیباگ


    namespace BlockShortcuts 
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private delegate int LowLevelKeyboardProcDelegate(int nCode, int
    wParam, ref KBDLLHOOKSTRUCT lParam);

    [DllImport("user32.dll", EntryPoint = "SetWindowsHookExA", CharSet = CharSet.Ansi)]
    private static extern int SetWindowsHookEx(
    int idHook,
    LowLevelKeyboardProcDelegate lpfn,
    int hMod,
    int dwThreadId);

    [DllImport("user32.dll")]
    private static extern int UnhookWindowsHookEx(int hHook);

    [DllImport("user32.dll", EntryPoint = "CallNextHookEx", CharSet = CharSet.Ansi)]
    private static extern int CallNextHookEx(
    int hHook, int nCode,
    int wParam, ref KBDLLHOOKSTRUCT lParam);

    const int WH_KEYBOARD_LL = 13;
    private int intLLKey;
    private KBDLLHOOKSTRUCT lParam;

    private struct KBDLLHOOKSTRUCT
    {
    public int vkCode;
    int scanCode;
    public int flags;
    int time;
    int dwExtraInfo;
    }

    private int LowLevelKeyboardProc(
    int nCode, int wParam,
    ref KBDLLHOOKSTRUCT lParam)
    {
    bool blnEat = false;
    switch (wParam)
    {
    case 256:
    case 257:
    case 260:
    case 261:
    //Alt+Tab, Alt+Esc, Ctrl+Esc, Windows Key
    if (((lParam.vkCode == 9) && (lParam.flags == 32)) ||
    ((lParam.vkCode == 27) && (lParam.flags == 32)) || ((lParam.vkCode ==
    27) && (lParam.flags == 0)) || ((lParam.vkCode == 91) && (lParam.flags
    == 1)) || ((lParam.vkCode == 92) && (lParam.flags == 1)) || ((true) &&
    (lParam.flags == 32)))
    {
    blnEat = true;
    }
    break;
    }

    if (blnEat)
    return 1;
    else return CallNextHookEx(0, nCode, wParam, ref lParam);

    }

    private void KeyboardHook(object sender, EventArgs e)
    {
    intLLKey = SetWindowsHookEx(WH_KEYBOARD_LL,new LowLevelKeyboardProcDelegate(LowLevelKeyboardProc) ,
    System.Runtime.InteropServices.Marshal.GetHINSTANC E(
    System.Reflection.Assembly.GetExecutingAssembly(). GetModules()[0]).ToInt32(), 0);
    }

    private void ReleaseKeyboardHook()
    {
    intLLKey = UnhookWindowsHookEx(intLLKey);
    }

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
    if (checkBox1.Checked)
    KeyboardHook(this, e);
    else
    ReleaseKeyboardHook();
    }
    }
    }

    آخرین ویرایش به وسیله debugger : چهارشنبه 14 بهمن 1388 در 15:11 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •