工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 2296|回复: 8

api操作注册表的问题求教

[复制链接]
发表于 2008-7-27 10:20 | 显示全部楼层 |阅读模式
  1. Private Sub Command1_Click()
  2. Dim hKey As Long
  3. Dim abc As Long
  4. RegCreateKey HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range3", hKey
  5. RegSetValueEx hKey, ":Range", 0, REG_SZ, ByVal "172.16.13.16", 12
  6. RegSetValueEx hKey, "http", 0, REG_DWORD, ByVal "2", 1
  7. MsgBox "test"
  8. RegCloseKey hKey
  9. End Sub
复制代码
目的是想把http://172.16.13.16加入IE的受信任站点
但是注册表没改对
未命名.JPG

正确的应该是http 类型为双字,值为2

请问这句怎么写:
RegSetValueEx hKey, "http", 0, REG_DWORD, ByVal "2", 1
麻烦解析一下

[ 本帖最后由 2002070344 于 2008-7-27 13:38 编辑 ]
发表于 2008-7-27 17:12 | 显示全部楼层
未学过,let me guess


RegSetValueEx(hkey,"aa",0L,REG_DWORD,(CONST   BYTE*)&dwvalue,sizeof(DWORD));   

so……


RegSetValueEx hKey, "http", 0, REG_DWORD, ByVal "2", 2

try it,我无开发环境
回复

使用道具 举报

 楼主| 发表于 2008-7-27 17:39 | 显示全部楼层
不行,我将RegSetValueEx hKey, "http", 0, REG_DWORD, ByVal "2", 1
改称
RegSetValueEx hKey, "http", 0, REG_SZ, ByVal "2", 1
数值就没错
可惜我不是要REG_SZ,而是要REG_DWORD
不知道怎么写才正确
回复

使用道具 举报

发表于 2008-7-27 18:40 | 显示全部楼层
可能要强制类型转换,问达人吧~
回复

使用道具 举报

发表于 2008-7-27 20:09 | 显示全部楼层
【VB声明】   
      Private   Declare   Function   RegSetValueEx   Lib   "advapi32.dll"   Alias   "RegSetValueExA"   (ByVal   hKey   As   Long,   ByVal   lpValueName   As   String,   ByVal   Reserved   As   Long,   ByVal   dwType   As   Long,   lpData   As   Any,   ByVal   cbData   As   Long)   As   Long                     
  【别名】   
      RegSetValueExA   
  【说明】   
      设置指定项的值      
  【返回值】   
      Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码        
  【参数表】   
      hKey   -----------     Long,一个已打开项的句柄,或指定一个标准项名   
      lpValueName   ----     String,要设置值的名字   
      Reserved   -------     Long,未用,设为零   
      dwType   ---------     Long,要设置的数量类型   
      lpData   ---------     Any,包含数据的缓冲区中的第一个字节   
      cbData   ---------     Long,lpData缓冲区的长度   

不懂VB,不过REG_DWORD长度是4,你现在的REG_DWORD长度为1,这个似乎。。。
回复

使用道具 举报

 楼主| 发表于 2008-7-27 20:12 | 显示全部楼层
对,是4,1是我到处试的
4肯定是对的,前面那个值不知怎么搞
回复

使用道具 举报

 楼主| 发表于 2008-7-27 20:38 | 显示全部楼层
这样可以了
ret = RegSetValueEx(hKey, "http", 0, REG_DWORD, 2, 4)
不是说不写byval,就是默认byref吗
这样对吗
回复

使用道具 举报

 楼主| 发表于 2008-7-27 20:41 | 显示全部楼层
还发现一个问题,没有返回值,就是不写ret=
依然得不到正确的结果
回复

使用道具 举报

发表于 2008-8-3 16:52 | 显示全部楼层
sorry, 学号,这个不懂...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2024-5-18 05:46

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表