【问题标题】:Delphi code to turn on screen saver doesn't work in Windows 7用于打开屏幕保护程序的 Delphi 代码在 Windows 7 中不起作用
【发布时间】:2011-05-17 15:07:22
【问题描述】:

我有一个 Delphi 应用程序,它使用

将计算机置于屏幕保护中
hWnd := GetDesktopWindow ;
SendMessage (hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0) ;

这在 XP 下运行良好,但我发现它在(嵌入式)Windows 7 下无法运行。

有什么想法吗?

【问题讨论】:

  • 啊哈。问题是嵌入式机器上没有设置(Windows)屏幕保护程序。我被屏幕实际上在延迟后关闭的事实所愚弄,但这似乎是平板电脑的硬件行为。两者都 SendMessage (, WM_SYSCOMMAND, SC_SCREENSAVE, 0) ;和 SendMessage (, WM_SYSCOMMAND, SC_SCREENSAVE, 0) ;似乎返回零值。

标签: delphi windows-7 windows-screensaver wm-syscommand


【解决方案1】:

它适用于我(Windows 7 家庭高级版,64 位)。您是否尝试将消息发送到另一个窗口,例如Handle? (另外,您确定您安装了屏幕保护程序吗?)

【讨论】:

    【解决方案2】:

    SC_SCREENSAVE 消息告诉目标窗口执行在 System.ini 文件的 [boot] 部分中指定的屏幕保护程序应用程序。由于 o/s 是嵌入式 Windows,它是 Windows 的精简版,因此很可能 system.ini 文件配置为没有屏幕保护程序。检查您的 system.ini 文件。

    【讨论】:

    • 我不这么认为。 system.ini 仅用作 16 位应用程序的兼容性遗物。 system.ini 已经有一段时间没有在 Windows 中真正使用过了。见en.wikipedia.org/wiki/SYSTEM.INI
    猜你喜欢
    • 2011-07-30
    • 2010-11-28
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    • 2022-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多