国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

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

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

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

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

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

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

  當(dāng)關(guān)聯(lián)按鈕被按下時(shí)讀寫注冊表完成 .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& 返回錯(cuò)誤信息的變量
  Dim lphKey& 此變量用來保存創(chuàng)建的鍵的句柄

  實(shí)際效果是在注冊表的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)建另外一個(gè)目錄 .log
  sKeyName = ".log" *名為.log的鍵名
  sKeyValue = "MyApp" *把鍵值設(shè)為"MyApp"

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

  為“MyApp”設(shè)置了一個(gè)命令行
  sKeyName = "MyApp" *名為MyApp的鍵名
  sKeyValue = "notepad.exe %1" *把鍵值設(shè)為"notepad.exe %1"如果你知道DOS下的.Bat文件的語法的話便知%1指的是要打開的文件
  如果該鍵已經(jīng)創(chuàng)建則RegCreateKey那么函數(shù)會打開現(xiàn)有的項(xiàng)
  ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
  下面一句的實(shí)際效果是在MyApp鍵下建立shell\open\command目錄并寫入鍵值sKeyValue
  說明:放在一個(gè)鍵的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
【說明】
在指定的項(xiàng)下創(chuàng)建一個(gè)新項(xiàng)。如指定的項(xiàng)已經(jīng)存在那么函數(shù)會打開現(xiàn)有的項(xiàng)

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

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

lpSubKey ------- String欲創(chuàng)建的新子項(xiàng)?赏瑫r(shí)創(chuàng)建多個(gè)項(xiàng)只需用反斜杠將它們分隔開即可。例如level1\level2\newkey

phkResult ------ Long指定一個(gè)變量用于裝載新子項(xiàng)的句柄

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è)置指定項(xiàng)或子項(xiàng)的默認(rèn)值

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

lpSubKey ------- String欲對它的值進(jìn)行設(shè)置的一個(gè)子項(xiàng)的名字。如指定vbNullString表示設(shè)置hKey的默認(rèn)值。如指定的子項(xiàng)不存在則會創(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ù)本例中用到的兩個(gè)函數(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)建一個(gè)新的主鍵而如指定的鍵已經(jīng)存在那么函數(shù)會打開現(xiàn)有的主鍵其中各個(gè)參數(shù)的意義如下表所示:

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

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

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

  下面我們看看怎樣實(shí)現(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&)

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

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

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

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

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

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

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

本類教程下載

