코드 (CMD)로 Screensaver를 켜는 방법 (Windows 7)? [닫은
-
07-07-2019 - |
문제
코드 (CMD)로 Screensaver를 켜는 방법 (Windows 7)?
해결책 5
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();
}
}
이것은 단점만이 7 초 동안 PC와 상호 작용할 수 없다는 것입니다. 그러나 Screensaver를 '영구적으로 만들기 전에 PPL 시간을주는 7 개가 있다고 생각합니다.
다른 팁
다음이 귀하의 요구 사항을 충족합니까?
start logon.scr /s
길이 .scr
위의 명령이 작동해야합니다.
편집 : Windows 7이 함께 제공되는지 모르겠습니다. logon.scr
, 당신이 그것을 테스트하고 있는지 확인하십시오 .scr
실제로 Windows 7에 설치되어 있습니다.
나는 단지 .scr
~와 함께 /s
~에서 스크린 세이버 샘플 명령 줄 옵션:
Windows가 Screensaver를 실행하면 세 가지 명령 줄 옵션 중 하나를 사용하여 시작합니다.
- /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에서 System Screensaver를 시작한 답변 화면 보호기 만 시작하고 이력서에서 암호 보호되지 않습니다.
함께 넣다 그만큼 cmd
그리고 vbs
스크립트 아이디어 코드로 C# Windows Form에서 System Screensaver를 시작한 답변 나는 다음을 생각해 냈다.
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);
[DllImport("user32.dll", EntryPoint = "LockWorkStation")]
private static extern IntPtr LockWorkStation();
private const int SC_SCREENSAVE = 0xF140;
private const int WM_SYSCOMMAND = 0x0112;
public static void SetScreenSaverRunning()
{
SendMessage(GetDesktopWindow(), WM_SYSCOMMAND, SC_SCREENSAVE, 0);
LockWorkStation();
}
public static void Main()
{
LockDesktop.SetScreenSaverRunning();
}
}
그것을 만들려면 .NET 프레임 워크를 설치하십시오, 위의 코드를 복사하여 붙여 넣습니다 lock.cs
, 그 다음 달리기 :
%SystemRoot%\Microsoft.NET\Framework\v3.5\csc.exe lock.cs
생성물을 넣으십시오 lock.exe
그 후, 그 후에 타이핑 lock
구성된 화면 보호기를 사용하고 워크 스테이션을 잠그십시오.
나는 Windows 7이 있습니다. 나는 줄을 배치했습니다.
@Start /Wait %Windir % extrapath screensavername.scr /s & rundll32 user32.dll, lockworkstation
배치 (.BAT) 파일에서 적절한 디르에 놓고 원하는 바로 가기 키와 함께이를 가리키는 바로 가기를 만들었습니다. 이 라인에서 extrapath는 화면 보호기가 위치한 Win Dir (일반적으로 System32)의 추가 경로이며 ScreenSaverName.scr은 원하는 화면 보호기 자체의 이름입니다.
완벽하게 작동합니다.
이제 바로 가기 키를 눌러 화면 보호기를 실행하고 PC를 잠글 수 있습니다.
정말 감사합니다.
당신은 시도 할 수 있습니다 PowerShell 스크립트 임의의 화면 보호기를 시작합니다.