PEN DRIVE OFF

JABA 05/10/2009 15:47:42
#324481
Olá pessoal, desenvolvi um sistema em vb que será comercializado através de pendrivers e nos pintou o seguinte problema:

Quando o cliente utilizar o pendrive com o meu sistema, ele nao pode ter a opção de copiar o sistema para o PC e nem exclui-lo do pendrive, ou seja, ele só poderá acessar o sistema através do pendrive e nada mais.

Existe alguma forma de bloquear isso do Cliente?

Existem pen drivers que contém numero de série interno para que eu possa utilizar no meu sistema e assim fazer uma trava apartir dele?

Obs: Faço acesso a uma base de dados e estou utilizando Access como BD.

Qualquer idéia será muito bem vindo, pois nao tenho muita idéia de como fazer algo para dificultar.

Muito obrigado a Todos
ASHKATCHUP 05/10/2009 16:05:26
#324485
Resposta escolhida
Para restringir o uso somente a um pendrive, o ideal seria colocar dentro do código fonte o numero de serial do mesmo. Para conseguir esse numero, você pode utilizar o código abaixo:


Private Declare Function GetVolumeSerialNumber 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

Private Function VolumeSerialNumber(ByVal strRootPath As String) As String
Dim strVolLabel As String
Dim lngVolSize As Long
Dim lngSerial As Long
Dim lngMaxLen As Long
Dim lngFlags As Long
Dim strName As String
Dim lngNameSize As Long
Dim strSerial As String

If GetVolumeSerialNumber(strRootPath, strVolLabel, lngVolSize, lngSerial, lngMaxLen, lngFlags, strName, lngNameSize) Then
strSerial = Format(Hex(lngSerial), [Ô]00000000[Ô])
VolumeSerialNumber = Left(strSerial, 4) + [Ô]-[Ô] + Right(strSerial, 4)
Else
VolumeSerialNumber = [Ô]0000-0000[Ô]
End If
[ô]
End Function

Private Sub Form_Load()
Dim sVolume As String
[ô]
sVolume = Split(App.Path, [Ô]\[Ô])(0)
sVolume = sVolume & [Ô]\[Ô]
[ô]
MsgBox VolumeSerialNumber(sVolume)
End Sub
JABA 05/10/2009 19:02:44
#324502
ASHKATCHUP, testei em meu pc e funcionou perfeitamente, testarei no pendrive depois para ver se tambem funciona.
muito obrigado cara, abracao.
ASHKATCHUP 05/10/2009 22:41:08
#324528
Boa sorte ae no teu projeto.
Por favor, se a dúvida foi resolvida, encerre o tópico.
Tópico encerrado , respostas não são mais permitidas