很容易将控件放入其中,例如RICHTECTBOX,WEBBRER等。通过窗口完全没有问题。
透明度不是一个大问题,因此可以渗透。但是,当使用快捷键获取窗口焦点(即取消穿透)时,它失败了。寻求具体实施...
我想达到的效果是

1,通常情况下放在顶层;鼠标穿透窗口时无法获得窗口焦点;
2。当需要操作窗口时,可以通过全局快捷键获取焦点,并可以控制窗口。此时,鼠标无法穿透窗口
3,在不需要时,使用快捷键恢复状态1 --------------------编写问题与解答----------- ---------遵循--------------------------------编写问题与解答----------------- ---鼠标可以通过,所以怎么玩。 --------------------编程问题与答案---------------------------- -------------编程问题与答案--------------------取消插入时,请尝试隐藏下一个窗口,------------------编程问题和解答--------------------位于顶层在正常情况下;鼠标不能通过窗口获得窗口焦点;
此功能已实现,建议使用复印软件界面直接在屏幕上书写,这样就没有问题。 --------------------编程问题与解答--------------------我有现成的代码,我晚上会给你。 --------------------编程问答–----------------引用巨六号六号回复地板:鼠标可以通过,然后如何播放。
因此,您需要一个快捷键来还原窗口,否则实际上是无法操作的--------编程问题解答------- ---- ---------全局快捷键可用于注册系统热键! --------------------编程Q&A ----- --------------- 1,在调用全局钩子之后使用快捷键,该消息框将弹出两次,第一个消息框将迅速弹出,第二个消息框将需要等待大约3s
-这是因为键盘有两个事件,key_down和key_up,所以您将看到两个消息框弹出--------------------编程问答--------------------------------------编写问题解答------ ---------- if(kbh.vkCode ==(int)Keys.Y &&(int)Control.ModifierKeys ==(int)Keys.Control +(int ...

-我认为这行代码应该有点问题,并且会遇到优先级问题,最好编写if(kbh.vkCode ==(int)Keys.Y &&((int)Control.ModifierKeys == (int)键.Control +(int ...)),您可以尝试看一下--------------------编程Q&A ------- ------ -------引用13楼lihuoyin1226的回复:1.用快捷键调用全局挂钩后,消息框弹出两次,第一个消息框弹出很快,第二个将不得不等待约3秒。
-这是因为键盘有两个事件,key_down和key_up,所以您将看到两个消息框弹出
事实如此,我忽略了这一点,谢谢
现在的主要问题在于如何恢复窗口的焦点和不可穿透性。
我重新编写了代码,该代码更加清晰,但是仍然出现提示框,并且无法更改窗口状态。 API使用不正确吗?首先,我怀疑没有正确获得窗口指针,因此我将窗口指针设置为全局变量。我仍然无法进入,要求指示
public partial class Form1 : Form
{//钩子API
[DllImport("user32.dll")]
public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint control, Keys vk);
[DllImport("user32.dll")]
public static extern bool UnregisterHotKey(IntPtr hWnd, int id);
//窗口API
[DllImport("user32.dll", EntryPoint = "GetWindowLong")]
public static extern long GetWindowLong(IntPtr hwnd, int nIndex);
[DllImport("user32.dll", EntryPoint = "SetWindowLong")]
public static extern long SetWindowLong(IntPtr hwnd, int nIndex, long dwNewLong);
[DllImport("user32", EntryPoint = "SetLayeredWindowAttributes")]
public static extern int SetLayeredWindowAttributes(IntPtr Handle, int crKey, byte bAlpha, int dwFlags);
const int GWL_EXSTYLE = -20;
const int WS_EX_TRANSPARENT = 0x20;
const int WS_EX_LAYERED = 0x80000;
const int LWA_ALPHA = 2;
IntPtr ip;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
ip = this.Handle;
this.Opacity = 0.8;
this.TopMost = true;
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;
RegisterHotKey(this.Handle, 225, 0, Keys.X);
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) |WS_EX_TRANSPARENT| WS_EX_LAYERED);
SetLayeredWindowAttributes(Handle, 0, 128, LWA_ALPHA);
}
protected override void WndProc(ref Message m)
{
if (m.WParam.ToString().Equals("225"))
{
SetWindowLong(ip, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE));
MessageBox.Show("X"); }
base.WndProc(ref m);
}
--------------------编程问题与解答--------------------最好拍照只要解释一下,您就会明白您的意思。
补充:.NET技术 , C#
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-356735-2.html
你们以一等人居之很好
除了总吨位超过外
怎么感觉美佬象个小孩