vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Überwachen ob Workstation gelocked ist! 
Autor: Kalle2002
Datum: 10.02.05 09:35

Guten Morgen Maywood.
Ja habe den Code umgeändert und auch die abfrage, die Prüft welches OS man hat rausgenommen. Weis ja schon das bei mir WIN2K läuft
Hier mal der Code.
Public Class Form1
    Inherits System.Windows.Forms.Form
 
    Private Declare Function LockWorkstation Lib "User32.dll" Alias _
      "LockWorkStation" () As Long
    Private Declare Function SwitchDesktop Lib "user32" (ByVal hDesktop As _
    Long) As Long
    Private Declare Function OpenDesktop Lib "user32.dll" Alias "OpenDesktopA" ( _
    ByVal lpszDesktop As String, ByVal dwFlags As Long, ByVal fInherit As _
    Boolean, ByVal dwDesiredAccess As Long) As Long
    Private Declare Function CloseDesktop Lib "user32.dll" (ByVal hDesktop As _
    Long) As Long
    Private Declare Function SystemParametersInfo Lib "user32.dll" Alias _
    "SystemParametersInfoA" (ByVal uiAction As Long, ByVal uiParam As Long, _
    ByRef pvParam As Long, ByVal fWinIni As Long) As Long
 
    Private Const SPI_GETSCREENSAVERRUNNING As Long = 114&
    Private Const DESKTOP_READOBJECTS As Long = &H1
    Private Const DESKTOP_CREATEWINDOW As Long = &H2
    Private Const DESKTOP_CREATEMENU As Long = &H4
    Private Const DESKTOP_HOOKCONTROL As Long = &H8
    Private Const DESKTOP_JOURNALRECORD As Long = &H10
    Private Const DESKTOP_JOURNALPLAYBACK As Long = &H20
    Private Const DESKTOP_ENUMERATE As Long = &H40
    Private Const DESKTOP_WRITEOBJECTS As Long = &H80
    Private Const DESKTOP_SWITCHDESKTOP As Long = &H100
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
 
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles cmdStopMonitoring.Click
        Me.Timer1.Enabled = False
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles cmdJustMonitor.Click
        Me.Timer1.Enabled = False
        Me.Timer1.Interval = 3000
        Me.Timer1.Enabled = True
    End Sub
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles cmdLockWorkstation.Click
        LockWorkstation()
        Me.Timer1.Enabled = False
        Me.Timer1.Interval = 3000
        Me.Timer1.Enabled = True
    End Sub
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Timer1.Tick
        Dim p_lngHwnd As Long
        Dim p_lngRtn As Long
        Dim p_lngErr As Long
        Dim p_lngScreenSaver As Long
        Dim p_blnIsScreenSaver As Boolean
        ' ---------------------------------------
        ' W2K+ -- Will determine if screen saver
        '     is running whether or not the
        '     "Password Protected" box is checked
        ' ---------------------------------------
        p_lngRtn = SystemParametersInfo(uiAction:=SPI_GETSCREENSAVERRUNNING, _
          uiParam:=0&, pvParam:=p_lngScreenSaver, fWinIni:=0&)
        If p_lngRtn = 0 Then
            Debug.Print(Err.LastDllError)
        Else
            p_blnIsScreenSaver = CBool(p_lngScreenSaver)
        End If
        ' ------------------------------------------
        ' If screen saver is *not* running, then
        '     check for locked workstation
        ' ------------------------------------------
        If p_blnIsScreenSaver = True Then
            Debug.Print("Screen saver is running on W2K+")
        Else
            p_lngHwnd = OpenDesktop("default", 0, False, DESKTOP_SWITCHDESKTOP)
            If p_lngHwnd = 0 Then
                Label2.Text = ("Error with OpenDesktop: " & Err.LastDllError)
            Else
                p_lngRtn = SwitchDesktop(p_lngHwnd)
                p_lngErr = Err.LastDllError
                If p_lngRtn = 0 Then
                    If p_lngErr = 0 Then
                        Label2.Text = ("Desktop is locked: " & Err.LastDllError)
                    Else
                        Label2.Text = ("Error with SwitchDesktop: " & _
                          Err.LastDllError)
                    End If
                Else
                    Label1.Text = ("Not locked!" & p_lngErr)
                End If
                p_lngHwnd = CloseDesktop(p_lngHwnd)
            End If
        End If
    End Sub
End Class
Gruß
Ralf
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Überwachen ob Workstation gelocked ist!1.290Kalle200209.02.05 19:05
Re: Überwachen ob Workstation gelocked ist!958Maywood09.02.05 19:39
Re: Überwachen ob Workstation gelocked ist!891Kalle200210.02.05 08:59
Re: Überwachen ob Workstation gelocked ist!894Maywood10.02.05 09:19
Re: Überwachen ob Workstation gelocked ist!1.008Kalle200210.02.05 09:35
Re: Überwachen ob Workstation gelocked ist!890Maywood10.02.05 09:52
Re: Überwachen ob Workstation gelocked ist!871Kalle200210.02.05 10:40
Re: Überwachen ob Workstation gelocked ist!886Maywood10.02.05 21:18
Re: Überwachen ob Workstation gelocked ist!896Kalle200211.02.05 09:13
Re: Überwachen ob Workstation gelocked ist!909Maywood12.02.05 01:26
Re: Überwachen ob Workstation gelocked ist!866Kalle200212.02.05 21:05
Re: Überwachen ob Workstation gelocked ist!1.007Kalle200214.02.05 09:16

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel