APLICATIVO EM PEM DRIVE

DAVERSON 16/03/2010 18:31:27
#337117
Ola galera...

Tenho um aplicativo am access 2003, que roda com bloqueio por numero de serie do hd, e presciso que ele rode num pem drive, alguem tem ideia de como bloquear a copia desse aplicativo, ou seja pra deixar ele rodar so nesse pen drive, em qualquer pc?
JWCELYO 16/03/2010 18:52:00
#337118
o que você pode fazer é pega o id desse pen dirver e so liberar o aplicativo para esse id
DAVERSON 16/03/2010 20:31:39
#337124
como faria isso???
IRRV 16/03/2010 22:57:28
#337129
Eu tenho uma função que faz isso.
Em um modulo declare a funcao da API:

[ô]**** Declarações para saber o Numero do HD ********
Private Declare Function GetVolumeInformation Lib [Ô]kernel32[Ô] Alias [Ô]GetVolumeInformationA[Ô] _
(ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal _
nVolumeNameSize As Long, lpVolumeSerialNumber As Long, _
lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal _
lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long


Depois a funcao que retorna o valor:

 
Public Function DriveSerial(ByVal Drive As String) As Long
[ô]Valor que retornará o serial do HD
Dim RetVal As Long
Dim HDNameBuffer As String * 256 [ô]Nome do HD
Dim FSBuffer As String * 256 [ô]FS do HD
Dim a As Long [ô]auxiliar
Dim b As Long [ô]auxiliar
Call GetVolumeInformation(Drive, HDNameBuffer, 256, RetVal, a, b, FSBuffer, 256)
DriveSerial = RetVal
End Function


E por fim obtenha o valor assim:
lblSerial.caption = DriveSerial(C:\)

Att,
Igor
DAVERSON 17/03/2010 07:55:16
#337141
isso fica blz pra hd... de pc onde sua letra de unidade e sempre a mesma mas lembre que pen drive muda de a letra da unidade em computadores diferentes.
JWCELYO 17/03/2010 08:11:30
#337144
Private Declare Function GetVolumeInformation Lib [Ô]kernel32[Ô] Alias [Ô]GetVolumeInformationA[Ô] _
(ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal _
nVolumeNameSize As Long, lpVolumeSerialNumber As Long, _
lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal _
lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long


Public Function DriveSerial(ByVal Drive As String) As Long
[ô]Valor que retornará o serial do HD
Dim RetVal As Long
Dim HDNameBuffer As String * 256 [ô]Nome do HD
Dim FSBuffer As String * 256 [ô]FS do HD
Dim a As Long [ô]auxiliar
Dim b As Long [ô]auxiliar
Call GetVolumeInformation(Drive, HDNameBuffer, 256, RetVal, a, b, FSBuffer, 256)
DriveSerial = RetVal
End Function


Private Sub Form_Load()
Me.Caption = DriveSerial(Left(App.Path, 3))
End Sub

DAVERSON 17/03/2010 08:28:50
#337145
da erro em tempo de execução [ô]424 [ô]

objeto obrigatorio

em
Me.Caption = DriveSerial(Left(App.Path, 3))
tentei colocar um label
LblRegistro.Caption = DriveSerial(Left(App.Path, 3))

tb deu o mesmo erro.
DAVERSON 17/03/2010 08:48:44
#337147
so pra avisar o erro é no App.Path
RICATOM 17/03/2010 09:00:54
#337150
Veja o exemplo em anexo, ele pega o serial de um pendrive.

Obs: não é de minha autoria e numca testei na pratica.
JWCELYO 17/03/2010 10:06:28
#337154
isso deve acontecer devido um problema no seu pen driver, ou ele não emite serial de volume disco
IRRV 17/03/2010 11:52:21
#337163
Daverson
O exe esta dentro da pen drive???
é só vc pegar a letra da Pen Drive no Path do executavel !!

Igor
Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas