0

C#.NET プロジェクトのクラスの先頭に次のコードがあります。

[DllImport("user32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);

[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr GetForegroundWindow();

[DllImport("user32.dll")]
private static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo);

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint virtualKey);

以下は、私が他の場所で使用しようとしている方法です。

private void CopyHighlighted()
{
   uint KEYEVENTF_KEYUP = 2;
   byte VK_CONTROL = 0x11;
   SetForegroundWindow(GetForegroundWindow());
   keybd_event(VK_CONTROL, 0, 0, 0);
   keybd_event(0x43, 0, 0, 0); 
   keybd_event(0x43, 0, KEYEVENTF_KEYUP, 0);
   keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
}

このコードは以前は機能していました。しかし、ウィンドウ内のテキストを強調表示して呼び出すと、クリップボードは空のままになります。誰もこの動作を見たことがありますか?

4

0 に答える 0