VB6.0操作系統資料庫
本文将介紹用CreateObject(“wscript.shell”)對象操作系統資料庫
本文操作的系統資料庫目錄是HKEY_CLASSES_ROOT\Directory\Background\shell
也就是桌面菜單右鍵
下面看一下效果圖:
其中python 系統資料庫 重載檔案資料總管都是我自己添加的,在桌面右鍵菜單就可以直接打開,十分友善
下面我們來看一下自己動手怎麼實作:
在系統資料庫裡面是這個樣子,這裡顯示的是名字。
這裡看到是ico檔案的設定,也就是圖示
這裡看到的就是點選的時候執行的指令,可以是一個路徑,也可以是一條指令。
接下來我們用Vb6.0實作添加系統資料庫的功能
Dim WSH
Set WSH = CreateObject("WSCRIPT.SHELL")
WSH.RegWrite "HKEY_CLASSES_ROOT\Directory\Background\shell\test\test", "test" '寫入系統資料庫
運作完後是這樣的:
下面這個代碼可以加入python到右鍵菜單中
Dim WSH
Set WSH = CreateObject("WSCRIPT.SHELL")
WSH.RegWrite "D:\python\python.exe","D:\python\python.exe"
測試效果:
其實挺友善的。
其實還可以做一個界面讓使用者自己輸入自己想要運作的程式,代碼如下:
Private Sub Command_openfile1_Click()
CommonDialog_exe.FileName = ""
CommonDialog_exe.Filter = "可執行應用程式(*.exe)|*.exe"
CommonDialog_exe.FilterIndex = 2
CommonDialog_exe.DialogTitle = "選擇可執行應用程式(*.exe)"
CommonDialog_exe.ShowOpen
If CommonDialog_exe.FileName = "" Then
a = "Nnothing"
Else
Text_command.Text = CommonDialog_exe.FileName
End If
End Sub
Private Sub Command_openfile2_Click()
CommonDialog_exe.FileName = ""
CommonDialog_exe.Filter = "應用程式或圖示檔案(*.exe;*.ico)|*.exe;*.ico)"
CommonDialog_exe.FilterIndex = 2
CommonDialog_exe.DialogTitle = "選擇圖示(*.ico,*.exe)"
CommonDialog_exe.ShowOpen
If CommonDialog_exe.FileName = "" Then
a = "Nnothing"
Else
Text_ico.Text = CommonDialog_exe.FileName
End If
End Sub
Private Sub Command_run_Click()
Set WSH = CreateObject("wscript.shell")
reg_name_ico = "HKEY_CLASSES_ROOT\Directory\Background\shell\" + Text_name.Text + "\icon"
If Text_ico.Text = "" Then
WSH.RegWrite reg_name_ico, Text_ico.Text
reg_name = "HKEY_CLASSES_ROOT\Directory\Background\shell\" + Text_name.Text + "\command\"
reg_command = Text_command.Text
WSH.RegWrite reg_name, reg_command
MsgBox "添加成功"
End Sub
Private Sub Text_name_Change()
Text1.Text = "HKEY_CLASSES_ROOT\Directory\Background\shell\" + Text_name.Text + "\command\"
End Sub
下面是程式裡各個控件名稱:
測試:
十分的友善和快捷,點個贊吧,程式和源碼如下:
本程式在Windows7系統下測試,Windows10系統系統資料庫好像有變化,但修改的代碼不會有變,可自行設計。
https://download.csdn.net/download/qq_28406527/20234916?spm=1001.2014.3001.5503