- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我需要通过 Windows 服务隐藏任务栏和开始按钮。
在控制台程序中,我可以成功调用 FindWindow
和/或 EnumWindows
来获取 "Shell_TrayWnd"
窗口,然后使用 ShowWindow(hwnd, SW_HIDE)
.
但是当服务执行 FindWindow("Shell_TrayWnd", NULL)
时,它返回 NULL
,而当服务执行 EnumWindows
时,它得到一个不完整列表,不包括 "Shell_TrayWnd"
窗口。
谁能建议服务如何看到 "Shell_TrayWnd"
窗口,或建议隐藏任务栏和开始按钮的替代方法(在服务中有效)?谢谢。
最佳答案
为服务提供 UI(或以其他方式与 UI 元素交互)的正确方法是提供一个 GUI 客户端,它在用户的上下文中运行并使用一些 IPC 方法(可能是 RPC,可能是消息传递)与服务。特权服务中的 UI 处理一直是一个安全漏洞。
如果您只是想要一个计算机智能进程来终止任务栏,那么服务既不需要也没有帮助。配置计划任务以在登录时运行。或者将注册表设置为启动自定义 shell 而不是 explorer.exe。除了用户自己的帐户之外,您没有做任何需要特权的事情。
为避免控制台窗口闪烁,为 WINDOWS
子系统构建程序,或在构建完成后使用 editbin/SUBSYSTEM:WINDOWS
更改 PE header 中的标志完成。
关于Windows 服务看不到 Shell_TrayWnd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13609166/
我需要通过 Windows 服务隐藏任务栏和开始按钮。 在控制台程序中,我可以成功调用 FindWindow 和/或 EnumWindows 来获取 "Shell_TrayWnd" 窗口,然后使用 S
我是一名优秀的程序员,十分优秀!