您的位置:程序门 -> vb ->



打开注册表的问题,解决马上给分,全天在线


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


打开注册表的问题,解决马上给分,全天在线
发表于:2007-04-11 10:52:53 楼主
我在vb里声明了一个api,private   declare   function   regopenkey   lib   "advapi32.dll "   alias   "regopenkeya "   (byval   hkey   as   long,   byval   lpsubkey   as   string,   phkresult   as   long)   as   long
可是使用时却提示我需要对象,
ruest   =   regopenkey( "hkey_current_user ",   "software\microsoft\windows\currentversion\run\ ",   lyrss.exe)
哪位老大帮忙指点下
发表于:2007-04-11 14:26:021楼 得分:0
高手在哪里?
发表于:2007-04-11 15:23:002楼 得分:0
该回复于2007-12-28 17:49:03被管理员或版主删除
发表于:2007-04-11 16:00:313楼 得分:0
ruest   =   regopenkey( "hkey_current_user ",   "software\microsoft\windows\currentversion\run\ ",   lyrss.exe)

调用的参数错的离谱
第一个参数要长整形,你给了个字符串。正确的写法是去掉引号。然后添加hkey_current_user的声明,这是一个常量,具体数值可以从api   viewer里看到。

最后那个参数也需要一个长整形,不明白你传一个貌似exe文件的东西进去干吗。难道lyrss是个对象,exe是其属性?
发表于:2007-04-11 16:20:504楼 得分:0
那怎么调用,望高手教我呵呵,给个范例
发表于:2007-04-11 17:55:585楼 得分:0
programart_life(理论派)   说的对

我看你的意思是要打开 "software\microsoft\windows\currentversion\run\ "这个健,   然后向里面写入
计算机启动后自动运行的程序的名字吧?
那么还需要另外的函数才能做的。
例如:我想把计算机日期格式改为 "yyyy-mm-dd "
option   explicit
private   declare   function   regclosekey   lib   "advapi32.dll "   (byval   hkey   as   long)   as   long
private   declare   function   regopenkeyex   lib   "advapi32.dll "   alias   "regopenkeyexa "   _
(byval   hkey   as   long,   byval   lpsubkey   as   string,   byval   uloptions   as   long,   byval   samdesired   as   long,   phkresult   as   long)   _
as   long
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

private   const   hkey_current_user   =   &h80000001
private   const   reg_sz   =   1                                                   '   unicode   nul   terminated   string
private   const   error_success   =   0&
const   key_all_access   =   &h3f
const   reg1   =   "control   panel\international "
private   phkresult   as   long
private   sub   command1_click()
        dim   back   as   long
        dim   updata   as   double
        dim   dateformat   as   string
        dateformat   =   "yyyy-mm-dd "
        back   =   regopenkeyex(hkey_current_user,   reg1,   0&,   key_all_access,   phkresult)
        back   =   regsetvalueex(phkresult,   "sshortdate ",   0&,   reg_sz,   byval   dateformat,   lenb(dateformat))
        regclosekey   (phkresult)
        '当然,这里还要通知系统格式变了,我省略了
end   sub
发表于:2007-04-11 18:15:356楼 得分:0
不是,我的目的是想判断是否注册表中是否存在一个键值,不存在的话就写进去,
发表于:2007-04-12 09:51:057楼 得分:0
顶上去
发表于:2007-04-24 15:31:428楼 得分:0
论坛里有源程序,搜一下吧,我用的和你一样,就是搜来的,再自己看明白就好了,

你也太......看程序太不仔细了吧,常量写成字符串
发表于:2007-04-24 20:32:429楼 得分:0
regcreatekey---如果存在则打开,如果不存在就创建。。。
发表于:2007-04-24 21:32:5010楼 得分:0
ruest   =   regopenkey( "hkey_current_user ",   "software\microsoft\windows\currentversion\run\ ",   "lyrss.exe ")
发表于:2007-04-24 21:33:3411楼 得分:0
lz   留下邮箱,给你一个完整的注册表操作
发表于:2007-04-25 20:33:2512楼 得分:0
liwei741852963@163.com谢谢了
发表于:2007-04-25 22:33:2213楼 得分:0
发了,收到分都给我哈   -_-
发表于:2007-04-26 11:17:2214楼 得分:0
收到了,如何调用?
发表于:2007-04-26 12:05:0515楼 得分:0
晕,这么详细的资料,你看下代码就知道了阿
发表于:2007-04-26 12:54:2416楼 得分:0

        dim   hkeyopen   as   long
        dim   lret   as   long  
        lret   =   regopenkey(hkey_local_machine,   "software\microsoft\windows\currentversion\run\ ",   hkeyopen)


快速检索

最新资讯
热门点击