• 大小: 15KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: C#
  • 标签: C#  数字键盘  OSK  

资源简介

C# 数字键盘实现,类似微软的小键盘功能,只有数字功能区,字母功能可以下载后进行改进

资源截图

代码片段和文件信息

using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace OskNum
{
    public partial class frmMain : Form
    {
        private const int GWL_EXstyle = -20;
        private const int WS_EX_NOACTIVATE = 0x8000000;

        [DllImport(“user32.dll“)]
        public static extern int SetWindowLong(IntPtr window int index int value);

        [DllImport(“user32.dll“)]
        public static extern int GetWindowLong(IntPtr window int index);        

        [DllImport(“user32.dll“ EntryPoint = “keybd_event“)]
        public static extern void keybd_event(
            byte bVk                          //定义一个虚据拟键码。键码值必须在1~254之间。
            byte bScan                        //定义该键的硬件扫描码
            int dwFlags
            int dwExtraInfo
            );
        
        public frmMain()
        {
            InitializeComponent();
            for (int i = 0; i < 10; i++)
            {
                this.Controls.Find(string.Format(“panel{0}“ i) true)[0].Click += Item_Click;
                this.Controls.Find(string.Format(“label{0}“ i) true)[0].Click += Item_Click;
            }
            labelb.Click += back_Click;
            panelb.Click += back_Click;
        }

        private void enter_Click(object sender EventArgs e)
        {
            sendData(13);
        }

        private void back_Click(object sender EventArgs e)
        {
            sendData(8);
        }

        private void Item_Click(object sender EventArgs e)
        {
            Control ctl = (Control)sender;
             if(!string.IsNullOrEmpty(ctl.Tag.ToString()))
                sendData((byte)ctl.Tag.ToString()[0]);
        }

        private void frmMain_Load(object sender EventArgs e)
        {
            SetWindowLong(this.Handle GWL_EXstyle GetWindowLong(this.Handle GWL_EXstyle) | WS_EX_NOACTIVATE);
        }

        private void sendData(byte data)
        {
            keybd_event(data 0 0 0);                      //Q压下
            keybd_event(data 0 0x02 0);
        }
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-11-16 21:35  OskNum\
     目录           0  2018-11-16 21:33  OskNum\OskNum\
     文件        1117  2018-11-06 23:55  OskNum\OskNum.sln
     文件         184  2018-11-06 23:55  OskNum\OskNum\App.config
     目录           0  2018-11-16 21:33  OskNum\OskNum\bin\
     目录           0  2018-11-16 21:33  OskNum\OskNum\bin\Release\
     文件        2179  2018-11-16 21:30  OskNum\OskNum\frmMain.cs
     文件       16865  2018-11-16 21:28  OskNum\OskNum\frmMain.Designer.cs
     文件        5817  2018-11-16 21:28  OskNum\OskNum\frmMain.resx
     文件       67646  2018-11-10 13:39  OskNum\OskNum\keyboard.ico
     目录           0  2018-11-16 21:33  OskNum\OskNum\obj\
     目录           0  2018-11-16 21:33  OskNum\OskNum\obj\Release\
     目录           0  2018-11-16 21:33  OskNum\OskNum\obj\Release\TempPE\
     文件        3799  2018-11-16 21:29  OskNum\OskNum\OskNum.csproj
     文件         387  2018-11-16 21:27  OskNum\OskNum\Program.cs
     目录           0  2018-11-16 21:31  OskNum\OskNum\Properties\
     文件        1325  2018-11-16 21:31  OskNum\OskNum\Properties\AssemblyInfo.cs
     文件        2853  2018-11-06 23:55  OskNum\OskNum\Properties\Resources.Designer.cs
     文件        5612  2018-11-06 23:55  OskNum\OskNum\Properties\Resources.resx
     文件        1106  2018-11-06 23:55  OskNum\OskNum\Properties\Settings.Designer.cs
     文件         249  2018-11-06 23:55  OskNum\OskNum\Properties\Settings.settings

评论

共有 条评论