系統(tǒng)下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        欧美一区三区四区| 欧美福利电影网| 91精品免费在线| 亚洲成在线观看| 欧美日韩国产成人在线91| 偷拍日韩校园综合在线| 日韩一二在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 久久综合狠狠综合久久综合88| 极品美女销魂一区二区三区免费| 美女精品自拍一二三四| 色婷婷亚洲综合| 日韩精品久久理论片| www国产精品av| 不卡视频一二三| 亚洲va欧美va人人爽| 精品国产乱码久久久久久1区2区| 成人美女视频在线看| 首页国产丝袜综合| 中文字幕乱码一区二区免费| 91国产精品成人| 国产一区二区三区免费播放| 亚洲欧美另类小说视频| 欧美成人性福生活免费看| 成人高清av在线| 美脚の诱脚舐め脚责91 | 日韩精品一区二区三区视频在线观看 | 欧美色视频在线观看| 久久国产免费看| 亚洲福中文字幕伊人影院| 日本一区二区三区视频视频| 欧美人与性动xxxx| 91视视频在线观看入口直接观看www | aaa欧美日韩| 九九九久久久精品| 五月天久久比比资源色| 亚洲视频一区二区在线观看| 26uuu亚洲| 7799精品视频| 欧美日精品一区视频| 99久久99久久精品免费看蜜桃| 美国十次综合导航| 天天色天天操综合| 一二三区精品福利视频| 亚洲欧洲av一区二区三区久久| 欧美大白屁股肥臀xxxxxx| 欧美日韩不卡视频| 欧美性大战久久久久久久| 不卡一区二区在线| 成人v精品蜜桃久久一区| 国产风韵犹存在线视精品| 精品一二三四区| 美腿丝袜一区二区三区| 日韩精品一区第一页| 亚洲sss视频在线视频| 亚洲美女免费视频| 亚洲人成在线观看一区二区| 国产精品久久久久久亚洲毛片 | 久久成人久久爱| 日韩国产高清影视| 日本不卡视频在线观看| 热久久国产精品| 麻豆国产一区二区| 久久国产精品免费| 国产剧情av麻豆香蕉精品| 国产v综合v亚洲欧| 91社区在线播放| 欧美在线一区二区三区| 欧美年轻男男videosbes| 3atv一区二区三区| 精品国产乱码久久久久久夜甘婷婷| 欧美伦理视频网站| 欧美va在线播放| 中文字幕欧美日本乱码一线二线| 亚洲国产经典视频| 亚洲一区日韩精品中文字幕| 视频一区二区三区中文字幕| 精品一区二区三区日韩| 国产.精品.日韩.另类.中文.在线.播放| 国产成人精品免费| 91国产福利在线| 日韩女优电影在线观看| 国产精品三级视频| 午夜精品久久久久久久久久久 | 一区二区三区欧美日韩| 蜜臀av性久久久久蜜臀aⅴ| 国产黄人亚洲片| 在线一区二区三区做爰视频网站| 91精品国产综合久久久久久久久久| 精品国内二区三区| 亚洲人成网站色在线观看| 全国精品久久少妇| 91在线高清观看| 精品国产一区二区亚洲人成毛片| 中文字幕一区二区三区乱码在线 | 日本不卡视频在线观看| 成人精品一区二区三区四区| 欧美日韩国产片| 国产精品美女久久久久久2018| 一级特黄大欧美久久久| 国产成人亚洲精品狼色在线 | 91免费观看视频| 日韩三级视频在线看| 日韩伦理免费电影| 韩国v欧美v亚洲v日本v| 欧美午夜不卡视频| 国产精品美女久久久久久久网站| 毛片不卡一区二区| 91精品福利视频| 日本一区二区三区四区在线视频 | 亚洲国产精品激情在线观看| 日本不卡不码高清免费观看| 色婷婷av一区二区三区大白胸 | 日韩毛片高清在线播放| 精彩视频一区二区| 9191国产精品| 亚洲午夜日本在线观看| 97久久超碰国产精品| 国产午夜亚洲精品羞羞网站| 美女网站一区二区| 91精品国产综合久久精品app| 亚洲综合视频在线观看| 99九九99九九九视频精品| 国产欧美精品一区| 国产精品一区二区三区网站| 欧美成人艳星乳罩| 久久福利资源站| 日韩欧美色综合网站| 日韩国产成人精品| 欧美日韩免费高清一区色橹橹| 亚洲欧美一区二区三区极速播放| 成人精品亚洲人成在线| 国产精品视频在线看| 9i在线看片成人免费| 亚洲欧美日韩电影| 欧美性淫爽ww久久久久无| 亚洲一区视频在线观看视频| 欧美日韩一区二区三区高清| 香蕉久久一区二区不卡无毒影院| 欧美喷潮久久久xxxxx| 美国av一区二区| 久久精品免视看| 国产aⅴ综合色| 国产精品成人在线观看| 一本大道久久a久久精二百| 亚洲综合一二区| 6080亚洲精品一区二区| 久久精品国产精品亚洲综合| 久久久久久影视| 播五月开心婷婷综合| 亚洲黄色尤物视频| 91精品国产91久久久久久最新毛片 | 在线视频国内一区二区| 肉肉av福利一精品导航| 欧美精品一区二区三区视频| 成人激情电影免费在线观看| 亚洲综合一区二区精品导航| 欧美一卡二卡在线| 成人精品视频一区| 午夜精品久久久久久久久久久 | 91精品国产日韩91久久久久久| 精品视频资源站| 亚洲一区二区在线视频| 777亚洲妇女| 国产酒店精品激情| 亚洲欧美另类在线| 日韩一区二区电影在线| 成人午夜伦理影院| 亚洲小说欧美激情另类| 久久理论电影网| 欧美色视频在线| 成人午夜视频福利| 欧美bbbbb| 亚洲欧美经典视频| 久久久亚洲综合| 欧美视频一区二区三区在线观看| 玖玖九九国产精品| 亚洲宅男天堂在线观看无病毒| 制服丝袜激情欧洲亚洲| 日韩福利电影在线观看| 久久你懂得1024| 在线成人免费视频| av亚洲精华国产精华精| 美女精品自拍一二三四| 亚洲综合免费观看高清完整版在线 | 国产精品久久久久久久浪潮网站| 欧美天堂一区二区三区| 粉嫩av一区二区三区在线播放 | 色香蕉久久蜜桃| 国产盗摄视频一区二区三区| 日韩精品一级中文字幕精品视频免费观看 | 午夜精品福利一区二区三区蜜桃| 欧美一级久久久久久久大片| 99久久精品情趣| 激情欧美一区二区三区在线观看| 亚洲一区成人在线| 亚洲欧美国产三级| 国产精品久久三| 日本一区二区三级电影在线观看| 日韩欧美在线影院|