c++如何在指定进程里 鼠标中键长按和右键长按互换

单击不要换 只要中键按住和右键按住互换的代码
写出完整代码 做为答案 使用c或c++语言

Qt的可以吧
如果行的话,可以参考这篇(别人的)
qt之键盘鼠标事件总结_Littlehero_121的博客-CSDN博客

这个没人,没人教你的话,我来教你

鼠标键配置,针对的是鼠标左右键功能的转换,平时我们都是习惯用鼠标左键点击,代表选中,如果我们要设置成鼠标右键点击代表选中的话,就可以勾选“切换主要和次要的按钮”。





注意:以下是左右键交换的思路代码,可作为您的参考!
首先应检测是否有鼠标或者鼠标按键是否已交换,类中声明IsMouseButtonSwap()函数:
注意,笔记本电脑的触摸板也会被系统认为是鼠标。


// 检测鼠标左右键是否交换,返回-1表示未检测到鼠标,返回0表示未交换,返回1表示已交换
int CSwapMouseButtonDlg::IsMouseButtonSwap()
{
    int nState = GetSystemMetrics(SM_MOUSEPRESENT);  
    if( nState == 0)  
        return -1;   // 未检测到鼠标 
 
    nState = GetSystemMetrics(SM_SWAPBUTTON);  
    return (nState == 0) ? 0 : 1; 
}

在OnInitDialog()函数中添加如下代码:


int nState = IsMouseButtonSwap();
CString strSate = _T("");
switch ( nState )
{
case -1:
    strSate = _T("未检测到鼠标");
    m_btn_swap.EnableWindow(FALSE);
    m_btn_restore.EnableWindow(FALSE);
    break;
case 0:
    strSate = _T("当前状态:未交换");
    break;
case 1:
    strSate = _T("前状态:已交换");
    break;
default:
    break;
}
m_stc_state.SetWindowText(strSate);

两个按钮的响应函数如下:


// 交换按钮响应函数
void CSwapMouseButtonDlg::OnBnClickedButton1()
{
    // 中途拔出鼠标,检测不到鼠标的情况下,提示
    if (IsMouseButtonSwap() == -1)
    {
        m_btn_swap.EnableWindow(FALSE);
        m_btn_restore.EnableWindow(FALSE);
        m_stc_state.SetWindowText(_T("未检测到鼠标"));
        return;
    }
 
    SwapMouseButton(TRUE);
    m_stc_state.SetWindowText(_T("当前状态:已交换"));
}
 
// 还原按钮响应函数
void CSwapMouseButtonDlg::OnBnClickedButton2()
{
    // 中途拔出鼠标,检测不到鼠标的情况下,提示
    if (IsMouseButtonSwap() == -1)
    {
        m_btn_swap.EnableWindow(FALSE);
        m_btn_restore.EnableWindow(FALSE);
        m_stc_state.SetWindowText(_T("未检测到鼠标"));
        return;
    }
 
    SwapMouseButton(FALSE);
    m_stc_state.SetWindowText(_T("当前状态:未交换"));
}

更加详细的实现可以联系我!