模拟“Windows”键和“+”键放大

时间:2012-05-11 05:48:53

标签: c# automation autoit keystroke

Windows 7(最后)具有内置的屏幕缩放功能。按住“Windows”键,然后可以使用“+”键放大,使用“ - ”键缩小。结果我一直试图模拟这种组合。有了AutoIt,我试过了:

1)

Send("{LWINDOWN}" & "+" & "{LWINUP}")

2)

$x = Chr(43)
Send("{LWINDOWN}" & $x & "{LWINUP}")

3)

Send("#{+}") ;//works but it also sends "+" key

4)

Send("{LWINDOWN}")
Sleep(10)
Send("+",1)
Sleep(10)
Send("{LWINUP}")

这四个步骤都不起作用......

我实际上想在c#上使用此功能。如果我设法用autoit做到这一点,我可以用c#调用该脚本,所以我不介意langauage。我也在模拟按键,因为我不知道如何使用c#进行放大。

3 个答案:

答案 0 :(得分:5)

导入位于以下位置的库:

http://inputsimulator.codeplex.com/

然后做:

 WindowsInput.InputSimulator.SimulateKeyDown
                          (WindowsInput.VirtualKeyCode.LWIN);
 WindowsInput.InputSimulator.SimulateKeyPress
                          (WindowsInput.VirtualKeyCode.OEM_PLUS);
 WindowsInput.InputSimulator.SimulateKeyUp
                          (WindowsInput.VirtualKeyCode.LWIN);

答案 1 :(得分:4)

你差不多......实际的语法是发送(“{LWIN DOWN}”&“+”&“{LWIN UP}”)。

答案 2 :(得分:0)

你可以做这样的事情

SendKeys.SendWait("{F1}");

如果你想把它叫到某个窗口,你可以使用

 [DllImport("user32.dll")]
public static extern int SetForegroundWindow(IntPtr hWnd);

然后

Process[] processes = Process.GetProcessesByName("Some.exe");

        foreach(Process proc in processes)
        {
            SetForegroundWindow(proc.MainWindowHandle);
            SendKeys.SendWait("{F1}");
        }