我想编写一个应用程序来处理某些用户操作。
应用程序将始终是透明的,应该可以点击。因此,后面的窗口将被看到,并且当透明应用程序被点击时,我应该能够点击后面的窗口。我只想在我的透明应用程序中处理某些用户操作(如双击)。
这有可能实现吗?任何准则表示赞赏。
最佳答案
您可以从您的应用程序中制作虚假的窗口点击:
[DllImport("user32.dll",CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);
private const int MOUSEEVENTF_LEFTDOWN = 0x02;
private const int MOUSEEVENTF_LEFTUP = 0x04;
private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
private const int MOUSEEVENTF_RIGHTUP = 0x10;
private void Form_MouseClick(object sender, MouseEventArgs e)
{
this.Hide();
Point p = this.PointToScreen(e.Location);
mouse_event(MOUSEEVENTF_LEFTDOWN , p.X, p.Y, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, p.X, p.Y, 0, 0);
this.Show();//since this.opacity = 0; form will never be really visible
}
现在双击你可以设置任何你想要的。
关于c# - 在 Windows 中覆盖的透明窗口应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9500563/