当前位置: 首页 > news >正文

怎么创建一个网站卖东西网站如何发布

怎么创建一个网站卖东西,网站如何发布,华为网站的建设目标,wordpress主题英文改中文版一、简述 某些应用,我们希望全局自定义热键。按键少了会和别的应用程序冲突,按键多了可定用户操作不变。因此我计划左手用CtrlAlt,右手用鼠标右键呼出我自定义的菜单。 我使用键盘和鼠标事件进行简单测试(Ctrl鼠标右键&#xff…

一、简述

某些应用,我们希望全局自定义热键。按键少了会和别的应用程序冲突,按键多了可定用户操作不变。因此我计划左手用Ctrl+Alt,右手用鼠标右键呼出我自定义的菜单。

我使用键盘和鼠标事件进行简单测试(Ctrl+鼠标右键),发现并不能成功。

RegisterHotKey(hWnd, HOTKEY_ID, (int)Modifiers.Control, (int)Keys.RButton);

因此只好使用“钩子”。

二、添加引用

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;

三、定义变量

private const int WH_MOUSE_LL = 14;
private const int WM_RBUTTONDOWN = 0x0204;
private const int VK_CONTROL = 0x11;
private const int VK_MENU = 0x12;
private HookProc mouseProc;
private IntPtr hookId = IntPtr.Zero;
public event EventHandler HotkeyPressed;

四、编写过程

private IntPtr SetMouseHook(HookProc proc)
{using (Process curProcess = Process.GetCurrentProcess())using (ProcessModule curModule = curProcess.MainModule){return SetWindowsHookEx(WH_MOUSE_LL, proc, GetModuleHandle(curModule.ModuleName), 0);}
}
private IntPtr MouseHookCallback(int nCode, IntPtr wParam, IntPtr lParam)
{if (nCode >= 0 && wParam == (IntPtr)WM_RBUTTONDOWN){int ctrl_keyState = GetAsyncKeyState(VK_CONTROL);int alt_keyState = GetAsyncKeyState(VK_MENU);// 检查Ctrl键和Alt键是否同时按下if ((ctrl_keyState < 0) & (alt_keyState < 0)) {HotkeyPressed?.Invoke(this, EventArgs.Empty);// 返回非零值以阻止事件传递给其他窗口return new IntPtr(1);}}return CallNextHookEx(hookId, nCode, wParam, lParam);
}
private delegate IntPtr HookProc(int code, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hMod, uint dwThreadId);[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool UnhookWindowsHookEx(IntPtr hhk);[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam);[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr GetModuleHandle(string lpModuleName);[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern short GetAsyncKeyState(int vKey);private void HotkeyExample_HotkeyPressed(object sender, EventArgs e)
{Console.WriteLine("Ctrl+Alt+鼠标右键被按下");// 可以执行其他操作...if (this.WindowState == FormWindowState.Minimized){POINT M_Point = GetMousePosition();this.WindowState = FormWindowState.Normal;}else{this.WindowState = FormWindowState.Minimized;}
}

五、调用

private void Form1_Load(object sender, EventArgs e)
{this.HotkeyPressed += HotkeyExample_HotkeyPressed;mouseProc = MouseHookCallback;hookId = SetMouseHook(mouseProc);}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{UnhookWindowsHookEx(hookId);
}

六、运行效果

 通过以上代码,自定义窗体顺利弹出,而且并不会与别的程序冲突,满足了需求。

http://www.mmbaike.com/news/74228.html

相关文章:

  • 宝塔面板做网站绑定域名电商推广联盟
  • 公司网站谁负责做搜索引擎优化的内容包括
  • 手机网站如何建站it教育培训机构
  • 免费做电子请帖的网站西安百度seo推广
  • 接做名片的网站百度快照怎么发布
  • 苏州哪里有做淘宝网站的百度广告安装入口
  • wordpress css样式整站优化推广
  • 有什么设计logo网站今日新闻网
  • 北京网站建设最便宜的公司哪家好推广优化工具
  • 电玩网站开发磁力搜索引擎torrentkitty
  • 单页静态网站怎么做互联网推广渠道有哪些
  • 自己做的网站怎么才有用户访问软文广告范文
  • 上海网站托管网络营销策略都有哪些
  • 做网站的前提哪个平台推广效果最好
  • 网站建设分金手指排名二九新闻稿
  • 做面条的网站做任务赚佣金的正规平台
  • 衢州网站建设兼职seo营销排名
  • 做网站v1认证需要付费吗国外免费发产品的b2b平台
  • 广西网站建设与规划关键词搜索排名查询
  • 厦门网站建设阳哥成都seo经理
  • 网上注册公司在哪办结构优化设计
  • 500元建站h5制作
  • 网络建设网站有关知识在线seo工具
  • 网站 默认首页如何建立网站的步骤
  • 青岛建设网站制作湖南靠谱关键词优化
  • php网站开发如何实现删除功能2022年最火的电商平台
  • 长沙网站排名公司朋友圈营销
  • 做徽章的网站今天大事件新闻
  • 信阳做网站seo快排优化
  • 用vs2010做网站seo常用工具包括