小编Res*_*ict的帖子

拦截 Ctrl + V 然后传播

我需要拦截粘贴操作 ( Ctrl+ V) 并修改剪贴板内容并传播操作。

我有一个简单的 Winform 应用程序。我可以通过以下方式注册一个全局钩子

RegisterHotKey(this.Handle, id, (int)KeyModifier.Control, Keys.V.GetHashCode());  
Run Code Online (Sandbox Code Playgroud)

然后我可以通过以下方式更改剪贴板内容

Clipboard.SetText("some text");
Run Code Online (Sandbox Code Playgroud)

我需要知道的是如何从现在开始传播正常的粘贴操作。

例如:如果我的应用程序已最小化,而另一个应用程序(例如记事本)已打开并处于焦点中。用户按下Ctrl+V或使用粘贴菜单,然后我的拦截器应该更改剪贴板的内容,并将这些内容粘贴到记事本上。

c# clipboard paste

5
推荐指数
0
解决办法
476
查看次数

多次触发剪贴板更新事件

我正在尝试制作一个全局多值剪贴板。我使用了一个堆栈来存储这些值。我WinProc()用来捕获全局复制操作,我将值推送到堆栈上。同样,我使用 Windows 键盘挂钩来捕获 Ctrl-V(粘贴)操作。这两个函数的代码如下。我已经复制和修改代码

        private int KbHookProc(int nCode, IntPtr wParam, IntPtr lParam)
    {
        if (nCode >= 0)
        {
            var hookStruct = (KbLLHookStruct)Marshal.PtrToStructure(lParam, typeof(KbLLHookStruct));

            // Quick and dirty check. You may need to check if this is correct. See GetKeyState for more info.
            bool ctrlDown = GetKeyState(VK_LCONTROL) != 0 || GetKeyState(VK_RCONTROL) != 0;

            if (ctrlDown && hookStruct.vkCode == 0x56) // Ctrl+V
            {
                if (clipBoardStack.Count > 0)
                {
                    lock (this)
                    {
                        localChange = true;
                        RemoveClipboardFormatListener(this.Handle);     // Remove our …
Run Code Online (Sandbox Code Playgroud)

c# clipboard copy-paste keyboard-hook setwindowshookex

3
推荐指数
1
解决办法
1421
查看次数

具有严格 1-2 关系的实体

我试图了解当关系具有精确性质时,我们如何建模和定义两个实体的基数。让我们说 1 到 2。

例如,如果我有实体 Journey 和 Location。现在每个旅程都有 2 个位置,一个起始位置和一个结束位置。

那么我们如何建模这种关系并将基数放在每个实体(旅程和位置)上。

简单的 google 搜索结果是简单的 1-1、1-m 和 mn 关系解释。但是我们如何将它们限制为恰好 1-2 呢?

database-design entity-relationship er-diagram

2
推荐指数
1
解决办法
1857
查看次数

有没有办法坚持UIAutomation元素?

我在Windows 7(64位)上使用MS UIAutomation.我想知道是否有可能使UIAutomation元素持续存在,如果是这样,那么可能是起点.

我想出的唯一的东西是元素的RuntimeID,但问题是某些元素可能没有id.

我想要实现的一个简单场景是,我通过使用AutomationElement.FromPoint()它来找出屏幕上控件的UIAutomation元素,现在我想要保留它,以便下次我可以通过"加载"它来轻松访问它UIAutomation Element.

c# microsoft-ui-automation

1
推荐指数
1
解决办法
174
查看次数