소프트웨어 저작권이 존중되는 시대에 전자적으로 등록된 소프트웨어의 적용이 점점 더 확산되고 있습니다. 그 외관을 통해 사용자는 프로그램의 제한되지 않은 기능을 어느 정도 이해할 수 있고 홍보 및 전파 역할을 하며 제작자의 중요한 이익을 보호할 수 있습니다. 그렇다면 소프트웨어의 전자 등록 버전을 어떻게 생성합니까?
몇 가지 탐색 후에 저자는 VB를 사용하여 소프트웨어의 전자 등록 버전을 만들었습니다.
디자인 원칙
API의 "GetVolumeInformation" 기능을 사용하여 사용자 시스템의 하드 디스크 일련 번호를 기능 코드로 추출합니다. 이 코드는 등록 중에 제출되며 소프트웨어 저작권 소유자가 계산하여 등록 코드를 제공합니다. 사용자는 등록 코드를 입력하여 전체 등록 프로세스를 완료합니다. (설명을 단순화하기 위해 이 예에서는 기능 코드에서 101을 뺀 값을 등록 코드로 사용합니다.)
새 모듈 파일 만들기
새 모듈 파일을 만들고 다음 선언된 문과 상수를 Module1.Bas 모듈에 추가합니다.
함수 GetVolumeInformation Lib "kernel32" 별칭 "GetVolumeInformationA" 선언
(ByVal lpRootPathName을 문자열로, ByVal lpVolumeNameBuffer를 문자열로, ByVal
nVolumeNameSize 길이, lpVolumeSerialNumber 길이, lpMaximumComponentLength 길이
긴, 긴 lpFileSystemFlags, ByVal lpFileSystemNameBuffer As String, ByVal
nFileSystemNameSize만큼)만큼 오랫동안
글로벌 GetVal은 오랫동안
프로그래밍할 때 선언문을 같은 줄에 작성하도록 주의하세요.
양식 설정
Form1에 2개의 텍스트 상자를 추가하고 Name 속성을 각각 Text1 및 Text2로 설정하고 다른 단추를 추가하고 Name 속성을 Command1로 설정합니다.
코드 추가
Form1의 Form1_Load 이벤트에 다음 프로그램 코드를 추가합니다.
비공개 하위 Form_Load()
희미한 TempStr1 As String * 256
Dim TempStr2 As String * 256
TempLon1이 오랫동안 흐릿함
TempLon2가 오랫동안 흐려짐
......
'등록 여부에 대한 정보를 읽으십시오. 이를 제어하는 방법은 여기서 설명하지 않습니다.
......
GetVolumeInformation("C:", TempStr1, 256, GetVal, TempLon1, TempLon2, TempStr2, 256)을 호출합니다.
Text1.Text = GetVal '로컬 C 드라이브의 일련 번호를 텍스트 상자 1로 추출합니다.
서브 끝
Command1의 Command1_Click 이벤트에 다음 프로그램 코드를 추가합니다.
개인 하위 Command1_Click()
Text2 〈〉 CStr(GetVal) 그러면
MsgBox "등록번호가 올바르지 않습니다. 입력이 올바른지 잘 확인해주세요."
또 다른
MsgBox "성공적으로 등록되었습니다. 소프트웨어를 다시 시작하십시오."
......
(향후 소프트웨어 기능이 제한되지 않도록 올바른 등록 정보를 작성하십시오. 구체적인 방법은 개인 취향에 따라 설정될 수 있습니다.)
......
종료 조건
서브 끝
이 시점에서 프로그램을 실행할 수 있습니다. 우리는 하드 디스크 일련 번호를 사용하여 전자적으로 등록된 소프트웨어 버전을 생성하는 기능을 구현했다는 것을 알게 될 것입니다.