很简单,
调用API函数,
BOOL LockWorkStation(VOID);

解决方案 »

  1.   

    怎么这么多问这种问题的?我已经遇到3个了~~~~~~~(加你第4个,呵呵)
    你最好搜索一下前面的帖子。WinNT 5 (Win2k)下用楼上的办法吧
    Win9x 下可以用这些代码:
    (包含窗体设计属性了)VERSION 5.00
    Begin VB.Form frmLock 
       AutoRedraw      =   -1  'True
       BorderStyle     =   0  'None
       ClientHeight    =   3195
       ClientLeft      =   0
       ClientTop       =   0
       ClientWidth     =   4680
       BeginProperty Font 
          Name            =   "宋体"
          Size            =   15.75
          Charset         =   134
          Weight          =   700
          Underline       =   0   'False
          Italic          =   0   'False
          Strikethrough   =   0   'False
       EndProperty
       Icon            =   "frmLock.frx":0000
       LinkTopic       =   "Form1"
       ScaleHeight     =   3195
       ScaleWidth      =   4680
       ShowInTaskbar   =   0   'False
       StartUpPosition =   3  'Windows Default
       Tag             =   "给屏幕加锁"
       Begin VB.CommandButton Command1 
          Caption         =   "Command1"
          BeginProperty Font 
             Name            =   "宋体"
             Size            =   9
             Charset         =   134
             Weight          =   400
             Underline       =   0   'False
             Italic          =   0   'False
             Strikethrough   =   0   'False
          EndProperty
          Height          =   495
          Left            =   1740
          TabIndex        =   0
          Tag             =   "如果没有这个按钮,休想退出"
          Top             =   1125
          Width           =   1215
       End
    End
    Attribute VB_Name = "frmLock"
    Attribute VB_GlobalNameSpace = False
    Attribute VB_Creatable = False
    Attribute VB_PredeclaredId = True
    Attribute VB_Exposed = False
    Option Explicit'用到的API
    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
    Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long
    Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As LongDim nPreviousState As Long   '保存系统环境状态'给屏幕加锁的函数
    Public Sub LockScreen(ByVal szMsg As String)
        Me.Move 0, 0, Screen.Width, Screen.Height
        SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, 1 Or 2
        BitBlt Me.hDC, 0, 0, Screen.Width, Screen.Height, GetDC(0), 0, 0, vbSrcCopy
        Me.ForeColor = vbYellow
        Print szMsg
        Me.ForeColor = vbBlue
        Print szMsg
        Me.ForeColor = vbRed
        Print szMsg
        Me.Show
        SystemParametersInfo 97, True, nPreviousState, 0
    End Sub'给屏幕解锁的函数
    Public Sub UnlockScreen()
        SystemParametersInfo 97, False, nPreviousState, 0
        Me.Hide
    End Sub'这个函数仅在调试程序时使用
    Private Sub Command1_Click()
    UnlockScreen
    End Sub
      

  2.   

    Chice_wxg(Chice):你好厉害。
    谢谢你!我试好了就送分你。
      

  3.   

    唉呀!我的VB水得很。你写一份源代码发给我。我的信箱是:[email protected]
    好不好?