Frage

Wie Bildschirmschoner aktivieren (Windows 7) durch einen Code (in cmd)?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top