在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細頁面

如何創(chuàng)建文件關(guān)聯(lián)

如何創(chuàng)建文件關(guān)聯(lián)

更新時間:2022-05-10 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

文件關(guān)聯(lián)是指打開一種類型的文件的默認方式比如默認狀態(tài)下文本文件txt是與記事本程序相關(guān)聯(lián)的我們雙擊文本文件就能直接運行記事本程序來編輯它。文件的關(guān)聯(lián)是通過注冊表得以實現(xiàn)的本例就是利用API函數(shù)RegCreateKey和RegSetValue來對注冊表進行修改從中可以看到這兩個函數(shù)的用法。

  --------------------------------------
  利用WinApi函數(shù)實現(xiàn)文件關(guān)聯(lián)
  --------------------------------------
  程序說明:
  例中利用兩個API函數(shù)RegCreateKey和
  RegSetValue修改注冊表中的相應(yīng)鍵值
  實現(xiàn)某一類型文件.log同一個應(yīng)用程序
  notepad.exe的關(guān)聯(lián).
  --------------------------------------
  說明&作為數(shù)據(jù)類型的標(biāo)示而不是“與”運算符
  &指Long長整型數(shù)據(jù)其范圍從 -2,147,483,648 到 2,147,483,647。Long 的類型聲明字符為和號 (&)。

  當(dāng)關(guān)聯(lián)按鈕被按下時讀寫注冊表完成 .log 文件和 記事本Notepad 的關(guān)聯(lián)
  如果你對注冊表的結(jié)構(gòu)和使用不熟悉的話可以參看“電腦樂園”中的相關(guān)教程

Private Sub Command1_Click()
If CmdPressed = True Then Exit Sub

  Dim sKeyName As String 鍵的名稱
  Dim sKeyValue As String 鍵值
  Dim ret& 返回錯誤信息的變量
  Dim lphKey& 此變量用來保存創(chuàng)建的鍵的句柄

  實際效果是在注冊表的HKEY_CLASSES_ROOT下創(chuàng)建MyApp目錄
  sKeyName = "MyApp" *名為MyApp的鍵名
  sKeyValue = "Logfiles" *把鍵值設(shè)為"Logfiles"
  在HKEY_CLASSES_ROOT中創(chuàng)建名為sKeyName的鍵并返回句柄lphKey&
  ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
  向句柄lphKey&所指的位置寫入鍵值sKeyValue
  ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)

  在注冊表的HKEY_CLASSES_ROOT下創(chuàng)建另外一個目錄 .log
  sKeyName = ".log" *名為.log的鍵名
  sKeyValue = "MyApp" *把鍵值設(shè)為"MyApp"

ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)

  為“MyApp”設(shè)置了一個命令行
  sKeyName = "MyApp" *名為MyApp的鍵名
  sKeyValue = "notepad.exe %1" *把鍵值設(shè)為"notepad.exe %1"如果你知道DOS下的.Bat文件的語法的話便知%1指的是要打開的文件
  如果該鍵已經(jīng)創(chuàng)建則RegCreateKey那么函數(shù)會打開現(xiàn)有的項
  ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
  下面一句的實際效果是在MyApp鍵下建立shell\open\command目錄并寫入鍵值sKeyValue
  說明:放在一個鍵的shell\open\command下的是打開某一類型文件的應(yīng)用程序的名稱
  ret& = RegSetValue&(lphKey&, "shell\open\command", REG_SZ, sKeyValue, MAX_PATH)

  Command1.Caption = "關(guān)聯(lián)已經(jīng)創(chuàng)建"



Command1.Enabled = False
CmdPressed = True
End Sub

Private Sub Form_Load()
CmdPressed = False
End 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
【說明】
在指定的項下創(chuàng)建一個新項。如指定的項已經(jīng)存在那么函數(shù)會打開現(xiàn)有的項

【返回值】
Long零(ERROR_SUCCESS)表示成功。其他任何值都代表一個錯誤代碼

【參數(shù)表】
hKey ----------- Long要打開項的句柄或者一個標(biāo)準(zhǔn)項名

lpSubKey ------- String欲創(chuàng)建的新子項?赏瑫r創(chuàng)建多個項只需用反斜杠將它們分隔開即可。例如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

【說明】
設(shè)置指定項或子項的默認值

【返回值】
Long零(ERROR_SUCCESS)表示成功。其他任何值都代表一個錯誤代碼
【參數(shù)表】
hKey ----------- Long一個已打開項的句柄或指定一個標(biāo)準(zhǔn)項名

lpSubKey ------- String欲對它的值進行設(shè)置的一個子項的名字。如指定vbNullString表示設(shè)置hKey的默認值。如指定的子項不存在則會創(chuàng)建它

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 = &H80000000
Public Const MAX_PATH = 256&
Public Const REG_SZ = 1
  我們先來聲明API函數(shù)本例中用到的兩個函數(shù)聲明如下:



   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函數(shù)的作用是在注冊表中指定的主鍵下創(chuàng)建一個新的主鍵而如指定的鍵已經(jīng)存在那么函數(shù)會打開現(xiàn)有的主鍵其中各個參數(shù)的意義如下表所示:

  參數(shù) 意義
