★ ◆ ☆ ◇ ★如何用VB调用屏保程序,并且自动写入一个屏保的密码,还有就是如何用程序终止该屏保???

bluebill 2002-04-29 09:27:18
我想用VB写一个强制休息的软件,到达设定的时间后,就调用屏保,然后10分钟后又自动退出,为了防止被强制休息者用电脑,就用程序为屏保设定一个密码!!!
大家说一下,如何实现这种功能,小第是菜鸟,烦请给出点代码!!!
如果您觉得不用调入屏保也可以实现这种功能,也请您把您的高见写出来!!!
多谢了!!!
...全文
116 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
kevincomein 2002-04-29
  • 打赏
  • 举报
回复
锁住鼠标,你可以用api函数,.

Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long

然后放在timer里面调用
_1_ 2002-04-29
  • 打赏
  • 举报
回复
☆禁用 Alt-Tab 或 Ctrl-Alt-Del☆

Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As
Integer, ByVal aBOOL As Integer) As Integer
Private Declare Function IsWindowEnabled Lib "user32" (ByVal hWnd As
Integer) As Integer
Private Declare Function GetMenu Lib "user32" (ByVal hWnd As Integer) As
Integer
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (
ByVal lpClassName As String, ByVal lpWindowName As String) 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 TaskBarhWnd As Long
Private IsTaskBarEnabled As Integer
Private TaskBarMenuHwnd As Integer
'禁止或允许使用 Alt-Tab
Sub FastTaskSwitching(bEnabled As Boolean)
Dim X As Long, bDisabled As Long
bDisabled = Not bEnabled
X = SystemParametersInfo(97, bDisabled, CStr(1), 0)
End Sub
'禁止使用Ctrl-Alt-Del
Public Sub DisableTaskBar()
Dim EWindow As Integer
TaskBarhWnd = FindWindow("Shell_traywnd", "")
If TaskBarhWnd <> 0 Then
EWindow = IsWindowEnabled(TaskBarhWnd)
If EWindow = 1 Then
IsTaskBarEnabled = EnableWindow(TaskBarhWnd, 0)
End If
End If
End Sub

'允许使用Ctrl-Alt-Del

Public Sub EnableTaskBar()
If IsTaskBarEnabled = 0 Then
IsTaskBarEnabled = EnableWindow(TaskBarhWnd, 1)
End If
End Sub

'禁止 Ctrl+Alt+Del
' 声明(For Win95):

Const SPI_SCREENSAVERRUNNING = 97
Private Declare Function SystemParametersInfo Lib "user32" Alias "
SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long,
lpvParam As Any, ByVal fuWinIni As Long) As Long
使用:
'禁止
Dim pOld As Boolean
Call SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, pOld, 0)
'开启
Dim pOld As Boolean
Call SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, pOld, 0)

bluebill 2002-04-29
  • 打赏
  • 举报
回复
调出屏保可以,但是要是不能锁住鼠标和键盘还是不行啊!至少要锁住鼠标吧!
lily0000000 2002-04-29
  • 打赏
  • 举报
回复
你可以测试一下键盘输入,如果是这三键的组合,则给他一个无响应的处理就是了
lily0000000 2002-04-29
  • 打赏
  • 举报
回复
你可以测试一下键盘输入,如果是这三键的组合,则给他一个无响应的处理就是了
_1_ 2002-04-29
  • 打赏
  • 举报
回复
http://www.jinesc.com/myweb/disp.asp?idd=267&room=1020
屏蔽C+A+D三键组合
_1_ 2002-04-29
  • 打赏
  • 举报
回复
把Alt+Ctrl+Del给屏蔽掉!!!
http://www.jinesc.com/myweb/disp.asp?idd=267&room=1020
jamsband 2002-04-29
  • 打赏
  • 举报
回复
up
combread 2002-04-29
  • 打赏
  • 举报
回复
上面的这段代码可以锁死键盘和鼠标,但不能屏蔽C+A+D三键组合。
bluebill 2002-04-29
  • 打赏
  • 举报
回复
各位大哥,我试了许多种方法,都无法把Alt+Ctrl+Del给屏蔽掉!!!
还有别的什么好办法吗??
kevincomein 2002-04-29
  • 打赏
  • 举报
回复
要调用屏保如下:

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Const conSwNormal = 1



Private Sub Command1_Click()
ShellExecute hwnd, "open", "C:\WINNT\system32\sspipes.scr", vbNullString, vbNullString, conSwNormal
End Sub
kevincomein 2002-04-29
  • 打赏
  • 举报
回复
试试这个,不知合不合?
form:


Private Sub Command1_Click()
Dim str5 As String, len5 As Long, i As Long

Call EnableHook
str5 = "这是一个测试JournalPlayBackHook的程式"
len5 = Len(str5)
For i = 1 To len5
Text1.Text = Mid(str5, 1, i)
Text1.Refresh
Sleep (2000)
Next
Call FreeHook
End Sub

Module1:

Declare Sub Sleep Lib "KERNEL32" (ByVal dwMilliseconds As Long)
Const WM_MOUSELAST = &H209
Const WM_MOUSEFIRST = &H200
Public Const WM_KEYLAST = &H108
Public Const WM_KEYFIRST = &H100
Public Const WH_JOURNALRECORD = 0
Public Const WH_JOURNALPLAYBACK = 1

Type EVENTMSG
message As Long
paramL As Long
paramH As Long
time As Long
hwnd As Long
End Type
Declare Function SetWindowsHookEx Lib "user32" Alias _
"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, _
ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Long) As Long
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _
ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
Public hNxtHook As Long ' handle of Hook Procedure
Public msg As EVENTMSG

Sub EnableHook()
hNxtHook = SetWindowsHookEx(WH_JOURNALPLAYBACK, AddressOf HookProc, App.hInstance, 0)
End Sub
Sub FreeHook()
Dim ret As Long
ret = UnhookWindowsHookEx(hNxtHook)
End Sub
Function HookProc(ByVal code As Long, ByVal wParam As Long, _
ByVal lParam As Long) As Long
HookProc = CallNextHookEx(hNxtHook, code, wParam, lParam)
End Function




gump2000 2002-04-29
  • 打赏
  • 举报
回复
您可以自己写一个屏幕保护程序。
这个屏幕保护程序的密码并不是系统的屏幕保护程序密码。
您可以在这个屏幕保护程序退出的时候要求输入密码
或者自动计算运行事件以退出。

关于屏幕保护程序的代码您可以参考:
http://www.21code.com/codebase/?pos=list&type=search&key=屏幕保护
http://www.21code.com/codebase/?pos=list&type=search&key=屏保
hbm 2002-04-29
  • 打赏
  • 举报
回复
笨方法:
做一个最大化窗体,无任何关闭按钮(蓝条标题栏也去掉!)。
而且,设为总在最前。再屏蔽alt+shift+del。
到一定时间show,再到一定时间hide。
bluebill 2002-04-29
  • 打赏
  • 举报
回复
大家要是能帮我把键盘,鼠标锁死也可以,只是我在Win2000下面,要锁死好像不太容易.
还有别的办法吗?只要能在规定的时间内不让用电脑就行了!!

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