标签: screensaver

监控OSX中的屏幕保护程序事件

我想监视OSX盒子上的屏幕保护程序和锁屏事件.作为第一关,我很好,他们只是打印到控制台.

以下的其他人的问题的建议,我写了一些目标C监听可可通知的 com.apple.screensaver.didstart,com.apple.screensaver.didstop,com.apple.screenIsLocked,和com.apple.screenIsUnlocked事件.

// ScreenSaverMonitor.h
#import <Foundation/NSObject.h>
#import <Foundation/NSNotification.h>

@interface ScreenSaverMonitor: NSObject {}
-(id) init;
-(void) receive: (NSNotification*) notification;
@end

// ScreenSaverMonitor.m
#import "ScreenSaverMonitor.h"
#import <Foundation/NSString.h>
#import <Foundation/NSDistributedNotificationCenter.h>
#import <Foundation/NSRunLoop.h>
#import <stdio.h>

@implementation ScreenSaverMonitor
-(id) init {
  NSDistributedNotificationCenter * center 
    = [NSDistributedNotificationCenter defaultCenter];

  [center addObserver: self
          selector:    @selector(receive:)
          name:        @"com.apple.screensaver.didstart"
          object:      nil
  ];
  [center addObserver: self
          selector:    @selector(receive:)
          name:        @"com.apple.screensaver.didstop"
          object:      nil
  ];
  [center addObserver: self
          selector:    @selector(receive:)
          name:        @"com.apple.screenIsLocked"
          object: …
Run Code Online (Sandbox Code Playgroud)

macos cocoa notifications objective-c screensaver

13
推荐指数
2
解决办法
3848
查看次数

javascript代码,以防止屏幕保护程序启动

我是javascript编程的新手,我有一个问题,我无法在任何地方找到答案.

我最近整理了一个简单的幻灯片,以远程查看我在家用计算机上托管的照片.这本身就可以.我遇到的问题是,当我查看照片时,我不会与硬件交互,这会在一段时间后导致显示器关闭.在我的手机上观看照片时,这尤其令人讨厌.

我的问题是:有没有办法防止这种情况发生?每次刷新照片时,我都在考虑伪造鼠标或其他事件的方向,但我不知道如何做到这一点,如果有可能的话.

任何帮助是极大的赞赏!

javascript keep-alive screensaver

12
推荐指数
2
解决办法
4688
查看次数

YouTube如何防止屏幕保护程序在视频播放过程中出现?(视窗)

我注意到,当我在YouTube上观看视频时,屏幕保护程序无法启动.我正在使用Windows 7.

这是测试:

  1. 将Windows屏幕保护程序设置为1分钟.
  2. 浏览YouTube并播放超过1分钟的视频; 理想情况下要长得多.
  3. 请注意,在指定时间(1分钟)后屏幕保护程序不会出现.

我已经使用Firefox,Chrome和IE8进行了测试.我的Flash Player版本是10.3.(Youtube正在使用flash播放视频).无论我是否全屏观看视频,都会发生同样的情况.

有谁知道他们是怎么做到的?

我搜索过,但我发现的只是人们说这是不可能的,或者是用户在观看视频时禁用屏幕保护程序的提示.


请查看所有答案.不要坚持投票最多.

windows youtube flash screensaver

11
推荐指数
2
解决办法
2万
查看次数

有没有一种可靠的方法来抑制linux中的屏保?

我正在寻找一种体面的,非蹩脚的方式来抑制xscreensaver,kscreensaver或gnome-screensaver,它们可能正在运行,最好是以屏幕保护程序无关的方式,它绝对必须快速执行.

我已经阅读了xscreensaver常见问题解答(http://www.jwz.org/xscreensaver/faq.html).

我有一个基于gtk的游戏程序,它在混合多个音频通道的同时发出30帧/秒,并且由于它是由操纵杆控制的,有时候"屏幕保护程序"会启动.我把"the"放在引号中,因为有至少三种不同的流行屏保,xscreensaver,gnome-screensaver和kscreensaver,每种都有自己独特且笨重的方法,应用程序可能通过它们来抑制它们.

是否有人封装了代码以将所有这些禁止成快速的代码块?哦,它必须与GPL兼容.

目前,如果检测到任何屏幕保护程序并且操纵杆正在使用中,我的代码只是抱怨不合作的屏幕保护程序开发人员,除了建议用户手动禁用屏幕保护程序之外,实际上并没有尝试做任何事情,这是我唯一能做的事情.我认为这样做非常难看,我只是拒绝这么做.

只是想知道是否有其他人遇到过这个,以及他们做了什么,如果他们做了什么,如果它看起来像我看起来那样丑陋,或者如果那里有一些优雅的解决方案......似乎可能以某种方式合成X事件来欺骗屏幕保护程序,以为某些活动可能以通用的方式完成,但我真的不知道该怎么做(并希望你不需要root来做它.)

有任何想法吗?

谢谢,

- 史蒂夫


嗯,不幸的是,至少在Fedora核心8上,这似乎不起作用.

xdg-screensaver脚本在那里,似乎打算工作,它实际上不起作用.

一旦你执行了"xdg-screensaver suspend window-id",其中窗口id就是从程序中获取的

xwindow_id = GDK_WINDOW_XWINDOW (GTK_WIDGET (widget)->window);

或者是否通过xprop获取窗口ID,并且手动运行xdg-screensaver,将创建两个进程:

[scameron@zuul wordwarvi]$ ps -efa | grep xdg
scameron  4218     1  0 20:12 pts/2    00:00:00 /bin/sh /usr/bin/xdg-screensaver suspend 0x3a00004
scameron  4223     1  0 20:12 pts/2    00:00:00 /bin/sh /usr/bin/xdg-screensaver suspend 0x3a00004
scameron  4313  3151  0 20:15 pts/1    00:00:00 grep xdg
[scameron@zuul wordwarvi]$ 

并且他们永远不会死,即使在他们应该等待死亡的程序之后,屏幕保护程序永远不会重新启用.

[scameron@zuul wordwarvi]$ xdg-screensaver status
disabled
[scameron@zuul wordwarvi]$ ls -ltr /tmp | grep …

screensaver

10
推荐指数
3
解决办法
6731
查看次数

屏幕保护程序使用XNA和.NET?

我很确定你可以使用.NET创建屏幕保护程序,但有没有这样做的教程?你怎么能制作XNA屏保?

.net c# xna creation screensaver

10
推荐指数
2
解决办法
1822
查看次数

9
推荐指数
3
解决办法
4万
查看次数

如何检查Linux控制台屏幕保护程序是否已消隐屏幕

有没有办法以编程方式(通过ioctl()等)或通过读取/ sys,/ proc或/ dev中的文件来检查屏幕是否已被Linux控制台屏幕保护程序消隐?

谢谢和最好的问候,

冈特

linux console screensaver

9
推荐指数
2
解决办法
3422
查看次数

从C#Windows窗体启动系统屏幕保护程序

希望这是一个简单的,但是任何人都可以提供一些简单的c#代码来启动当前配置的屏幕保护程序吗?

c# screensaver

8
推荐指数
1
解决办法
5582
查看次数

.Net Screensaver找不到配置文件

我在C#和Windows Forms中编写了一个屏幕保护程序.为了测试我已经懒,只是用我所有的设置配置文件(无设置对话框还),但该计划似乎无法找到或读取配置文件时,Windows上运行屏幕保护程序.

它在我使用预览按钮或以任何方式手动运行时都有效,只有当它达到屏幕保护程序超时时它才能找到配置文件.

记录AppDomain.CurrentDomain.SetupInformation.ConfigurationFile它返回短名称:C:\Windows\System32\MYSCRE~1.config 它应该在哪里C:\Windows\System32\MyScreenSaverName.scr.Config

所以我猜测问题是它无法找到带有短名称路径的配置文件.

不确定它是否由于Windows 7运行屏幕保护程序的系统帐户,或者其他方式如何运行.任何信息都会有所帮助,谢谢.

编辑:尝试找出任何差异:

  1. 我能找到的唯一区别是当Windows运行屏幕保护程序时Environment.CommandLine返回C:\Windows\system32\MYSCRE~1.SCR /s,但是当我运行屏幕保护程序时它具有正常路径
  2. 一切Process.GetCurrentProcess().StartInfo都是一样的
  3. WindowsIdentity.GetCurrent().Name 是我的帐户名称

看看其他问题,似乎User32是启动屏幕保护程序的,所以我认为它必须是如何启动scr进程.

解决方法:将.scr文件重命名为8个字符或更少,使其正常工作.所以现在有效,仍然会想知道为什么存在这个问题.

.net screensaver windows-7

8
推荐指数
1
解决办法
516
查看次数

如何检测Daydream是否开启?

是否有可能检测到Daydream是打开还是关闭?如果是这样,怎么样?

编辑:为了澄清,我希望阅读DayDream的系统设置(很像飞机模式和其他设置).你可以从Intent.ACTION_DREAMING_STARTED和Intent.ACTION_DREAMING_STOPPED推断它,但它不是一回事.

android screensaver

8
推荐指数
1
解决办法
1760
查看次数