从C#中修改任何窗口的不透明度

是否有可能修改从C#打开的所有窗口的不透明度。 我GOOGLE了最小化的窗口,我才知道它可能与pInvoke调用。 它甚至工作。 同样,有可能从C#中更改所有打开的窗口的不透明度?

另外,我不在MFC的东西。 还有没有什么工具可以知道在dll中暴露的apis列表?

Solutions Collecting From Web of "从C#中修改任何窗口的不透明度"

您可以使用SetLayeredWindowAttributes API来执行此操作。

选中此API的pInvoke版本。

来自上述链接的示例代码:

[DllImport("user32.dll")] static extern bool SetLayeredWindowAttributes(IntPtr hwnd, uint crKey,byte bAlpha, uint dwFlags); public const int GWL_EXSTYLE = -20; public const int WS_EX_LAYERED = 0x80000; public const int LWA_ALPHA = 0x2; public const int LWA_COLORKEY = 0x1; //set the window style to alpha appearance private void button4_Click(object sender, EventArgs e) { SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) ^ WS_EX_LAYERED); SetLayeredWindowAttributes(Handle, 0, 128, LWA_ALPHA); }