Tích hợp tính năng cấp phép vào các dự án Visual Basic

Chào mọi người,
 
Bài viết này mình sẽ hướng dẫn mọi người cấp phiếu dùng thử cho chương trình Visual Basic có bản quyền.

Bản thân ứng dụng mẫu của chúng tôi sẽ có một biểu mẫu đơn giản nhưng bạn sẽ tìm thấy đủ các bình luận trong mã cơ bản để hỗ trợ bạn triển khai tính năng này vào bất kỳ dự án nào của riêng bạn. Dự án sẽ bao gồm một biểu mẫu 'Giới thiệu' rất đơn giản sẽ hiển thị trạng thái được cấp phép của ứng dụng.
Vì bản chất của hướng dẫn này là giúp bạn hiểu toàn bộ quy trình cấp phép, chúng tôi sẽ lật qua lật lại giữa Advanced Installer và mã ứng dụng. Giả sử bạn đã quen thuộc với những điều cơ bản khi sử dụng Visual Studio nên chúng tôi sẽ không đề cập đến.

Vì vậy, khi dự án Visual Basic của chúng ta đã hoàn thành theo đúng mong muốn, hiện tại chúng ta sẽ tạo một bản dựng nhanh trong Advanced Installer bằng trình hướng dẫn Import Visual Studio Project, sau đó chúng ta sẽ thiết lập các tùy chọn cấp phép.

1. Tạo dự án Visual Basic bằng Visual Studio

Sử dụng Visual Studio 2008 để tạo một dự án Visual Basic. Thêm một thanh menu và một biểu mẫu About và lưu dự án.

Sau đó, chúng tôi sẽ thêm mã để xác minh thời gian dùng thử và khóa đăng ký.

2. Sử dụng Advanced Installer Import Wizard cho ứng dụng Visual Basic

Mở Advanced Installer và sử dụng mẫu chuyên biệt “Visual Studio Application”.

Hoàn tất trình hướng dẫn bằng cách chọn giải pháp Visual Basic đã tạo trước đó và bạn sẽ tìm thấy ứng dụng của mình trong trang Tệp và Thư mục.

Lưu dự án bằng cách sử dụng nút thanh công cụ [Lưu] và chọn tên tệp và thư mục đích.

3. Chuyển đổi dự án của bạn sang Enterprise

Visual Studio Import Wizard đã tạo một dự án Advanced Installer Professional. Để sử dụng các tính năng dùng thử và cấp phép, chúng ta phải nâng cấp dự án từ Professional lên Enterprise. Sử dụng mục menu "Project" -> "Options" để hiển thị trang tùy chọn. Trong trang "Project Type", bạn sẽ có thể cập nhật dự án của mình lên Enterprise.

4. Thêm bản dùng thử và cấp phép

Bạn có thể cấu hình tùy chọn cấp phép và dùng thử từ trang Cấp phép nằm trong phần Công cụ ở ngăn bên trái hoặc bạn có thể truy cập từ menu "Cài đặt" -> "Công cụ" -> "Cấp phép". Tạo một thử nghiệm mớiNhấp vào nút thanh công cụ [Bản dùng thử mới] để thêm thư viện cấp phép vào dự án của bạn.

Thư viện cấp phép sẽ được đặt vào Thư mục ứng dụng và bạn có thể thấy nó trong trang Tệp và Thư mục . Lưu ý rằng tên của tệp thư viện tương ứng với tên cấu hình dùng thử.

5. Chọn Tùy chọn dùng thử

Các tùy chọn dùng thử có thể được tìm thấy trong các trang tab Tùy chọn và Hiển thị của chế độ xem "Cấp phép". Hãy bắt đầu với tùy chọn đầu tiên.

5.1 Tùy chọn dùng thử


Tên hiển thị - tên ứng dụng sẽ được sử dụng trong giao diện người dùng Cấp phép. Theo mặc định, đó sẽ là Tên sản phẩm bạn đã nhập trong trình hướng dẫn nhập hoặc đã thay đổi trong trang Chi tiết sản phẩm . URL mua hàng - trang Web của bạn xử lý việc mua hàng. Theo mặc định, đó sẽ là "URL sản phẩm" được chỉ định trong trang Chi tiết sản phẩm . Advanced Installer hỗ trợ nhiều loại thời gian dùng thử: Có giới hạn thời gian - thời gian dùng thử sẽ kết thúc sau một số ngày nhất định kể từ khi cài đặt sản phẩm. Sử dụng có giới hạn - thời gian dùng thử sẽ kết thúc sau một số lần chạy ứng dụng được xác định trước. Cả hai - thời gian dùng thử sẽ kết thúc khi một trong những điều trên kết thúc. Bây giờ chúng ta đã xem các loại bản dùng thử có sẵn, hãy chọn "Cả hai" vì nó sẽ hết hạn nhanh hơn. Đặt số lượng thời gian dùng thử vào trường "Giới hạn ở" thành một giá trị nhỏ, giả sử là 10. Theo cách này, thời gian dùng thử sẽ hết hạn sau 10 lần chạy hoặc sau 10 ngày kể từ ngày cài đặt. Cuối cùng, trong trường "On new version install extend to" chúng ta sẽ thiết lập số ngày và số lần sử dụng mà chúng ta chuẩn bị để gia hạn dùng thử khi phiên bản mới của ứng dụng được cài đặt. Thiết lập giá trị này thành 5 vì người dùng đã có thời gian để dùng thử ứng dụng trong phiên bản trước đó. Chúng ta không nên chọn hỗ trợ các tùy chọn gia hạn dùng thử để mọi việc trở nên đơn giản hơn. Bây giờ chúng ta cần chỉ định loại ứng dụng nào sẽ sử dụng thư viện cấp phép. 
 5.2 Loại ứng dụng / thư viện

