我不能通过 C# 中的句柄设置窗口的透明度吗?

2024-04-10

我正在尝试设置所有窗口的透明度。我有以下代码。

public partial class Form1 : Form
{
    [DllImport("user32.dll")]
    static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);

    [DllImport("user32.dll")]
    static extern int GetWindowLong(IntPtr hWnd, int nIndex);

    [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 Form1()
    {
        InitializeComponent();
        this.Load += new EventHandler(Form1_Load);
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        Process[] processlist = Process.GetProcesses();

        foreach (Process theprocess in processlist)
        {
            SetWindowLong(theprocess.Handle, GWL_EXSTYLE,
                GetWindowLong(theprocess.Handle, GWL_EXSTYLE) ^ WS_EX_LAYERED);
            SetLayeredWindowAttributes(theprocess.Handle, 0, 128, LWA_ALPHA);
        }

    }
}

当我执行代码时什么也没有发生。

怎么了??


SetWindowLong接受一个窗口句柄(hWnd),但您传递给它的是一个进程句柄。 更改所有实例

theprocess.Handle

to

theProcess.MainWindowHandle

更改后,它可以在我测试的 Windows XP 机器上运行。现在我必须修改代码才能使窗口恢复正常;)幸运的是,Visual Studio 2010 窗口不受影响。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我不能通过 C# 中的句柄设置窗口的透明度吗? 的相关文章

  • MVC Core IActionResult 含义

    什么是IActionResult 我尝试查看 MSDN 和其他网站 但需要通用 常见 易于理解的答案 MSDN IActionResult https learn microsoft com en us dotnet api microso
  • 用 C# 启动 Windows 服务

    我想启动一个刚刚安装的Windows服务 ServiceBase ServicesToRun if bool Parse System Configuration ConfigurationManager AppSettings RunSe
  • 泛型与接口的实际优势

    在这种情况下 使用泛型与接口的实际优势是什么 void MyMethod IFoo f void MyMethod
  • C++ 中的单例和抽象基类

    最近我遇到了关于实现 Singleton 但涉及抽象基类的问题 假设我们有这样的类层次结构 class IFoo it s ABC class Foo public IFoo 我们的单例类定义如下 template
  • 如何“杀死”Pthread?

    我正在学习 Pthreads 并且想知道杀死这样一个对象的最佳方法是什么 在寻找类似的问题后 我无法找到 明确 的答案 但请随时向我指出任何相关问题 我正在使用一个小型客户端服务器应用程序 其中服务器主线程正在侦听套接字上的客户端连接 每次
  • C++ 非类型参数包扩展

    我正在编写由单一类型参数化的模板函数 并且具有可变数量的相同类型 而不是不同类型 的参数 它应该检查第一个值是否在其余值中 我想这样写 include
  • 使用 Selenium for C# 登录 Facebook

    我一直在使用 Selenium C 框架并尝试进行 facebook 登录 但没有任何运气 这是我到目前为止得到的 基于这篇文章 使用 Selenium 测试 Facebook Connect 应用程序 https stackoverflo
  • 具有多重继承的类的 sizeof

    首先 我知道 sizeof 取决于机器和编译器的实现 我使用的是 Windows 8 1 x64 gcc 5 3 0 没有标志传递给编译器 我从大学讲座中得到了以下代码 include
  • async wait 在调用异步方法时返回 Task> 而不是 List

    我正在尝试了解 async wait 的用法 并且研究了一些博客文章 现在我已经编写了一个测试代码 但它没有按照我期望的方式工作 我有一个返回列表的方法 private List
  • C++ 中的 Java ArrayList [重复]

    这个问题在这里已经有答案了 在Java中我可以做 List
  • 获取给定EntityType的导航属性

    我在用VS2010 EF4 0 需要如下功能 private string GetNaviProps Type entityType eg typeof Employee NorthwindEntities en new Northwind
  • 如何附加到 xml

    我有这个xml
  • 在不使用 Thread.Sleep c# 的情况下延迟发送电子邮件

    我有一个 for 循环 它循环并每个循环发送一封电子邮件 现在我正在使用 thread sleep 但我希望用户仍然能够与程序交互 只需取消该循环即可 是否可以在不使用 thread sleep 的情况下做到这一点 您是否在 UI 线程上运
  • 简单的文档管理系统和API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • C# 的空条件委托调用线程安全吗? [复制]

    这个问题在这里已经有答案了 这就是我一直以来编写事件引发者的方式 例如属性更改 public event PropertyChangedEventHandler PropertyChanged private void RaisePrope
  • System.diagnostics.process 进程在托管后无法在 IIS 上运行?

    我正在尝试从网络应用程序安装 exe 当我在本地运行应用程序 从 asp 开发服务器 时 它安装正确 但当我托管在 IIS 上时 它不起作用 我在asp net页面的Page load方法上编写了这段代码 想要在客户端计算机上安装Test
  • Qt:将拖放委托给子级的最佳方式

    我在 QWidget 上使用拖放 我重新实现了 DragEnterEvent dragLeaveEvent dragMoveEvent 和 dropEvent 效果很好 在我的 QWidget 中 我有其他 QWidget 子级 我希望它们
  • 将小数格式化为两位或整数

    对于 10 我想要 10 而不是 10 00 对于 10 11 我想要 10 11 没有代码可以实现吗 即通过指定格式字符串类似于 0 N2 decimal num 10 11M Console WriteLine num ToString
  • 在类中使用 std::chrono::high_resolution_clock 播种 std::mt19937 的正确方法是什么?

    首先 大家好 这是我在这里提出的第一个问题 所以我希望我没有搞砸 在写这篇文章之前我用谷歌搜索了很多 我对编码 C 很陌生 我正在自学 考虑到有人告诉我 只为任何随机引擎播种一次是一个很好的做法 我在这里可能是错的 什么是正确 最佳 更有效
  • 具有多种类型的 C# 泛型类型推断

    我有以下通用方法 用于将一种类型的输入对象序列化为超类型 如下所示 public string SerialiseAs

