0

我想从上下文菜单条向应用程序发送一个字符串。例如,我打开记事本,打开我的应用程序,单击任务栏中的通知图标,然后选择一个项目,我希望它向当前打开的应用程序发送文本 (sendkeys.send)。

这样做的最佳方法是什么?

谢谢。

编辑:只需发送 %{TAB} 即可在除 Windows 8 之外的所有 Windows 版本中使用,并且必须兼容。

4

3 回答 3

1

如果 W8 未经 Microsoft 或自签名认证,则根本不允许对其他应用程序进行击键。

于 2013-05-24T08:20:46.687 回答
0

下面将通过其名称找到一个应用程序(进程)。如果应用程序正在运行,它将收到文本。您只需要使用 ContextMenuStrip 的代码。如果我可能遗漏了什么,请告诉我:

public partial class Form1 : Form
{
    [DllImport("User32")]
    private static extern int SetForegroundWindow(IntPtr hwnd);

    public Form1()
    {
        InitializeComponent();

        Process notepad = Process.GetProcessesByName("notepad").FirstOrDefault();

        if (notepad != null)
        {
            SetForegroundWindow(notepad.MainWindowHandle);
            SendKeys.SendWait("test");
        }

    }

}
于 2013-03-08T17:15:39.920 回答
0

几乎我所有的“它总是在 Windows 8 之前工作”问题的解决方案是将进程设置为以管理员身份运行。就我而言,我使用的是 perl Win32::GuiTest 中的 SendKeys。该程序运行并将焦点设置在右侧窗口上,但拒绝发送任何密钥,除非我将其设置为以管理员身份运行。这可能是因为我发送给的进程是以管理员身份运行的,不知道。

于 2013-05-24T08:03:41.420 回答