Có một số loại thư viện Thư viện 32-bit - unicode, hỗ trợ Win2k hoặc hệ điều hành cao hơn và có thể được sử dụng trong các ứng dụng hỗ trợ DEP Thư viện 64-bit - unicode, hỗ trợ bất kỳ hệ điều hành 64-bit nào và có thể được sử dụng trong các ứng dụng hỗ trợ DEP Vì chúng ta sẽ sử dụng thư viện cấp phép từ dự án Visual Studio 2010 (giống như VS 2005/2008) tạo ra các ứng dụng hỗ trợ DEP, chúng ta hãy sử dụng phiên bản Unicode 32 bit. 5.3 Tùy chọn hiển thị

Tại đây chúng ta có thể kiểm soát giao diện của trình hướng dẫn đăng ký và tần suất hiển thị của trình hướng dẫn này trong thời gian dùng thử.
Xin lưu ý rằng tỷ lệ phần trăm tần suất hiển thị được áp dụng cho số lần ứng dụng được mở và không tuân thủ nghiêm ngặt lựa chọn mà bạn đã thực hiện trên tab trước đó về loại bản dùng thử mà bạn muốn triển khai. Mặc định được đặt thành 30, nghĩa là trung bình bạn sẽ thấy hộp thoại dùng thử sau mỗi ba lần mở ứng dụng.

Chúng tôi sẽ bật tùy chọn “Hiển thị thông báo dùng thử ở lần chạy đầu tiên” vì tùy chọn này dành cho các ứng dụng hiển thị thỏa thuận cấp phép hoặc thông báo chào mừng ở lần chạy đầu tiên.
Bạn có thể thay đổi “Hình ảnh biểu ngữ” và “Hình ảnh hộp thoại” mặc định nhưng hãy nhớ rằng chúng chỉ có thể sử dụng trên các hệ điều hành cũ hơn Windows Vista.

5.4 Tóm tắt cài đặt tích hợp

Có ba thiết lập mà chúng ta cần để tích hợp ứng dụng VB của mình với Advanced Installer Licensing:
tên thư viện - chúng ta sẽ cần nó để xác định thư viện nào sẽ được tải khi ứng dụng bắt đầu
loại nền tảng - chúng ta phải đảm bảo rằng ứng dụng VB của mình tương thích với nền tảng đã chọn (32 bit).
khóa thư viện - được chỉ định trong trang tab "Đăng ký" và được sử dụng khi chúng ta gọi các hàm thư viện
Bây giờ chúng ta đã sẵn sàng quay lại Visual Studio và tích hợp thư viện Cấp phép cài đặt nâng cao.

6. Tích hợp Thư viện cấp phép trong ứng dụng

Trong dự án Visual Studio của chúng ta, hãy thiết lập nền tảng tương ứng của ứng dụng VB. Vì vậy, trong Visual Studio, hãy vào hộp thoại "Project" -> "Properties" -> "Build" -> "Advanced Compile Options" và thiết lập CPU mục tiêu thành x86.

Vào tệp nguồn Form1.vb thêm các đoạn mã sau:
Đừng quên thay thế Khóa thư viện từ đoạn mã bằng khóa từ trang Dự án cài đặt nâng cao > Cấp phép > Đăng ký.

Imports System
Imports System.Runtime.InteropServices
...

' This function does all the work
<DllImport("Trial.dll", EntryPoint:="ReadSettingsStr", CharSet:=CharSet.Ansi)> _
Private Shared Function InitTrial(ByVal aKeyCode As String, ByVal aHWnd As IntPtr) As UInteger
End Function


' Use this function to register the application when the application is running
<DllImport("Trial.dll", EntryPoint:="DisplayRegistrationStr", CharSet:=CharSet.Ansi)> _
Private Shared Function DisplayRegistration(ByVal aKeyCode As String, ByVal aHWnd As IntPtr) As UInteger
End Function


' The kLibraryKey is meant to prevent unauthorized use of the library.
' Do not share this key. Replace this key with your own from Advanced Installer
' project > Licensing > Registration > Library Key
Private Shared kLibraryKey As String = "3F76246B3B0E194506CBC8F512D70B9D0EF8242CEFA92E03237D7152AF70DBD428ED559FBB90"

