Làm sao sử dụng Register.reg thay lệnh SaveSetting

Liên hệ QC

Quang_Hải

Thành viên gạo cội
Tham gia
21/2/09
Bài viết
6,050
Được thích
7,948
Nghề nghiệp
Làm đủ thứ
Các anh chị cho mình hỏi làm sao viết câu lệnh trong file Register.reg để thay cho câu lệnh SaveSetting trong VBA
Ví dụ mình dùng câu lệnh này để chỉnh sửa mục Check Trust Access To The VBA
[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Security]
"AccessVBOM"=dword:000000001

Giờ mình cần thay câu lệnh SaveSetting nhưng không biết làm sao. Mình đã mò tới đây và kẹt cứng
[HKEY_CURRENT_USER\Software\VB and VBA Program Settings\Excel\MySetting]
 
Mình vẫn chưa tìm ra đáp án. Hy vọng có anh chị nào am hiểu về cách can thiệp vào Registry để đáp ứng nhu cầu trên
 
Upvote 0
Em chưa hiểu ý anh, tạm đoán vầy:
1664520980022.png
thì em chọn

1664521026917.png

Tương tự cho cái VB and VBA Program Settings\LabX_ThaiPV
1664521375369.png

Em thu được nội dung.
1664521434517.png

Cứ vậy sửa lại theo các thuộc tính của anh và Merge vào window thôi ?

------------------
Vậy theo em anh cứ làm gì đó "SaveSetting trong VBA" sau đó ra export cái key đó ra.
Lần sau không cần "SaveSetting trong VBA" nữa, bấm cái *.reg thôi
 

File đính kèm

  • LabX.rar
    311 bytes · Đọc: 4
Upvote 0
Em chưa hiểu ý anh, tạm đoán vầy:
View attachment 281535
thì em chọn

View attachment 281536

Tương tự cho cái VB and VBA Program Settings\LabX_ThaiPV
View attachment 281537

Em thu được nội dung.
View attachment 281539

Cứ vậy sửa lại theo các thuộc tính của anh và Merge vào window thôi ?

------------------
Vậy theo em anh cứ làm gì đó "SaveSetting trong VBA" sau đó ra export cái key đó ra.
Lần sau không cần "SaveSetting trong VBA" nữa, bấm cái *.reg thôi
Hức hức mò mãi chưa được, tạm thời xử lý cách này. Dùng 1 form trong vb6 để tạo 1 file .exe để thực hiện việc đăng ký
Sau khi thực hiện lệnh SaveSetting thì thoát form
Mã:
Private Sub Form_Load()
SaveMySetting
Unload Me
End Sub
Public Sub SaveMySetting()
SaveSetting "Excel", "MySetting", Abs(MySubFso.SerialNumber), True
End Sub
Public Function MyFso()
Set MyFso = CreateObject("Scripting.FileSystemObject")
End Function
Public Function MySubFso()
Set MySubFso = MyFso.GetDrive(Environ("SystemDrive"))
End Function
 
Upvote 0
Option Explicit

Sub t()
Const HKEY_CURRENT_USER = &H80000001
Const strKeyPath = "Software\VB and VBA Program Settings\Excel\MySetting"
Const strKeyName = "NewKey"
Const varValue = "Something" 'string, binary... '

Dim objReg As Object
Set objReg = GetObject("winmgmts:\root\default:StdRegProv")
objReg.CreateKey HKEY_CURRENT_USER, strKeyPath
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, strKeyName, varValue
Set objReg = Nothing
End Sub
 
Upvote 0
JavaScript:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings\Excel]

[HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings\Excel\MySetting]
"1850662375"="True"

Như các bước của anh thì chỉ cần tạo ra 1 file như vầy ?


SaveSetting "Excel", "MySetting", Abs(MySubFso.SerialNumber), True
tương ứng là
"Excel" --> tạo key --> [HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings\Excel]
"MySetting" -- > [HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings\Excel\MySetting]
Abs(MySubFso.SerialNumber) -- > "1850662375"
"True" --> "True"
 
Upvote 0
JavaScript:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings\Excel]

[HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings\Excel\MySetting]
"1850662375"="True"

Như các bước của anh thì chỉ cần tạo ra 1 file như vầy ?


SaveSetting "Excel", "MySetting", Abs(MySubFso.SerialNumber), True
tương ứng là
"Excel" --> tạo key --> [HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings\Excel]
"MySetting" -- > [HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings\Excel\MySetting]
Abs(MySubFso.SerialNumber) -- > "1850662375"
"True" --> "True"
Chính xác. Cảm ơn bạn nhiều nha. Tranh thủ lưu ghi chú lại nếu không vài bữa quên mất
Bài đã được tự động gộp:

Option Explicit

Sub t()
Const HKEY_CURRENT_USER = &H80000001
Const strKeyPath = "Software\VB and VBA Program Settings\Excel\MySetting"
Const strKeyName = "NewKey"
Const varValue = "Something" 'string, binary... '

Dim objReg As Object
Set objReg = GetObject("winmgmts:\root\default:StdRegProv")
objReg.CreateKey HKEY_CURRENT_USER, strKeyPath
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, strKeyName, varValue
Set objReg = Nothing
End Sub
Đây cũng là 1 cách hay. Cảm ơn bạn rất nhiều.
 
Upvote 0
Hỏi một đằng mà trả lời một nẻo lại nhận được là "Chính xác". Lạ thật.

1664527024282.png
 
Upvote 0
Upvote 0
Mục đích của mình là tạo ra câu lệnh trong file Register.reg để đăng ký từ file này, không phải dùng lệnh VBA

Chời. Thế thì bác chỉ cần làm sẵn hết trong Registry.
Rồi Export nó 1 cái là xong thôi, đâu cần ghi nhớ cái gì.
Mở Registry Editor (Run: nhập "regedit", nhấn enter). Nhập đường dẫn kia vào..

Click phải chuột vào Key "Excel" nhé.

1664528536267.png
 
Upvote 0
Chời. Thế thì bác chỉ cần làm sẵn hết trong Registry.
Rồi Export nó 1 cái là xong thôi, đâu cần ghi nhớ cái gì.
Mở Registry Editor (Run: nhập "regedit", nhấn enter). Nhập đường dẫn kia vào..

Click phải chuột vào Key "Excel" nhé.

View attachment 281544
Ôi trời ơi. Đơn giản vậy mà mình mò mấy ngày rồi. Từ đây có thể đi xa hơn được chút nữa. Cảm ơn bạn thật nhiều.
 
Upvote 0
Chời. Thế thì bác chỉ cần làm sẵn hết trong Registry.
Rồi Export nó 1 cái là xong thôi, đâu cần ghi nhớ cái gì.
Mở Registry Editor (Run: nhập "regedit", nhấn enter). Nhập đường dẫn kia vào..

Click phải chuột vào Key "Excel" nhé.

View attachment 281544
Ủa, bải #4 cũng nói cách y chang mà :D , có ví dụ làm cho cái LabX. Cũng đi dò ý chứ chưa hiểu anh muốn gì.
Tưởng đâu ảnh biết mở Regedit rồi.
 
Upvote 0
Web KT
Back
Top Bottom