VB創(chuàng)建自定義文件后綴名并改變其默認(rèn)圖標(biāo)及打開方式_第1頁
VB創(chuàng)建自定義文件后綴名并改變其默認(rèn)圖標(biāo)及打開方式_第2頁
VB創(chuàng)建自定義文件后綴名并改變其默認(rèn)圖標(biāo)及打開方式_第3頁
VB創(chuàng)建自定義文件后綴名并改變其默認(rèn)圖標(biāo)及打開方式_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、VB創(chuàng)建自定義文件后綴名,并改變其默認(rèn)圖標(biāo)及打開方式VB創(chuàng)建自定義文件后綴名,并改變其默認(rèn)圖標(biāo)及打開方式2010-11-30 11:43網(wǎng)上下的一個程序,可以用它來打造自己的工程品牌!這里我把原代碼貼出,希望對大家有所幫助!標(biāo)準(zhǔn)模塊:General.bas Attribute VB_Name="General"Public Const REG_SZ=1 Global Const HKEY_CLASSES_ROOT=&H 80000000 Public Declare Function RegCreateKey Lib"advapi32.dll"A

2、lias"RegCreateKeyA"(ByVal hKey As Long,ByVal lpSubKey As String,phkResult As Long)As Long Declare Function RegQueryValueEx Lib"advapi32"Alias"RegQueryValueExA"(ByVal hKey As Long,ByVal lpszValueName As String,ByVal dwReserved As Long,lpdwType As Long,lpbData As Any,cbDa

3、ta As Long)As Long Declare Function RegOpenKey Lib"advapi32"Alias"RegOpenKeyA"(ByVal hKey As Long,ByVal lpszSubKey As String,phkResult As Long)As Long Declare Function RegSetValueEx Lib"advapi32.dll"Alias"RegSetValueExA"(ByVal hKey As Long,ByVal lpValueName As

4、 String,ByVal Reserved As Long,ByVal dwType As Long,lpData As Any,ByVal cbData As Long)As Long'Note that if you declare the lpData parameter as String,you mu st pass it By Value.Declare Function RegCloseKey Lib"advapi32"(ByVal hKey As Long)As Long Public Declare Function GetSystemDirec

5、tory Lib"kernel32"Alias"GetSystemDirectoryA"(ByVal lpBuffer As String,ByVal nSize As Long)As Long Public Function RegSetStringValue(ByVal hKey As Long,ByVal strValueName As String,_ ByVal strData As String,Optional ByVal fLog)As Boolean Dim lResult As Long On Error GoTo 0lResult=

6、RegSetValueEx(hKey,strValueName,0&,REG_SZ,ByVal strData,_ LenB(StrConv(strData,vbFromUnicode)+1)If lResult=0 Then RegSetStringValue=True Else RegSetStringValue=False End If End Function Public Function StripTerminator(ByVal strString As String)As String Dim intZeroPos As Integer intZeroPos=InStr

7、(strString,Chr$(0)If intZeroPos 0Then StripTerminator=Left$(strString,intZeroPos-1)Else StripTerminator=strString End If End Function Public Function RegQueryStringValue(B yVal hKey As Long,ByVal strValueName As String,_ strData As String)As Boolean Dim lResult As Long Dim lValueType As Long Dim str

8、Buf As String Dim lDataBufSize As Long RegQueryStringValue=False On Error GoTo 0lResult=RegQueryValueEx(hKey,strValueName,0&,lValueType,ByVal 0&,_ lDataBufSize)If lResult=ERROR_SUCCESS Then If lValueType=REG_SZ Then strBuf=String(lDataBufSize,"")lResult=RegQueryValueEx(hKey,strValu

9、eName,0&,0&,ByVal strBuf,_ lDataBufSize)If lResult=ERROR_SUCCESS Then RegQueryStringValue=True strData=StripTerminator(strBuf)End If End If End If End Function窗體模塊:FrmMain.frm VERSION 5.00 Begin VB.Form FrmMain Caption="Form1"ClientHeight=3195 Clien tLeft=60 ClientTop=345 ClientWid

10、th=4680 LinkTopic="Form1"ScaleHeight=3195 ScaleWidth=4680 StartUpPosition=3'窗口缺省Begin VB.CommandButton Command1 Caption="Command1"Height=375 Left=1800 TabIndex=0 Top=2400 Width=1215 End Begin VB.Label Label1 Caption="啟動時,在注冊表里產(chǎn)生名為mjf的后綴類型。點擊command1按鈕,如果成功,其打開方式將變?yōu)槭褂胣ote

11、pad.exe打開,圖標(biāo)也發(fā)生改變。"Height=810 Left=855 TabIndex=1 Top=435 Width=2940 End End Attribute VB_Name="FrmMain"Attribute VB_GlobalNameSpace=False Attribute VB_Creatable=False Attribute VB_PredeclaredId=True Attribute VB_Exposed=False Dim mSysPath As String Private Sub Command1_Click()Dim hKe

12、y As Long Dim MyReturn As Long Dim MyData As String MyReturn=RegOpenKey(HKEY_CLASSES_ROOT,".mjf",hKey)MyReturn=RegQueryStringValue(hKey,"",MyData)MyReturn=RegOpenKey(HKEY_CLASSES_ROOT,MyData+"shellopencommand",hKey)MyReturn=RegSetStringValue(hKey,"",mSysPath&a

13、mp;"notepad.exe%1",False)If MyReturn Then MsgBox"改變文件打開方式成功!",vbInformation,"請注意"Else MsgBox"改變文件打開方式失敗!",vbExclamation,"請注意"End If MyReturn=RegOpenKey(HKEY_CLASSES_ROOT,MyData+"DefaultIcon",hKey)MyReturn=RegSetStringValue(hKey,""

14、,mSysPath&"shell32.dll,-151",False)If MyReturn Then MsgBox"改變圖標(biāo)成功",vbInformation,"提示"Else MsgBox"改變圖標(biāo)失敗",vbExclamation,"提示"End If RegCloseKey(hKey)End Sub Private Sub Form_Load()Dim Length As Integer mSysPath=Space$(125)Call GetSystemDirectory(mS

15、ysPath,125)mSysPath=StripTerminator(mSysPath)Dim KeyId As Long Call RegCreateKey(HKEY_CLASSES_ROOT,".mjf",KeyId)Call RegSetValueEx(KeyId,"",0&,REG_SZ,ByVal"mjffile",Len("mjffile")+1)Dim KeyId1 As Long Call RegCreateKey(HKEY_CLASSES_ROOT,"mjffile"

16、,KeyId1)Call RegSetValueEx(KeyId1,"",0&,REG_SZ,ByVal"自定義類型",LenB("自定義類型")+1)Dim KeyId2 As Long Call RegCreateKey(KeyId1,"DefaultIcon",KeyId2)Call RegSetValueEx(KeyId2,"",0&,REG_SZ,ByVal mSysPath&"shell32.dll-5",Len(mSysPath&"shell32.dll-5")+1)Dim KeyId3 As Long Call RegCreateKey(KeyId1,"Shell",KeyId3)Dim KeyId4 As Long Call RegCreateKey(KeyId3,"Open",KeyId4)Dim KeyId5 As Long Cal

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論