随机推荐

  • 如何使用 Linq To XML 获取元素值

    使用 Linq To XML 如何从下面的 xml 中获取 space id 值 720 我在读this http msdn microsoft com en us library bb308960 aspx但我认为xml中的命名空间是我的
  • 让 GitLab CI 克隆私有存储库

    我设置了 GitLab 和 GitLab CI 来托管和测试我的一些私人存储库 对于此系统下的作曲家模块 我设置了 Satis 来解析我的私有包 显然这些私有包需要 ssh 密钥来克隆它们 并且我在终端中可以使用它 我可以运行compose
  • ADO.Net (Azure AD) 错误“不支持关键字:身份验证”

    我正在尝试通过 C 代码使用 Azure AD 凭据连接到 Azure 数据库 代码如下 它在我的系统上运行良好 但是当我将它部署到32位VM时 它显示错误 不支持关键字 身份验证 VM 安装了 Net Framework 4 5 但未安装
  • 仅 Detox 测试启动画面

    我正在我的 React Native 项目上运行 detox 并且只能测试启动屏幕 启动屏幕进入登录屏幕 但排毒代码不允许我测试此元素 测试代码 describe Splash gt beforeEach async gt await de
  • java - 如何检查我的对象是否属于给定类的类型?

    我的方法获取 Class 作为参数 我必须检查我的变量是否属于 class 类型 Volvo v1 new Volvo Class aClass v1 getClass check aClass 在里面我需要做类似的事情 v2 instan
  • 输出到另一个窗口

    有没有办法直接在 VB NET 中打开窗体并在第二个监视器中最大化 也就是说 如果显示两个监视器 默认情况下第二个窗口中的表单加载会最大化吗 假设一个程序是用两种形式编写的 并且一台计算机连接了两个显示器 我希望 FormA 默认显示在 M
  • PyCharm:无法使用 docker-compose 创建远程 python 解释器

    尝试在 PyCharm 中创建 docker compose python 解释器时出现错误 解析 Users belek Projects project docker compose yml 时出错 进程docker compose c
  • 按一列中的因素拆分/子集数据框[重复]

    这个问题在这里已经有答案了 我的数据是这样的 例如 ID Rate State 1 24 AL 2 35 MN 3 46 FL 4 34 AL 5 78 MN 6 99 FL Data structure list ID 1 6 Rate
  • 致命错误:AST 文件格式错误或损坏 - Xcode

    在最新版本的 Xcode 中构建我的应用程序时出现此错误 致命错误 AST 文件格式错误或损坏 无法加载模块 Users me Library Developer Xcode DerivedData ModuleCache XYZYIE6Z
  • CMake FindThreads.cmake 找不到我的 pthreads.h 标头

    我在用着android cmake http code google com p android cmake 编译 Android 应用程序 这实质上创建了一个 CMake 工具链文件 用于使用 Android NDK 提供的工具链 As
  • Markdown 中的 RTL

    是否有任何现有的 Markdown 插件规范包含对 RTL 语言的支持 我希望是这样的 This paragraph is left to right lt This paragraph is right to left 或者其他什么 我可
  • Jquery Sortable,通过拖出删除当前Item

    我的问题 sortable 事件 out 当我在列表中拖动某些内容或对列表进行排序时触发 但我只想在拖出项目时启动该功能 My code document ready function ust div1 sortable out funct
  • 正则表达式最多匹配 4 个空格

    我有一个正则表达式来匹配一个人的名字 到目前为止 我有 a zA Z s 但我想添加一个检查以允许最多 4 个空格 我该如何修改它才能做到这一点 Edit 我的意思是字符串中任意位置有 4 个空格 不要尝试使用正则表达式验证名称 人们可以随
  • 如何使用 Bincode 在 Rust 中序列化 Enum,同时保留 Enum 判别式而不是索引?

    我一直在使用 bincode 在 Rust 中序列化枚举 但我面临一个问题 我收到枚举变体的索引而不是其指定的判别式 这是我尝试序列化的枚举的示例 derive Debug PartialEq Eq Serialize Deserializ
  • 在错误位置寻找模块的代码

    我使用 build dojotoolkit org 我的第一次尝试 创建了一个包含 3 层的多层构建 dojo js dojox js dijit js 每个 js 文件都上传到自己的文件夹中 dojo dojox dijit 当我运行代码
  • pip - 即使安装成功后也没有名为“pip”的模块

    我正在尝试在 Windows 10 系统上安装 pip 我得到了 get pip py 文件并运行了命令 python get pip py 这是终端的快照 python get pip py Collecting pip Using ca
  • 限制视图中的字符/单词 - Ruby on Rails

    我正在使用 Ruby on Rails 构建的一个非常简单的博客应用程序的主页上显示最近的评论 我想限制评论表的 正文 列中显示的字符数 我假设我可以在 的代码末尾添加一些内容 但我还不知道那会是什么 因为我对 Ruby 和 Rails 都
  • HttpClient 中的角度变化检测

    我有一个HttpClient正在更新后端数据的服务 在后端处理期间 我通过执行以下操作来显示加载状态this isLoading true 成功处理后 我将删除该加载状态subscribe 通过使用this isLoading false
  • 为什么 ng-click 不起作用?

    为什么这个简单的 ng click 示例不起作用 我已经在生产中使用 Angular 几个月了 但是这个笨蛋让我感到困惑 http plnkr co edit 9Rp5JD p preview http plnkr co edit 9Rp5
  • 我不能通过 C# 中的句柄设置窗口的透明度吗?

    我正在尝试设置所有窗口的透明度 我有以下代码 public partial class Form1 Form DllImport user32 dll static extern int SetWindowLong IntPtr hWnd