vb6中如何打开屏幕保护程序?

wangxd123 2000-07-11 03:20:00
大家好:
目前我需要在程序中加入一个功能,就是我一点击某个按钮,程序即调出现在windows
设置的屏幕保护程序,请问大侠,如何实现?

谢谢!
...全文
354 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxd123 2000-07-11
  • 打赏
  • 举报
回复
可以了
谢谢liyang,bluewater的帮助
liyang 2000-07-11
  • 打赏
  • 举报
回复
不要客气。:)
bluewater的方法和我的是一样的。因此,这不是程序问题。应该是配置不对。
照这样看,还是电源管理的问题。电源管理方案被设置了,因为我这里是win2k,和你的界面有点不一样。原因一定是这个,在“电源管理”和“显示”的“屏幕保护”项仔细看看!
bluewater 2000-07-11
  • 打赏
  • 举报
回复
原作者:wangxd123
我试过我刚才写的代码段,应该没有问题。

请问你是否把屏幕保护设成了“无”?

bluewater
wangxd123 2000-07-11
  • 打赏
  • 举报
回复
liyang:
调用后出现一个窗口,上面有一个进度条,有两个按钮,一个是"开始进入待机状态",另一个是"取消待机状态",15秒后黑屏,或什么反应也没有,

控制面板中我看过了,不知是哪里的问题!

还望得到您的指点!
谢谢!
原作者 wangxd123
bluewater 2000-07-11
  • 打赏
  • 举报
回复
Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg _
As Long, ByVal wParam As Long, ByVal lParam As Long) _
As Long
Const WM_SYSCOMMAND = &H112&
Const SC_SCREENSAVE = &HF140&
代码:

'将段代码放在点击鼠标的事件中
Dim result As Long
result = SendMessage(Form1.hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0&)
mafangsan 2000-07-11
  • 打赏
  • 举报
回复
我这段程序调出“滚动字幕”屏保,如果你要调出机器当前的屏保,我想你要在程序中读取注册表查查!
Private 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

Private Sub Command1_Click()
Dim ret As Long
ret = ShellExecute(Me.hwnd, "open", "c:\windows\system\滚动字幕.scr", "", "", 1)
End Sub
liyang 2000-07-11
  • 打赏
  • 举报
回复
等等,你调用后出现什么样的情况。
我使用的屏保是“贝赛而曲线”(随便选的),运行后出现的是屏幕保护程序,而不是待机状态。
如果是待机状态,那是你电脑的设置。在控制面板的电源中,你看看。因为,sendmessage方法,实际上相当于你一直不动电脑,而使它进入屏保一样的。
wangxd123 2000-07-11
  • 打赏
  • 举报
回复
liyang:
您的程序我试过了,可我并不是想让机子处于一种待机状态
如果我在win98中的屏幕保护中加了密码,我想让我的程序调用您的程序后
进入屏幕保护(画面为当前设置的画面),当动键盘或鼠标时,弹出win98的密码
输入框,当屏幕保护的密码输入正确时,恢复正常的屏幕状态.

谢谢!
原作者 wangxd123
liyang 2000-07-11
  • 打赏
  • 举报
回复
那没错。你用我的函数试试,我在win2K中测试通过。
wangxd123 2000-07-11
  • 打赏
  • 举报
回复
liyang:
我只是想把windows当前的屏幕保护调出来,是计算机处于一种屏幕保护的状态!
谢谢!
原作者 wangxd123
liyang 2000-07-11
  • 打赏
  • 举报
回复
就是说,你要的是所选的屏保的文件是哪个?
wangxd123 2000-07-11
  • 打赏
  • 举报
回复
liyang:
我是这个问题的作者,我向您可能是理解错了
比如目前我的win98设置的某个屏幕保护是某个画面
我想在vb 中调出这个屏幕保护程序

谢谢
原作者 wangxd123
liyang 2000-07-11
  • 打赏
  • 举报
回复
又错了。常量应该加&:
Const WM_SYSCOMMAND = &H112&
Const SC_SCREENSAVE = &HF140&
liyang 2000-07-11
  • 打赏
  • 举报
回复
sendmessage的定义错了
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
liyang 2000-07-11
  • 打赏
  • 举报
回复
使用 Sendmessage即可

Declare Function SendMessage Lib "User" (ByVal hWnd As Integer,
ByVal wMsg As Integer, ByVal wParam As Integer, lParam As Any) As
Long

Dim result As Long
Const WM_SYSCOMMAND = &H112
Const SC_SCREENSAVE = &HF140
result = SendMessage(Form1.hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0&)

7,762

社区成员

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

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