1

タイトルは自由に編集してください。

わかりましたので、メディアプレーヤーの次の曲にスキップする短いキーボタンを作成しようとしていますか? FN + F11のようにいくつかのキーボードが持っているもののように、それは次の曲に移動しますとにかくそれを自分のキーボードのC#に統合することはありますか? 私はこれまでのところこのコードを持っていますが、すべてのことはテキストボックス1にメッセージを投稿することです.

// Structure contain information about low-level keyboard input event 
[StructLayout(LayoutKind.Sequential)]
private struct KBDLLHOOKSTRUCT
{
    public Keys key;
    public int scanCode;
    public int flags;
    public int time;
    public IntPtr extra;
}
//System level functions to be used for hook and unhook keyboard input  
private delegate IntPtr LowLevelKeyboardProc(int nCode, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr SetWindowsHookEx(int id, LowLevelKeyboardProc callback, IntPtr hMod, uint dwThreadId);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern bool UnhookWindowsHookEx(IntPtr hook);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr CallNextHookEx(IntPtr hook, int nCode, IntPtr wp, IntPtr lp);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr GetModuleHandle(string name);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern short GetAsyncKeyState(Keys key);
//Declaring Global objects     
private IntPtr ptrHook;
private LowLevelKeyboardProc objKeyboardProcess;

private IntPtr captureKey(int nCode, IntPtr wp, IntPtr lp)
{
    if (nCode >= 0)
    {
        KBDLLHOOKSTRUCT objKeyInfo = (KBDLLHOOKSTRUCT)Marshal.PtrToStructure(lp, typeof(KBDLLHOOKSTRUCT));

        // Keys
        if (objKeyInfo.key == Keys.F10 && ModifierKeys == Keys.Alt)
        {
            textBox1.Focus();
            a += 1;
            c += 1;
            textBox1.Text += Convert.ToString(c) + ". " + "Previous Song" + Environment.NewLine;
            PrevSongCount.Text = Convert.ToString(a);
            AllUpCount.Text = Convert.ToString(c);
            return (IntPtr)1;
        }
        if (objKeyInfo.key == Keys.F11 && ModifierKeys == Keys.Alt)
        {
            textBox1.Focus();
            b += 1;
            c += 1;
            textBox1.Text += Convert.ToString(c) + ". " + "Next Song" + Environment.NewLine;
            NextSongCount.Text = Convert.ToString(b);
            AllUpCount.Text = Convert.ToString(c);
            return (IntPtr)1;
        }
    }
    return CallNextHookEx(ptrHook, nCode, wp, lp);
}
bool HasAltModifier(int flags)
{
    return (flags & 0x20) == 0x20;
}
4

1 に答える 1