hKey Long 要打開鍵的句柄或者一個標(biāo)準(zhǔn)鍵名。例如:HKEY_CLASSES_ROOT 是標(biāo)準(zhǔn)鍵名
lpSubKey String 欲創(chuàng)建的新子鍵。如創(chuàng)建多個鍵需用反斜杠將它們分隔開。例如:level1\newkey  
phkResult Long 指定一個變量用于得到新子鍵的句柄在設(shè)置鍵值時要用到它
返回值 Long 零(ERROR_SUCCESS)表示成功。其他任何值都代表一個錯誤代碼  

  RegSetValue函數(shù)用于設(shè)置指定鍵或子鍵的默認值它的各個參數(shù)的意義如下:

參數(shù) 意義
hKey Long 一個已打開鍵的句柄可從上面phkResult得到或是指定一個標(biāo)準(zhǔn)鍵名
lpSubKey String 要設(shè)置鍵值的一個子鍵的名字。如指定vbNullString表示設(shè)置hKey的默認值。如指定的子鍵不存在則會創(chuàng)建它
dwType Long 必須是REG_SZ
lpData String 新的鍵值
cbData Long 指定lpData的長度不包括空中止字符
返回值 Long 零(ERROR_SUCCESS)表示成功。其他任何值都代表一個錯誤代碼

  下面我們看看怎樣實現(xiàn)文件關(guān)聯(lián)步驟一:在在注冊表的HKEY_CLASSES_ROOT下創(chuàng)建MyApp主鍵:

   ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
  語句中sKeyName已經(jīng)預(yù)先賦值為"MyApp"而函數(shù)執(zhí)行完后lphKey&會返回新創(chuàng)建的主鍵的句柄然后我們向句柄lphKey&所指的位置寫入鍵值sKeyValue(已經(jīng)賦值為"Logfiles")

   ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)

  如果這時查看注冊表會發(fā)現(xiàn)如下圖所示的新主鍵和鍵值:

  步驟二:在注冊表的HKEY_CLASSES_ROOT下創(chuàng)建另外一個主鍵鍵名為“.log”鍵值為“MyApp”創(chuàng)建的方法與第一步相同只不過鍵名和鍵值不同。建立此鍵值的作用是把“.log”文件關(guān)聯(lián)到“MyApp”主鍵所規(guī)定的內(nèi)容這時的注冊表如下:

  第三步:我們?yōu)椤癕yApp”設(shè)置了一個命令行也就是在主鍵MyApp下建立如下主鍵:

  實現(xiàn)的代碼是:

   sKeyName = "MyApp"        *名為MyApp的鍵名
   sKeyValue = "notepad.exe %1"   *把鍵值設(shè)為"notepad.exe %1"%1指的是要打開的文件
      如果該鍵已經(jīng)創(chuàng)建則RegCreateKey那么函數(shù)會打開現(xiàn)有的項
   ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
      下面一句的實際效果是在MyApp鍵下建立shell\open\command目錄并寫入鍵值sKeyValue
      說明:放在一個鍵的shell\open\command下的是打開某一類型文件的應(yīng)用程序的名稱
   ret& = RegSetValue&(lphKey&, "shell\open\command", REG_SZ, sKeyValue, MAX_PATH)

  經(jīng)過以上幾個步驟我們已經(jīng)建立了“.log”文件和“記事本”程序的關(guān)聯(lián)?偨Y(jié)前面的內(nèi)容可以發(fā)現(xiàn)在VB中采用API對注冊表操作的基本思路都是類似的只要我們知道了兩個API函數(shù)的用法然后熟悉注冊表操作就能靈活的寫出與注冊表相關(guān)的程序來。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 红桃视频一区二区三区免费| 欧美中日韩在线| 69堂免费视频| 91九色丨porny丨国产jk| 91精品国产吴梦梦| 日本高清xxxx| 4444在线观看| 久久综合亚洲精品| 97久久国产亚洲精品超碰热| 国产奶头好大揉着好爽视频| 午夜啪啪免费视频| www.-级毛片线天内射视视| 肉色超薄丝袜脚交| www.五月天色| 欧美日韩dvd| av之家在线观看| 日韩免费毛片视频| 中文字幕第17页| 日本成人性视频| 真人抽搐一进一出视频| 无码精品a∨在线观看中文| 欧美视频第一区| 不卡的在线视频| www.18av.com| 熟妇人妻va精品中文字幕| 国产aaaaa毛片| 91社在线播放| 浮妇高潮喷白浆视频| 超碰在线97免费| 香蕉视频免费版| 黄色一级一级片| 国产高清精品软男同| 国产精品又粗又长| 蜜桃免费在线视频| 少妇大叫太大太粗太爽了a片小说| 国产原创中文在线观看| 国产色视频在线播放| 日韩一级片一区二区| 精品国产成人av在线免| 波多野结衣三级在线| 欧美,日韩,国产在线| 亚欧美在线观看| www精品久久| 亚洲一区二区三区四区精品| 男人天堂1024| 黄色一级视频播放| 杨幂毛片午夜性生毛片| 老司机午夜免费福利视频| 久久婷婷综合色| 国产精品无码一区二区在线| 少妇熟女一区二区| 婷婷免费在线观看| 免费在线a视频| 欧美这里只有精品| 99精品999| 少妇一级淫免费播放| 久久久久久久久久福利| 精品无码一区二区三区爱欲| 国产精品99久久久久久大便| 污视频免费在线观看网站| 欧美黄网站在线观看| 人人妻人人做人人爽| 欧美 国产 精品| 日本精品免费视频| 亚洲国产精品女人| 91蝌蚪视频在线| 日韩一级免费片| 911福利视频| 亚洲涩涩在线观看| 激情黄色小视频| 亚洲午夜精品一区| 永久免费黄色片| 免费国产成人看片在线| 日本xxxxx18| 国产精品视频二| 青青青在线视频播放| www.日本少妇| 波多野结衣50连登视频| 国产精品宾馆在线精品酒店| 女人和拘做爰正片视频| 男人亚洲天堂网| 北条麻妃视频在线| 亚洲一级片网站| 日本特级黄色大片| 成人av在线不卡| 欧美黄网站在线观看| 天天色综合社区| 九九九久久久久久久| 天天干天天色天天爽| 亚洲色欲久久久综合网东京热| 日韩一级性生活片| 精品视频无码一区二区三区| 中文字幕国内自拍| 大地资源网在线观看免费官网| 精品国偷自产一区二区三区| 人妻久久久一区二区三区| 国产女女做受ⅹxx高潮| 九九热视频免费| 国产精品丝袜久久久久久消防器材| 国产又黄又猛又粗又爽的视频| 精品国产无码在线| 国产黄视频在线| 在线视频观看一区二区| 日韩精品综合在线| 亚洲综合欧美在线| 无码人妻精品一区二区蜜桃网站| 欧美 日本 亚洲| 亚洲一区二区中文字幕在线观看| 日韩一级性生活片| 天堂中文av在线| www黄色日本| 肉大捧一出免费观看网站在线播放 | 成人免费在线观看视频网站| 黄色录像特级片| 视频免费1区二区三区| 欧美网站免费观看| 黄色网址在线免费看| 浓精h攵女乱爱av| 亚洲精品无码久久久久久| 欧美少妇在线观看| 国产探花在线观看视频| 日本888xxxx| 欧美视频在线观看网站 | 9色视频在线观看| 国产在线青青草| 日本高清视频免费在线观看| 网站一区二区三区| 成人一级生活片| 天堂v在线视频| 亚洲美女爱爱视频| www.激情小说.com| 91国视频在线| 男人用嘴添女人下身免费视频| 日本一道在线观看| dy888午夜| 五月天在线免费视频| 国产无色aaa| theporn国产精品| 久久久一本二本三本| 国产精品欧美激情在线观看| 丁香婷婷综合激情| 成人在线国产视频| www.成年人视频| 喜爱夜蒲2在线| 亚洲国产精品女人| 欧美国产日韩另类| 制服丝袜中文字幕第一页| 欧美三级午夜理伦三级| 黄在线观看网站| 国内外成人激情视频| 国产资源在线视频| 久久久噜噜噜www成人网| 日韩欧美精品在线观看视频| 18禁男女爽爽爽午夜网站免费| 亚洲 高清 成人 动漫| 北条麻妃69av| av在线网址导航| 精品一区二区三区毛片| 日本一道本久久| 一起操在线视频| 日韩久久久久久久久久久久| 无码av天堂一区二区三区| 日韩a∨精品日韩在线观看| 91视频 -- 69xx| 北条麻妃69av| 亚洲一级片免费观看| 国产素人在线观看| 在线视频日韩一区| 一级片免费在线观看视频| 日韩精品久久一区二区| 欧美亚洲日本在线观看| www.黄色网址.com| www.中文字幕在线| 天堂av免费看| 北条麻妃在线一区| 91嫩草国产丨精品入口麻豆| heyzo国产| 白白操在线视频| 成人不卡免费视频| 99免费视频观看| 97超碰在线人人| 麻豆视频传媒入口| 我要看一级黄色大片| 青青青免费在线| 真人抽搐一进一出视频| 特级毛片在线免费观看| 亚洲色图38p| 日韩一级免费看| 亚洲天堂伊人网| 九色在线视频观看| www插插插无码免费视频网站| 日本激情视频在线播放| 国产精品一区二区免费在线观看| 特级黄色录像片| 日本高清一区二区视频| 男人透女人免费视频| 色综合久久久久无码专区| 激情五月五月婷婷| 公共露出暴露狂另类av| 黄色片免费网址|