精易论坛

标题: 长按鼠标左键1秒或者1.5秒,然后执行我设置好的内容怎么写 [打印本页]

作者: 恒久忍耐    时间: 2024-8-6 16:13
标题: 长按鼠标左键1秒或者1.5秒,然后执行我设置好的内容怎么写
我想在电脑整个桌面,的任意窗口  有文字输入框的地方 ,长安鼠标左键1秒 就会把我原来剪辑板上的内容  粘贴出去  有没有给我写个详细一点的,我刚研究这个  好多不懂

作者: LEOONL    时间: 2024-8-6 16:13
自动粘贴.rar (335.98 KB, 下载次数: 18)
是这个效果吗

作者: 鹏书    时间: 2024-8-6 16:18
判断按下鼠标的时间跟抬起鼠标的时间差就好了
作者: 7ian    时间: 2024-8-6 16:23
还是你,加个时钟就是,或者搞个线程




补充内容 (2024-8-6 16:25):
1秒内放开就不会触发;用线程写也一样,启动线程,记录好线程句柄,用来销毁;线程内部延迟1秒再触发
作者: shaokui123    时间: 2024-8-6 16:42
这个岂不是要后台监控了
作者: 浅黑    时间: 2024-8-6 16:44
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口  精易模块请自个调用
变量名类 型数组备 注
state整数型  
hHook整数型  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
hHook = SetWindowsHookExA (14, &lpfunc, GetModuleHandleA1 (0), 0)
子程序名返回值类型公开备 注
lpfunc整数型 
参数名类 型参考可空数组备 注
nCode整数型
wParam整数型
lParam整数型
判断 (wParam = 513)
state = 1
启动线程 (&校验, 取启动时间 (), )
判断 (wParam = 514)
state = 2



返回 (CallNextHookEx (hHook, nCode, wParam, lParam))
子程序名返回值类型公开备 注
__启动窗口_将被销毁  
UnhookWindowsHookEx (hHook)
子程序名返回值类型公开备 注
校验  
参数名类 型参考可空数组备 注
t整数型
循环判断首 ()
调试输出 (取启动时间 () - t)
如果真 (取启动时间 () - t ≥ 1500)
键盘_组合按键 (86, #Ctrl键, , )
返回 ()

延迟 (100)
循环判断尾 (state = 1)


i支持库列表   支持库注释   
EThread多线程支持库
spec特殊功能支持库






补充内容 (2024-8-6 16:44):
哥,看看我的
作者: 浅黑    时间: 2024-8-6 17:37
这样写也行

  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口  精易模块请自个调用
变量名类 型数组备 注
state整数型  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
鼠标_监视_安装 (&lpfunc)
子程序名返回值类型公开备 注
lpfunc  
参数名类 型参考可空数组备 注
nCode整数型
wParam整数型
lParam整数型
判断 (wParam = 1)
state = 1
启动线程 (&校验, 取启动时间 (), )
判断 (wParam = 2)
state = 2



返回 ()
子程序名返回值类型公开备 注
__启动窗口_将被销毁  
鼠标_监视_卸载 ()
子程序名返回值类型公开备 注
校验  
参数名类 型参考可空数组备 注
t整数型
循环判断首 ()
调试输出 (取启动时间 () - t)
如果真 (取启动时间 () - t ≥ 1500)
键盘_组合按键 ( #V键, #Ctrl键 )
跳出循环 ()

延迟 (10)
循环判断尾 (state = 1)


i支持库列表   支持库注释   
EThread多线程支持库
spec特殊功能支持库


作者: EX飞哥    时间: 2024-8-6 18:41
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

public class GlobalClipboardPaster
{
    // 定义Windows API常量
    private const int WM_SETTEXT = 0x0C;
    private const int WM_KEYDOWN = 0x0100;
    private const int WM_LBUTTONDOWN = 0x0201;
    private const int WM_LBUTTONUP = 0x0202;
    private const int WM_CONTEXTMENU = 0x007B;
    private const int WM_COPY = 0x0301;
    private const int WM_PASTE = 0x0302;
    private const int WM_RBUTTONUP = 0x0205;
    private const int WM_MOUSEACTIVATE = 0x0021;

    // 定义Windows API函数
    [DllImport("user32.dll")]
    private static extern IntPtr PostMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);

    [DllImport("user32.dll")]
    private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);

    [DllImport("user32.dll")]
    private static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vk);

    [DllImport("user32.dll")]
    private static extern bool UnregisterHotKey(IntPtr hWnd, int id);

    // 定义快捷键ID
    private const int HOTKEY_ID = 1;

    // 主窗体
    public static Form MainForm;

    public static void Main()
    {
        // 创建主窗体
        MainForm = new Form
        {
            Width = 800,
            Height = 600
        };
        MainForm.KeyPreview = true;
        MainForm.KeyDown += MainForm_KeyDown;

        // 注册快捷键(Win + P)
        const int MOD_WIN = 0x0001; // 定义Windows键的修饰符
        const int VK_P = 0x50; // 定义P键的虚拟键码
        RegisterHotKey(MainForm.Handle, HOTKEY_ID, MOD_WIN, VK_P);

        MainForm.Show();
        Application.Run(MainForm);
    }

    // 快捷键事件处理
    private static void MainForm_KeyDown(object sender, KeyEventArgs e)
    {
        // 检测是否按下了快捷键
        if (e.Control && e.KeyCode == Keys.V)
        {
            // 模拟粘贴操作
            PostMessage(GetForegroundWindow(), WM_PASTE, IntPtr.Zero, IntPtr.Zero);
        }
    }

    // 获取当前活动窗口的句柄
    [DllImport("user32.dll")]
    private static extern IntPtr GetForegroundWindow();
}




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4