Tạo mật khẩu cài đặt Add-in
Chào tất cả mọi người
Tôi có tạo 1 Add-in để lưu các UDF và Sub vào đó tiện cho việc sử dụng sau này
Nhưng tôi muốn tạo mật khẩu để mỗi khi cài đặt Addin trên máy tính.
Vậy có cách nào tạo mật khẩu mỗi khi người dùng thực hiện cài thì sự kiện Private Sub_Workbook AddinInstall() sẽ yêu cầu nhập đúng mật khẩu mới cho phép sử dụng Add-in ???
Tôi có cách này hơi củ chuối một chút nhưng hy vọng sẽ giúp ích cho bạn. Khi cài nó đòi key thì nhập GPE-ADMIN-GIAIPHAP
Quá hay ! @giaiphap
tôi lại không biết là có thể dùng Ribbon.Invalidate để ẩn button đi
nhưng có 1 điều nữa là cách này có thể ẩn các Sub được gắn vào button nhưng các Function thì vẫn có thể sử dụng
Vậy có cách nào để handle nốt cái Function trong Add-in hay không?
Bạn thêm đoạn code này vào Module và test thử xem.
Public Sub Sub_Test()
Dim aKey As Integer
aKey = GetSetting("ToolsExcel", "ThietLap", "Key", 0)
If aKey = 0 Then
MsgBox "Xin loi ban khong co quyen chay sub nay"
Else
MsgBox "Ban vua cho chay sub"
End If
End Sub
Public Function BinhPhuong(a As Long)
Dim aKey As Integer
aKey = GetSetting("ToolsExcel", "ThietLap", "Key", 0)
If aKey = 0 Then
BinhPhuong = "Xin loi ban chua duoc cap quyen su dung ham nay"
Else
BinhPhuong = Sqr(a)
End If
End Function
@giaiphap bác cho ý kiến nếu có thể set 1 Master Password và 1 user password
– Master Password sẽ luôn luôn dùng được cho mọi máy
– User Password sẽ chỉ sử dụng được trên duy nhất 1 máy tính. (mật khẩu được tạo ra từ Hardware ID của máy đó)
Được chứ, cứ việc code thôi, thậm chí 1 user chỉ dùng một số chức năng không dùng hết các chức năng vẫn được. cái quan trọng là code cho phù hợp thôi. Nhưng cho bạn một lời khuyên là code vba có tính bảo mật không cao.
Nếu viết code VBA thuần túy thì việc tạo key để kiểm tra các bạn chấp nhận tính rủi ro nếu ai đó cố tình hack. Xét cho cùng đến Windows, Office vẫn bị cơ mà :).
Có một cách có thể trên VBA chưa ai làm?/! Đó là mô hình client-server. Phía máy chủ lưu file có code VBA đầy đủ. Máy khách kết nối đến máy chủ, gọi thủ tục trên máy chủ máy chủ rồi nhận kết quả. Như vậy phía máy khách code chỉ có một vài dòng lệnh gọi mà thôi, như làKết quả = Xnet.RunMacroInServer("Tên tập tin Excel có VBA.xls","Tên hàm", các tham số nếu có)
Phương pháp này lập trình hoàn toàn bằng VBA.
Phương pháp này thì bạn chỉ cần bảo mật phía máy chủ, file excel ở mọi nơi không lo lộ code và bạn có thể kiểm tra được license máy khách, quy định dùng trong bao lâu thì không cho…. Cách này bạn phải dùng một ứng dụng có bản quyền khác ngoài Excel.@giaiphap @Nguyễn Duy Tuân
nghe nói .xll bảo mật cao hơn, nhưng tôi không biết về cách này, mong các bác chia sẻ
1. trên GPE có bài viết nào hướng dẫn chi tiết cách tạo Add-in .xll này không ? nếu có xin chỉ giúp !
2. tạo Add-in .xll có thể được viết code = Visual Basic không? hay bắt buộc viết = C++, Delphi … tôi chỉ biết về Visual Basic thôi
3. Add-in .xll có thể thêm Customs ribbon như .xlam không?
VB không viết được xll bạn à. Chính thống được MS support là dùng C/C++ với bộ IDE Visual Studio.
xll bản chất chỉ là các native dll. Thằng nào tạo native dll được thì viết xll được.
Câu hỏi 1 và 3 của tôi vẫn chưa rõ câu trả lời thế nào?
Nếu có website nào hướng dẫn chi tiết thì càng tốt, Tiếng Anh thì cũng đọc được nhưng lâu hơn, còn Tiếng Việt hướng dẫn thì càng tốt :p
XLL sẽ cần thiết khi bạn muốn viết hàm UDF (hàm tự tạo dùng trên sheet). CÒn bạn viết ứng dụng để chạy lệnh thì không cần phải XLL. Bạn tạo DLL cũng được. Tôi gửi cho bạn một cánh dùng Delphi để tạo Native DLL, hoặc ActiveX DLL (mặc dù bạn vẫn có lựa chọn khác như .NET).
ESF3PDcFa0M
Trong kênh Youtube của tôi có 4 bài học cho người mới tiếp cận đó, bạn xem rồi tự học tiếp nếu thấy hứng thú.
www.giaiphapexcel.com/diendan/threads/t%E1%BA%A1o-m%E1%BA%ADt-kh%E1%BA%A9u-c%C3%A0i-%C4%91%E1%BA%B7t-add-in.143307/
Ứng dụng AI và Chat GPT trong Quản trị nhân sự
Học xong khóa này, học viên có thể: Hiểu đúng bản chất AI, các nhóm AI phổ biến và cách AI “hoạt động” ở...
Xem khóa học
.NET thì dễ dịch ngược rồi. Chia "buồm" 😉
Delphi thì nhiều bác amatuer build cứ để nguyên debug symbol (debug mode) rồi up lên, file bự bà cố, "rờ em" ra tất tần tật, hì hì. Mã assembly của Delphi/C++ Builder sinh ra cũng đơn giản, không optimize nhiều, nên dễ đọc.
Hiện tại thì không có cái gì là không dịch ngược được. Với bản thân tôi thì giờ Go Lang binary là ngán nhất.
Với chủ thớt thì thôi, cứ dùng VBA và VB đi, liệu cơm gắp mắm. Viết 1 COM dll = VB, lo mấy việc quản lý serial, user, bản quyền.
Nói gì nói thì mã PCode hay native code của VB cũng khoai, không dễ cờ rắc.