关于热启动键………………………………………………………………

ywpg 2002-12-30 06:15:57
用API

SystemParametersInfo(97, True, CStr(1), 0)
可锁热启动键


恢复就有点麻烦,
把上面的TURE 改为FALSE,可以恢复,但由于这本来是系统内部函数,故
调用完后会 因"非法操作"被关掉

有无 解决方法???

另外,怎么查询热启动键的状态(有效/无效)?

我听说有一些程序 可以解除 热启动键的锁定,以破除屏幕保护密码
(通过光盘自动运行)
有源码吗?请贴上
...全文
412 点赞 收藏 20
写回复
20 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
gang75 2003-02-09
up
回复
ywpg 2003-02-03
请大家说说方法啊
回复
liutl1 2003-02-02
UP
回复
chenyu5188 2003-02-02
UP
回复
tyjk 2003-02-02
up
回复
ywpg 2003-02-01
到底有没有办法查询状态啊
回复
ywpg 2003-01-29
怎么查询热启动键的状态(有效/无效)??
回复
xiaoxinghappy 2003-01-18
回复
ksmark 2003-01-18
收藏
回复
twinking 2003-01-14
up
回复
ccbl 2003-01-10
up
回复
suntt 2003-01-10
把它贴出来

SystemParametersInfo, SystemParametersInfoByval

VB声明
Declare Function SystemParametersInfo& Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long)
Declare Function SystemParametersInfoByVal& Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long)
说明
允许获取和设置数量众多的windows系统参数
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
uAction Long,指定要设置的参数。参考uAction常数表
uParam Long,参考uAction常数表
lpvParam Any,按引用调用的Integer、Long和数据结构。对于String数据,请用SystemParametersInfoByval函数。具体用法参考uAction常数表
fuWinIni Long,取决于不同的参数及操作系统,随同这个函数设置的用户配置参数保存在win.ini或注册表里,或同时保存在这两个地方。这个参数规定了在设置系统参数的时候,是否应更新用户设置参数。可以是零(禁止更新),或下述任何一个常数:
SPIF_UPDATEINIFILE 更新win.ini和(或)注册表中的用户配置文件
SPIF_SENDWININICHANGE 倘若也设置了SPIF_UPDATEINIFILE,将一条WM_WININICHANGE消息发给所有应用程序。否则没有作用。这调消息告诉应用程序已经改变了用户配置设置
注解
在调用这个函数之前,特别要注意将lpvParam参数定义成正确的数据类型

回复
bu_wen 2003-01-09
如果你要这么使用 SystemParametersInfo(97, True, CStr(1), 0)
要申明成 byval pvParam As Any
回复
bu_wen 2003-01-09
Private 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

Private Sub Form_Load()
Command1.Caption = "Disabled"
Command2.Caption = "Enabled"
End Sub

Private Sub Form_Unload(Cancel As Integer)
'Re-enable CTRL+ALT+DEL and ALT+TAB before the program terminates.
Command2_Click
End Sub

Private Sub Command1_Click()
Dim lngRet As Long
Dim blnOld As Boolean
lngRet = SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, _
blnOld, _
0&)
End Sub

Private Sub Command2_Click()
Dim lngRet As Long
Dim blnOld As Boolean
lngRet = SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, _
blnOld, _
0&)
End Sub
回复
bu_wen 2003-01-09
As Any的含义就是强制类型转换,也就是说VB不再检查类型是否匹配,而由你来保证参数类型十正确的。
这个参数可能是数字,也可能是字符串,或者其他类型,这样定义使用起来比较灵活。API中某些函数规定As Any所定义的参数为NULL时会有特殊含义,不为NULL时是另一种结果。如果不使用As Any,而使用As Long,赋0&,如果定义为As Any,则VB会把数字0传递给这个函数,而定义为As Long,则VB会把0保存在一个地点,然后把这个地点的地址传递给函数。

回复
ywpg 2003-01-09
API 浏览器

Public Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long

ByRef 是指引用吧,此变量可在SystemParametersInfo 的执行过程中被修改

但lpvParam这个变量有什么作用

lp是长指针
Param 是参数
v 呢

整个变量名有什么意义?

回复
ywpg 2003-01-07
还有,如何查询呢?
回复
ywpg 2003-01-07
您能否解释一下

ByVal 0&

的意义?
回复
zyl910 2003-01-07
你的SystemParametersInfo是怎么申明的
回复
zyl910 2002-12-30
调用方法有误

SystemParametersInfo(97, True, ByVal 0&, 0)
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7453

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告