问题标签 [screensaver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1233 浏览

objective-c - 带有 WebView 崩溃的 Mac 屏幕保护程序

大家好

我有一个用 obj-c 和 cocoa 制作的屏幕保护程序。在 OsX 10.6.2 下一切正常,除了以下内容。在我的屏幕保护程序中,我有一个正在运行一些应用程序的 WebView。当我尝试通过 javascript 调用我的 Objective-c 应用程序(屏幕保护程序)时,我收到一个错误并且屏幕保护程序和系统首选项面板崩溃。

系统偏好设置[86666] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序

原因:'-[NSCFArray drain]:无法识别的选择器发送到实例 0x20049b1e0'

在第一掷:( ***调用堆栈
0的CoreFoundation 0x00007fff8123a444 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x00007fff81f130f3 objc_exception_throw + 45
+ 0:2的CoreFoundation 0x00007fff812931c0 + [NSObject的(NSObject的)doesNotRecognizeSelector]
3的CoreFoundation 0x00007fff8120d08f转发+ 751
4的CoreFoundation 0x00007fff812091d8 _CF_forwarding_prep_0 + 232 5 WebCore 0x00007fff847adee0 _ZN3JSC8Bindings12ObjcInstance10virtualEndEv + 48
6 WebCore 0x00007fff8470d71d _ZN3JSC16RuntimeObjectImp18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE + 397
7 JavaScriptCore 0x00007fff80862b66 NK3JSC7JSValue3getEPNS_9ExecStateERKNS_10IdentifierSer4_1
)Proty_10IdentifierS_4_1) ProtySlotE + 397

我知道这看起来像是一些内存泄漏,但正如您将在代码中看到的那样,我实际上几乎没有分配任何对象。

这只发生在我使用屏幕保护程序系统首选项中的“测试”按钮启动屏幕保护程序时。当我通过终端启动屏幕保护程序或者如果它自动启动时,相同的操作(从 javascript 调用 obj-c)可以正常工作。

也许有人有任何想法,错误可能来自哪里。这是实现中的一些代码:

我希望这些代码足以让您看到一些问题/解决方案。我真的很感激任何答案。

0 投票
1 回答
10493 浏览

c# - 在 C# 中禁用屏幕保护程序和电源选项

我正在用 C# 编写一个播放电影的应用程序。我需要弄清楚如何使用 C# 禁用屏幕保护程序和电源选项。

我知道 Windows SDK API 有一个名为 SetThreadExecutionState() 的函数可以用来执行此操作,但是,我不知道是否有更好的方法来执行此操作。如果没有,我如何将此函数合并到 C# 中?

0 投票
1 回答
576 浏览

c# - 如何控制下拉列表中显示的屏幕保护程序(友好/显示)名称?- 视窗服务器 2003 /视窗 2000

所以我之前问了一个同名的问题,得到的答案大部分都有效。我现在的问题是 Win32 资源文件中的字符串表在 Windows Server 2003 上不起作用(也许其他人也是如此,此时有限的 O/S 测试)。

测试结果:

正确显示:

  • 视窗
  • 视窗
  • Windows 7的

无法正确显示:

  • 视窗 2000 专业版
  • 视窗服务器 2003

我知道我的第一个问题的答案中提供的解决方案在 Windows XP 和 Vista 中按预期工作,但在 Windows Server 2003 上不起作用。我是否必须做一些不同的事情才能让我的“友好”屏幕保护程序名称显示在 Windows Server 中2003 年?

我的资源文件只包含两项:

  • 图标 - ID: 1
  • 字符串表
    • 字符串 - ID: <空>,值: 1,标题: CC.Votd

如果我回到只包含字符串表的资源文件,行为是相同的。

编辑:我尝试添加另一个字符串:

  • 字符串 - ID: <空>,值: 100,标题: CC.Votd

正如我在其他屏幕保护程序中看到的那样,在 Windows Server 2003 中显示正确名称但没有任何改变。这很令人沮丧,因为当我使用资源浏览器浏览 Windows 附带的屏幕保护程序时,我看不到一致性。

有些指定一个值为 1 的字符串和友好名称。其他人还指定一个值为 100 的字符串。有些甚至不包含字符串表,但仍显示与可执行文件名不同的名称。


更新:我创建了一个非常基本的解决方案,展示了我如何创建和使用资源文件。如果您将 .scr 文件复制到 XP/Vista 框上的系统目录,您将在下拉菜单中看到“友好的屏幕保护程序名称”。在 Windows Server 2003 上,您将看到“So_screensaver_display_name”(不带扩展名的可执行文件名)。你可以在这里下载:http ://www.ccswe.com/temp/SO_ScreenSaver_Display_Name.zip

