大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 程序开发 -> 如何建立文件关联

如何建立文件关联

时间: 2021-07-31 作者:daque

文献关系是指翻开一种典型的文献的默许办法比方默许状况下文本文献txt是与登记本步调关系联的咱们双击文本文献就能径直运转登记本步调来编纂它。文献的关系是经过备案表得以实行的本例即是运用api因变量regcreatekey和regsetvalue来对备案表举行窜改居中不妨看到这两个因变量的用法。   --------------------------------------  运用winapi因变量实行文献关系  --------------------------------------  步调证明:  例中运用两个api因变量regcreatekey和  regsetvalue窜改备案表中的相映键值  实行某一典型文献.log同一个运用步调  notepad.exe的关系.  --------------------------------------  证明&动作数据典型的标示而不是“与”演算符  &指long长整型数据其范畴从 -2,147,483,648 到 2,147,483,647。long 的典型证明字符为和号 (&)。   当关系按钮被按下时读写备案表实行 .log 文献和 登记本notepad 的关系  即使你对备案表的构造和运用不熟习的话不妨参看“电脑乐土”中的关系教程private sub command1_click()if cmdpressed = true then exit sub   dim skeyname as string 键的称呼  dim skeyvalue as string 键值  dim ret& 归来缺点消息的变量  dim lphkey& 此变量用来生存创造的键的句柄  本质功效是在备案表的hkey_classes_root下创造myapp目次  skeyname = "myapp" *名为myapp的键名  skeyvalue = "logfiles" *把键值设为"logfiles"  在hkey_classes_root中创造名为skeyname的键并归来句柄lphkey&  ret& = regcreatekey&(hkey_classes_root, skeyname, lphkey&)  向句柄lphkey&所指的场所写入键值skeyvalue  ret& = regsetvalue&(lphkey&, "", reg_sz, skeyvalue, 0&)  在备案表的hkey_classes_root下创造其余一个目次 .log  skeyname = ".log" *名为.log的键名  skeyvalue = "myapp" *把键值设为"myapp"ret& = regcreatekey&(hkey_classes_root, skeyname, lphkey&)ret& = regsetvalue&(lphkey&, "", reg_sz, skeyvalue, 0&)   为“myapp”树立了一个吩咐行  skeyname = "myapp" *名为myapp的键名  skeyvalue = "notepad.exe %1" *把键值设为"notepad.exe %1"即使你领会dos下的.bat文献的语法的话便知%1指的是要翻开的文献  即使该键仍旧创造则regcreatekey那么因变量会翻开现有的项  ret& = regcreatekey&(hkey_classes_root, skeyname, lphkey&)  底下一句的本质功效是在myapp键下创造shell\open\command目次并写入键值skeyvalue  证明:放在一个键的shell\open\command下的是翻开某一典型文献的运用步调的称呼  ret& = regsetvalue&(lphkey&, "shell\open\command", reg_sz, skeyvalue, max_path)  command1.caption = "关系仍旧创造"command1.enabled = falsecmdpressed = trueend sub private sub form_load()cmdpressed = falseend sub    以次是模块文献中的代码:declare function regcreatekey& lib "advapi32.dll" alias "regcreatekeya" (byval hkey&, byval lpszsubkey$, lphkey&) 【vb证明】private declare function regcreatekey lib "advapi32.dll" alias "regcreatekeya" (byval hkey as long, byval lpsubkey as string, phkresult as long) as long 【证明】在指定的项下创造一个新项。如指定的项仍旧生存那么因变量会翻开现有的项 【归来值】long零(error_success)表白胜利。其余任何值都代办一个缺点代码 【参数表】hkey ----------- long要翻开项的句柄大概一个规范项名 lpsubkey ------- string欲创造的新子项。可同声创造多个项只需用反斜杠将它们分割开即可。比方level1\level2\newkey phkresult ------ long指定一个变量用来承载新子项的句柄declare function regsetvalue& lib "advapi32.dll" alias "regsetvaluea" (byval hkey&, byval lpszsubkey$, byval fdwtype&, byval lpszvalue$, byval dwlength&) 【vb证明】private declare function regsetvalue lib "advapi32.dll" alias "regsetvaluea" (byval hkey as long, byval lpsubkey as string, byval dwtype as long, byval lpdata as string, byval cbdata as long) as long 【证明】树立指定项或子项的默许值 【归来值】long零(error_success)表白胜利。其余任何值都代办一个缺点代码 【参数表】hkey ----------- long一个已翻开项的句柄或指定一个规范项名 lpsubkey ------- string欲对它的值举行树立的一个子项的名字。如指定vbnullstring表白树立hkey的默许值。如指定的子项不生存则会创造它 dwtype --------- long必需是reg_sz lpdata --------- string新值 cbdata --------- long指定lpdata的长度不囊括空遏止字符public const error_success = 0&public const error_baddb = 1&public const error_badkey = 2&public const error_cantopen = 3&public const error_cantread = 4&public const error_cantwrite = 5&public const error_outofmemory = 6&public const error_invalid_parameter = 7&public const error_access_denied = 8&global const hkey_classes_root = &h80000000public const max_path = 256&public const reg_sz = 1   咱们先来证明api因变量本例顶用到的两个因变量证明如次:   private declare function regcreatekey& lib "advapi32.dll" alias "regcreatekeya" (byval hkey&, byval lpszsubkey$, lphkey&) as long    private declare function regsetvalue& lib "advapi32.dll" alias "regsetvaluea" (byval hkey&, byval lpszsubkey$, byval fdwtype&, byval lpszvalue$, byval dwlength&) as long    regcreatekey因变量的效率是在备案表中指定的主键下创造一个新的主键而如指定的键仍旧生存那么因变量会翻开现有的主键个中各个参数的意旨如次表所示:   参数 意旨 hkey long 要翻开键的句柄大概一个规范键名。比方:hkey_classes_root 是规范键名 lpsubkey string 欲创造的新子键。如创造多个键需用反斜杠将它们分割开。比方:level1\newkey  phkresult long 指定一个变量用来获得新子键的句柄在树立键值时要用到它 归来值 long 零(error_success)表白胜利。其余任何值都代办一个缺点代码    regsetvalue因变量用来树立指定键或子键的默许值它的各个参数的意旨如次:参数 意旨 hkey long 一个已翻开键的句柄可从上头phkresult获得或是指定一个规范键名 lpsubkey string 要树立键值的一个子键的名字。如指定vbnullstring表白树立hkey的默许值。如指定的子键不生存则会创造它 dwtype long 必需是reg_sz lpdata string 新的键值 cbdata long 指定lpdata的长度不囊括空遏止字符 归来值 long 零(error_success)表白胜利。其余任何值都代办一个缺点代码   底下咱们看看还好吗实行文献关系办法一:到处备案表的hkey_classes_root下创造myapp主键:   ret& = regcreatekey&(hkey_classes_root, skeyname, lphkey&)   语句中skeyname仍旧预先赋值为"myapp"而因变量实行完后lphkey&会归来新创造的主键的句柄而后咱们向句柄lphkey&所指的场所写入键值skeyvalue(仍旧赋值为"logfiles")   ret& = regsetvalue&(lphkey&, "", reg_sz, skeyvalue, 0&)   即使这时候察看备案表会创造如次图所示的新主键和键值:   办法二:在备案表的hkey_classes_root下创造其余一个主键键名为“.log”键值为“myapp”创造的本领与第一步沟通只然而键名和键值各别。创造此键值的效率是把“.log”文献关系到“myapp”主键所规则的实质这时候的备案表如次:   第三步:咱们为“myapp”树立了一个吩咐行也即是在主键myapp下创造如次主键:   实行的代码是:   skeyname = "myapp"        *名为myapp的键名    skeyvalue = "notepad.exe %1"   *把键值设为"notepad.exe %1"%1指的是要翻开的文献       即使该键仍旧创造则regcreatekey那么因变量会翻开现有的项    ret& = regcreatekey&(hkey_classes_root, skeyname, lphkey&)       底下一句的本质功效是在myapp键下创造shell\open\command目次并写入键值skeyvalue       证明:放在一个键的shell\open\command下的是翻开某一典型文献的运用步调的称呼    ret& = regsetvalue&(lphkey&, "shell\open\command", reg_sz, skeyvalue, max_path)   过程之上几个办法咱们仍旧创造了“.log”文献和“登记本”步调的关系。归纳前方的实质不妨发此刻vb中沿用api对备案表操纵的基础思绪都是一致的只有咱们领会了两个api因变量的用法而后熟习备案表操纵就能精巧的写出与备案表关系的步调来。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.