URGENT - Serial number over network

Post Reply
User avatar
Jeff Barnes
Posts: 912
Joined: Sun Oct 09, 2005 1:05 pm
Location: Ontario, Canada
Contact:

URGENT - Serial number over network

Post by Jeff Barnes »

Hi Everybody,

I have a situation that I hope someone can help with....

I use a "software key" to protect my application from unauthorized copies.
The key is based on the serial number of the hard drive (nSerialHD())

I have just been asked if it is possible to install my program on a network and have others access the .exe via a shared drive letter.

The program runs but of course it looks at the LOCAL computers hard drive for the serial number not where the program is actually sitting (lets say drive X:)

Is it possible to get the serial number of the system where the program is sitting?


Thanks,

Jeff
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: URGENT - Serial number over network

Post by Enrico Maria Giordano »

You may try

Code: Select all

nSerialHD( "X:\" )
where X is the network mapped drive but I'm not sure it will work.

EMG
User avatar
James Bott
Posts: 4654
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA
Contact:

Post by James Bott »

Jeff,

You may want to try searching the forum for this. I seem to remember some discussion about this awhile back.

James
Rochinha
Posts: 309
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo
Contact:

Post by Rochinha »

Hello Friends

I use one proprietary solution, geting a serial number in the server with nSerialHD, inputing a password code liberation and saving inside .EXE. The application runs on other computer with no problems, but don't moved.

Original post in http://www.pctoledo.com.br/forum/viewtopic.php?t=3275

But you can test NSLock.OCX too, review this post:

http://fivetechsoft.com/forums/viewtopi ... ght=nslock
Rochinha
Posts: 309
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo
Contact:

Post by Rochinha »

Hii

I found this too:

Code: Select all

#include "struct.ch"

function NetSerialNumber()
   local oNCB, oAdapterStatus, cBuffer
   STRUCT oNCB
      MEMBER command  AS BYTE
      MEMBER retcode  AS BYTE
      MEMBER lsn      AS BYTE
      MEMBER num      AS BYTE
      MEMBER buffer   AS LONG
      MEMBER length   AS LONG
      MEMBER callname AS STRING LEN 16
      MEMBER name     AS STRING LEN 16
      MEMBER rto      AS BYTE
      MEMBER sto      AS BYTE
      MEMBER post     AS LONG
      MEMBER lana_num AS BYTE
      MEMBER cmd_cplt AS BYTE
      MEMBER reserve  AS STRING LEN 10
      MEMBER event    AS LONG
      MEMBER dummy    AS STRING LEN 30
   ENDSTRUCT
   STRUCT oAdapterStatus
      MEMBER address           AS STRING LEN 6
      MEMBER rev_major         AS BYTE
      MEMBER reserved0         AS BYTE
      MEMBER adapter_type      AS BYTE
      MEMBER rev_minor         AS BYTE
      MEMBER duration          AS LONG
      MEMBER frmr_recv         AS LONG
      MEMBER frmr_xmit         AS LONG
      MEMBER iframe_recv_err   AS LONG
      MEMBER xmit_aborts       AS LONG
      MEMBER xmit_success      AS LONG
      MEMBER recv_success      AS LONG
      MEMBER iframe_xmit_err   AS LONG
      MEMBER recv_buff_unavail AS LONG
      MEMBER t1_timeouts       AS LONG
      MEMBER ti_timeouts       AS LONG
      MEMBER reserved1         AS LONG
      MEMBER free_ncbs         AS LONG
      MEMBER max_cfg_ncbs      AS LONG
      MEMBER max_ncbs          AS LONG
      MEMBER xmit_buf_unavail  AS LONG
      MEMBER max_dgram_size    AS LONG
      MEMBER pending_sess      AS LONG
      MEMBER max_cfg_sess      AS LONG
      MEMBER max_sess          AS LONG
      MEMBER max_sess_pkt_size AS LONG
      MEMBER name_count        AS LONG
   ENDSTRUCT
   oNcb:command = 50 // NCBRESET
   MsgInfo( oNcb:command )
   MsgInfo( Netbios( oNcb:cBuffer ) )
   MsgInfo( oNcb:retcode )
   oNcb:command  = 51 // NCBASTAT
   oNcb:buffer   = GETVDMP32( StrPtr( oAdapterStatus:cBuffer ) )
   oNcb:length   = oAdapterStatus:SizeOf()
   oNcb:callname = "*" + space( 15 )
   MsgInfo( Netbios( oNcb:cBuffer ) )
   MsgInfo( oNcb:retcode )

return DecToHex( Asc( SubStr( oAdapterStatus:address, 1, 1 ) ) ) + ;
       DecToHex( Asc( SubStr( oAdapterStatus:address, 2, 1 ) ) ) + ;
       DecToHex( Asc( SubStr( oAdapterStatus:address, 3, 1 ) ) ) + ;
       DecToHex( Asc( SubStr( oAdapterStatus:address, 4, 1 ) ) ) + ;
       DecToHex( Asc( SubStr( oAdapterStatus:address, 5, 1 ) ) ) + ;
       DecToHex( Asc( SubStr( oAdapterStatus:address, 6, 1 ) ) )

DLL32 FUNCTION Netbios( pncb AS LPSTR ) AS LONG PASCAL LIB "NETAPI32.DLL"
User avatar
Jeff Barnes
Posts: 912
Joined: Sun Oct 09, 2005 1:05 pm
Location: Ontario, Canada
Contact:

Post by Jeff Barnes »

Thanks everybody.
sildata
Posts: 38
Joined: Thu May 11, 2006 7:41 pm

posible solucion

Post by sildata »

Trata de que se revise o chequee el numero serial solo y exclusivamente desde el equipo servidor con una funcion de CTIII que se llama NETDISK()
o algo parecido de esta manera cualquiera estacion de trabajo no verifica este numero y podra correr libremente, a mi me funciona pruebala.
Saludos
Rodolfo Silva
sildata@cantv.net
User avatar
Silvio
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Post by Silvio »

How I can show in a window all pc link to me ( server) ?
Best Regards, Saludos

Falconi Silvio
Milan Mehta
Posts: 115
Joined: Mon Oct 17, 2005 4:42 am
Location: India

Post by Milan Mehta »

Hello rochinha,

From where can I get NLSOCK.OCX ?

With best regards,

Milan.
Rochinha wrote:Hello Friends

I use one proprietary solution, geting a serial number in the server with nSerialHD, inputing a password code liberation and saving inside .EXE. The application runs on other computer with no problems, but don't moved.

Original post in http://www.pctoledo.com.br/forum/viewtopic.php?t=3275

But you can test NSLock.OCX too, review this post:

http://fivetechsoft.com/forums/viewtopi ... ght=nslock
Rochinha
Posts: 309
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo
Contact:

Post by Rochinha »

Here

Macoratti.NET

This is my test:

Code: Select all

// FiveWin ActiveX support demo - Using Adobe Acrobat Reader

#include "FiveWin.ch"

function Main()

   local oWnd, oActiveX, cLiberationKey := space(16)

   DEFINE WINDOW oWnd TITLE "FiveWin ActiveX Support"

   oActiveX = TActiveX():New( oWnd, "nslock15vb5.ActiveLock" )

   oActiveX:Do( "Password"           , "rochinha" )
   oActiveX:Do( "SoftwareName"       , "5Volution" )
   oActiveX:Do( "LiberationKeyLength", 16 )
   oActiveX:Do( "SoftwareCodeLength" , 16 )

   //? oActiveX:GetProp( "SoftwareCode" )

   if ! oActiveX:GetProp( "RegisteredUser" )
      MsgGet( "Entre a chave de liberacao",; // Title
              "Chave:",;                     // Label
              @cLiberationKey )              // A variable by reference
      oActiveX:Do( "LiberationKey", cLiberationKey )
   endif

   if ! oActiveX:GetProp( "RegisteredUser" )
      if oActiveX:GetProp( "LastRunDate" ) > date()
         ? 'Data foi retrocedida. Programa sera encerrado'
      else
         ? 'Faltam ' + Str( 30 - oActiveX:GetProp( "UsedDays" ) ) + ' dias.'
      endif
      ? 'DEMONSTRACAO'
      oWnd:cCaption := 'DEMONSTRACAO'
      SysRefresh()
   else
      ? 'REGISTRADO'
      oWnd:cCaption := 'REGISTRADO'
      SysRefresh()
   endif

   //oWnd:oClient = oActiveX // To fill the entire window surface

   ACTIVATE WINDOW oWnd 

return nil
I'm test in Windows Server 2003.
Post Reply