编辑:如果有人运行 Windows Server 2003 来编译和测试我上面的示例项目,这样我就可以确定这是否特定于我的 Windows Server 2003 机器,这也会很有帮助。

也对任何其他操作系统上的结果感兴趣,因为我只有 XP/Vista/2003 可以在本地进行测试。谢谢!

更新:我能够在不同的 Windows Server 2003 (R2) 机器上进行测试,结果是相同的。在 Windows 2000 Professional 上也显示不正确。不过可以在 Windows 7 机器上工作。


解决方案:正如接受的答案中提到的,我将文件从 重命名CC.Votd.scrCCVotd.scr,现在 Windows 2000/2003CC.Votd从我的字符串表中正确读取了描述并将其显示在下拉列表中。我仍然不明白“为什么”非 DOS 8.3 文件名导致它不使用我的描述,但至少已修复。

0 投票
3 回答
2482 浏览

objective-c - 可可你好世界屏保

我一直在研究 NSView,因此我想我会尝试使用屏幕保护程序。我已经能够在 NSView 中显示和图像,但我无法修改此示例代码以在 ScreenSaverView 中显示简单的图片。

http://www.mactech.com/articles/mactech/Vol.20/20.06/ScreenSaversInCocoa/

顺便说一句,适用于 Snow Leopard 的很棒的教程。

我想简单地显示一个图像,我需要看起来像这样的东西......

我究竟做错了什么?

0 投票
2 回答
2031 浏览

c# - WPF:如果您正在运行的应用程序“空闲”,请创建您自己的屏幕保护程序

有没有办法创建一个窗口(类似于屏幕保护程序),一旦您正在运行的应用程序没有与用户“交互”(或空闲),就会显示该窗口,也就是说,应用程序上没有发生鼠标移动。

我的一些朋友建议为此使用计时器。有什么好的开端建议吗?谢谢。

0 投票
2 回答
489 浏览

windows - 以编程方式禁用屏幕保护程序不会影响控制面板?

我已经使用此页面中描述的方法成功禁用了屏幕保护程序。
问题是当我这样做时,控制面板对话框仍然显示有一个活动的屏幕保护程序。那里似乎没有任何改变。如果用户检查它,他无法知道为什么屏幕保护程序不起作用。
这是预期的行为吗?这不是问题吗?

我在 Windows XP x64 上使用最新更新完全修补。

0 投票
2 回答
465 浏览

c# - 备用输入设备(Midi)不会阻止 Winforms 应用程序中的屏幕保护程序

我开发了一个 C# WinForms 应用程序,用户通过 MIDI 连接设备提供输入。用户将长时间不使用键盘或鼠标。

当我收到一条 MIDI 消息时,我可以做些什么来“告诉”系统这算作用户活动(即按键)。如果正在使用 MIDI 设备,我不希望出现屏幕保护程序或时间锁定。

我认为我的请求与我见过的其他请求不同,因为他们希望在其应用程序的整个生命周期内禁用屏幕保护程序,而我只想将收到的 MIDI 输入计为用户交互性。

当我收到 MIDI 输入来表示系统用户活动时,我可以调用什么东西吗?

0 投票
1 回答
2439 浏览

cocoa - 如何设置桌面壁纸和屏保?

如何从可可应用程序设置桌面壁纸和屏幕保护程序?

0 投票
1 回答
205 浏览

cocoa - 在 QTMovie 上调用播放会导致屏幕保护程序在 Snow Leopard 上停用

我正在尝试将一个正常工作的 Leopard 屏幕保护程序移植到 Snow Leopard,但它在大约半秒后停用。屏幕保护程序似乎在调用 QTMovie 上的播放时停用。它会在 QTMovie 对象本身上的 -play 和 QTMovieView 上的 -play:self 上停用。

如果我实际上没有在对象上调用 -play,则屏幕保护程序不会停用并静止在电影的第一帧上。

在常规 Cocoa 应用程序中设置相同的代码可以正常工作,并且屏幕保护程序在系统偏好设置中的预览模式下也可以正常工作。

任何帮助是极大的赞赏。

0 投票
3 回答
2662 浏览

cocoa - 使用 Cocoa 检测屏幕保护程序何时激活

有没有办法在 Mac OS X 屏幕保护程序激活或进入睡眠状态时触发操作(最好使用可可)?