Wie Bildschirmschoner auf (Windows 7) durch einen Code drehen (in cmd)? [geschlossen]
-
07-07-2019 - |
Frage
Wie Bildschirmschoner aktivieren (Windows 7) durch einen Code (in cmd)?
Lösung 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();
}
}
Das funktioniert -. Einziger Nachteil ist, dass u mit PC für so etwas wie 7 sec interagieren kann nicht, aber ich denke, seine 7s ppl Zeit zu geben, bevor Bildschirmschoner ‚permanent‘ machen
Andere Tipps
Ist die folgend Ihre Anforderungen?
start logon.scr /s
Solange die .scr
auf der PATH ist, sollte der obige Befehl arbeiten.
EDIT:. Ich weiß nicht, ob Windows 7 mit logon.scr
kommt, stellen Sie sicher, dass Sie es mit einem .scr
sind testen, die tatsächlich in Windows 7 installiert ist
Beachten Sie, dass ich die Idee, nur den Aufruf des .scr
mit /s
von Screensaver Beispielbefehlszeilenoptionen :
Wenn Windows läuft Bildschirmschoner es, startet es mit einem der drei Befehl Zeilenoptionen:
- / s. - Starten Sie den Bildschirmschoner im Vollbild-Modus
- / c -. Zeigen Sie die Konfigurationseinstellungen im Dialogfeld
- / p #### - Zeigen Sie eine Vorschau des Bildschirmschoners die angegebene Verwendung Fenstergriff.
EDIT 2:
Ich habe einige zusätzliche Suchen und gefunden, dass Sie lock.cmd
schaffen könnten:
@start /wait logon.scr /s & rundll32 user32.dll,LockWorkStation
oder 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"
Keine dieser Antworten ist perfekt, sowohl ein Flimmern auf dem Desktop zeigen, nachdem der Bildschirmschoner deaktiviert ist und unmittelbar vor der Arbeitsstation gesperrt wird.
Es kann nicht möglich sein, das Systemverhalten des Startens des Bildschirmschoners zu reproduzieren und das Passwort bei der Wiederaufnahme zu schützen. Auch System-Bildschirmschoner von C # Windows Form starten startet nur den Bildschirmschoner, ist es nicht das Kennwort auf Lebenslauf schützen .
Die Zusammen die cmd
und vbs
Skript Ideen mit dem Code von the Antwort auf Start-System Screensaver von C # Windows Form ich mit folgendem kam:
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();
}
}
Um es zu bauen, installieren Sie das .NET Framework , kopieren und fügen Sie den obigen Code in lock.cs
, dann laufen:
%SystemRoot%\Microsoft.NET\Framework\v3.5\csc.exe lock.cs
Setzen Sie das erstellte lock.exe
in Ihrem Pfad, danach, lock
Eingabe sollte die konfigurierte Bildschirmschoner eingreifen und sperren Sie Ihre Workstation.
Ich habe Windows 7. Ich legte die Zeile:
@start / wait% windir% \ ExtraPath \ ScreenSaverName.scr / s & rundll32 user32.dll, LockWorkStation
in einer Batch-Datei (.bat), legen Sie sich in einem entsprechenden Verzeichnis und erstellt eine Verknüpfung zu dieser zeigt, mit der gewünschten Schnelltaste. In dieser Zeile ist \ ExtraPath der zusätzliche Weg unter Ihrem Gewinn dir (in der Regel ist dies \ system32), wo die Bildschirmschoner befinden und ScreenSaverName.scr ist der Name des gewünschten Bildschirmschoners selbst.
Es funktioniert perfekt.
Jetzt kann ich die Tasten drücken Sie den Bildschirmschoner und verriegeln Sie den PC laufen zu lassen.
Danke wirklich viel.
Sie könnten versuchen, Powershell-Skript in einem zufälligen Bildschirmschoner zu starten .