' The register state of the application which is computed when the form is loaded
Private registered As Boolean

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

  Try
    Dim Proc As Process = Process.GetCurrentProcess()
    ' This call will display the trial dialogs if needed
    Dim ret = InitTrial(kLibraryKey, Proc.MainWindowHandle)

    ' 0 return code means that the application is registered using a valid code, otherwise is in trial
    If ret = 0 Then
      registered = True
    End If

  Catch ex As Exception
    MessageBox.Show(ex.ToString())
    Process.GetCurrentProcess().Kill()
  End Try

End Sub

Private Sub DoRegister()
  Try
    Dim Proc As Process = Process.GetCurrentProcess()
    Dim ret = DisplayRegistration(kLibraryKey, Proc.MainWindowHandle)

    ' 0 return code means that the application was already registered or it
    ' has just been registered, otherwise is in trial
    If ret = 0 Then
      registered = True
    End If

  Catch ex As Exception
    MessageBox.Show(ex.ToString())
    Close()
  End Try
End Sub

Private Sub AboutToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AboutToolStripMenuItem.Click
  Dim dlg As AboutBox1 = New AboutBox1

  ' Set the about box member to the registered state computed when the application loaded
  dlg.registered = Me.registered

  ' Display the  About box
  dlg.Show()
End Sub

Private Sub RegisterToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RegisterToolStripMenuItem.Click
  If registered Then
    MessageBox.Show("The application is already registered.", "Registered", MessageBoxButtons.OK, MessageBoxIcon.Information)
  Else
    DoRegister()
  End If
End Sub       

Vào tệp nguồn AboutBox1.vb thêm các đoạn mã sau:
...
Public registered As Boolean
Private Sub AboutBox1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  ...
  If Me.registered Then
    Me.TextBoxDescription.Text = "registered - thank you"
  Else
    Me.TextBoxDescription.Text = "trial"
  End If
End Sub       

Bây giờ bạn đã tích hợp thành công tính năng cấp phép vào dự án của mình.
Bạn sẽ không thể kiểm tra ứng dụng cho đến khi bạn cài đặt gói MSI. Sau đó, bạn có thể chạy ứng dụng từ vị trí cài đặt của nó. Nếu bạn muốn chạy ứng dụng từ Visual Studio, bạn sẽ phải sao chép thư viện "Trial.dll" từ vị trí cài đặt vào các thư mục "bin" > "Debug" và/hoặc "bin" > "Release" trong thư mục dự án Visual Studio.

8. Đăng ký ứng dụng
Sau 10 lần thử (hoặc ngày - hãy nhớ loại dùng thử đã sử dụng), thời gian dùng thử phải hết hạn.

Tại thời điểm này, người dùng cần đăng ký ứng dụng vì chúng tôi không bật tùy chọn gia hạn dùng thử. Mã đăng ký có thể được tạo từ trang Advanced Installer -> Licensing -> Registration bằng cách sử dụng liên kết “Generate Registration Keys”.
Trong hộp thoại “Generate Registry Keys”, bạn có thể tạo bất kỳ số lượng khóa nào bạn muốn. Các khóa sẽ được lưu vào một tệp mà bạn có thể dễ dàng chọn một khóa khi bạn muốn gửi cho người dùng.
Lần tới khi bạn tạo khóa đăng ký, bạn nên điền "Số khóa hoặc KeyID để bắt đầu" bằng khóa cuối cùng mà bạn đã tạo trước đó. Điều đó sẽ đảm bảo rằng các khóa đã tạo chưa được tạo trước đó.

Sao chép mã đăng ký từ tệp bạn vừa lưu. Bây giờ, quay lại trang hết hạn dùng thử và nhấp vào [Đăng ký] và dán mã đăng ký (nếu chưa được phát hiện trong bảng tạm) vào vùng văn bản từ trang Đăng ký.

9. Gỡ cài đặt và dọn dẹp

Trong quá trình thử nghiệm hoặc phát triển, bạn có thể muốn xóa bất kỳ dấu vết nào của ứng dụng để tái tạo các điều kiện trước khi cài đặt lần đầu. Để làm được điều đó, bạn phải:
Gỡ cài đặt gói - điều này sẽ xóa các tệp đã cài đặt.

Xóa mã đăng ký khỏi sổ đăng ký - theo mặc định, mã này được lưu trong Người dùng hiện tại\Phần mềm\Công ty của bạn\Sản phẩm của bạn\Khóa đăng ký và có thể được cấu hình từ trang Trình cài đặt nâng cao -> "Cấp phép" -> "Đăng ký".

Xóa thông tin dùng thử khỏi hệ thống - trong trang Advanced Installer -> "Licensing", nhấp chuột phải vào cấu hình dùng thử và chọn "Testing" -> "Remove Trial Info" (Advanced Installer phải có quyền quản trị viên để thao tác này thành công).

Cài đặt lại ứng dụng, bản dùng thử sẽ hoạt động như lần đầu bạn cài đặt. Bây giờ bạn có thể tiếp tục gỡ lỗi.

Như vậy là kết thúc hướng dẫn của chúng tôi. Bạn cũng có thể thấy các dự án cấp phép mẫu của chúng tôi hữu ích .

Post a Comment

Previous Post Next Post