计算机屏保代码,如何通过代码(以cmd)打开(Windows 7)的屏幕保护程序?(How to turn screensaver on (windows 7) by a code (in cmd)?...

如何通过代码(以cmd)打开(Windows 7)的屏幕保护程序?(How to turn screensaver on (windows 7) by a code (in cmd)? [closed])

如何通过代码(以cmd)打开(Win​​dows 7)的屏幕保护程序?

How to turn screensaver on (windows 7) by a code (in cmd)?

原文:https://stackoverflow.com/questions/1430108

更新时间:2019-07-01 18:08

最满意答案

以下是否符合您的要求?

start logon.scr /s

只要.scr在PATH上,上面的命令就可以工作。

编辑:我不知道如果Windows 7带有logon.scr ,请确保您使用实际安装在Windows 7中的.scr进行测试。

请注意,我的想法是从屏幕保护程序示例命令行选项中用/s调用.scr :

当Windows运行您的屏幕保护程序时,它会使用三个命令行选项之一启动它:

/ s - 以全屏模式启动屏幕保护程序。

/ c - 显示配置设置对话框。

/ p #### - 使用指定的窗口句柄显示屏幕保护程序的预览。

编辑2:

我做了一些额外的搜索,发现你可以创建lock.cmd :

@start /wait logon.scr /s & rundll32 user32.dll,LockWorkStation

或者lock.vbs :

Set objShell = CreateObject("Wscript.Shell")

' The "True" argument will make the script wait for the screensaver to exit

returnVal = objShell.Run("logon.scr", 1, True)

' Then call the lock functionality

objShell.Run "rundll32.exe user32.dll,LockWorkStation"

这些答案都不是完美的,都在屏幕保护程序被禁用并且工作站被锁定之前显示出桌面闪烁。

可能无法重现启动屏幕保护程序和恢复时密码保护的系统行为。 即使从C#Windows Form启动系统屏幕保护程序的答案只启动屏幕保护程序,它不会在简历上保护密码。

using System;

using System.Runtime.InteropServices;

public static class LockDesktop

{

[DllImport("user32.dll", EntryPoint = "GetDesktopWindow")]

private static extern IntPtr GetDesktopWindow();

[DllImport("user32.dll")]

private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);

private const int SC_SCREENSAVE = 0xF140;

private const int WM_SYSCOMMAND = 0x0112;

public static void SetScreenSaverRunning()

{

SendMessage(GetDesktopWindow(), WM_SYSCOMMAND, SC_SCREENSAVE, 0);

}

public static void Main()

{

LockDesktop.SetScreenSaverRunning();

}

}

This works - only downside is that u cant interact with pc for something like 7 sec, but i guess its 7's to give ppl time before making screensaver 'permanent'.

相关问答

这是一个很好的网站,展示了如何使用屏幕保护程序的各个方面。 请参阅最后的评论以获取启动屏幕保护程序的代码。 http://www.codeproject.com/KB/cs/ScreenSaverControl.aspx [DllImport("user32.dll", EntryPoint = "GetDesktopWindow")]

private static extern IntPtr GetDesktopWindow();

[DllImport("user32.

...

以下是否符合您的要求? start logon.scr /s

只要.scr在PATH上,上面的命令就可以工作。 编辑:我不知道如果Windows 7带有logon.scr ,请确保您使用实际安装在Windows 7中的.scr进行测试。 请注意,我的想法是从屏幕保护程序示例命令行选项中用/s调用.scr : 当Windows运行您的屏幕保护程序时,它会使用三个命令行选项之一启动它: / s - 以全屏模式启动屏幕保护程序。 / c - 显示配置设置对话框。 / p #### - 使用指定的窗口句

...

显然在Win7中SendMessage(hwnd, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM) 2); 不仅关闭屏幕,还关闭屏幕保护程序 (甚至没有先打扰它至少发送一个destoy消息)。 没有简单的方法可以解决这个问题。 参考:我发现了这个 ,它也导致msdn上的其他一些线程。 (由于我的声誉,我现在无法链接...) 虽然我在它,上面的代码将无法用于Win8因为SendMessage(hwnd, WM_SYSCOMMAND, SC_MONITORPOWER,

...

尝试在代码项目上查看这篇文章 。 诀窍是搜索“System Idle”而不是“Screen Saver Effect”。 ( 感谢Darin Dimitrov的回答 ) Try looking at this article on code project. The trick was to search for "System Idle" instead of "Screen Saver Effect". (Credit to Darin Dimitrov's answer)

您可以通过@Kevin建议安装屏幕保护程序,然后右键单击该文件并安装(假设这是.scr文件)。 或者您可以将文件直接复制到C:\Windows或有时复制到C:\Windows\system32 。 但是,除非文件是有效的屏幕保护程序,否则当您选择所需的屏幕保护程序时它不会显示在屏幕保护程序列表中,所以我认为您运气不好。 除非您创建了自己的屏幕保护程序,否则您可以从其中的某个事件启动该文件。 You can install a screensaver by doing as @Kevin sugge

...

Windows Phone通常不允许应用程序自行弹出。 特殊用例如voip例外。 没有在前台运行的应用程序也无法意识到用户没有与屏幕交互任何时间。 因此,您唯一的选择是使用内置锁屏功能 。 Windows Phone doesn't usually allow apps to pop up on their own. Exceptions are made for specific usecases such as voip. There is also no way for an app tha

...

这个帖子有答案: http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/35ea8aeb-e729-474c-b6d2-544fc3c48d8d 我发现我需要String Table,我只是不知道如何将该原生资源添加到我的程序集中。 要添加此字符串表,我必须将我的VS2003解决方案转换为VS2005解决方案,因为VS2003不允许向项目添加本机资源。 下面你会找到一个修改过的(由我)复制你指出的内容。 如何为屏幕保护程序添加漂

...

WMI查询的结果反映了运行查询时的状态。 它不会自动刷新,因此不会获取在初始运行后启动的任何进程。 将查询移动到外部循环中,以便在每次迭代时重新运行: Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Do

WScript.Sleep 300

Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")

...

我找到了两种方法来做到这一点: 1)添加注册表,确保是活动的,setTimeOut(仅分钟) CMD reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v SCRNSAVE.EXE /t REG_SZ /d C:\Windows\System32\Mystify.scr /f

reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveActive /t REG_SZ /d 1 /

...

最简单的方法是通过调用SendInput()伪造x = y = 0的鼠标移动事件。 The easiest way is to fake a mouse move event with x=y=0 by calling SendInput().

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值