1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Bloquear uma aplicação ao pc em VB

Discussão em 'Programação' iniciada por droidman, 14 de Dezembro de 2005. (Respostas: 47; Visualizações: 2929)

  1. droidman

    droidman Power Member

    É possivel ? Atravez do mac address de alguma peça ou assim ? como o serial do processador ou.. ha outra forma ? nao consigo descobrir em lado nenhum um codigo k blokeie um determinado programa ao pc, e tambem queria fazer um sistema de login e talvez de serial. Alguma ajuda/ideias por aí ?

    :003:
     
  2. MaTreCo

    MaTreCo Power Member

    Claro que é, desde que consigas aceder a essa informação ...
     
  3. Delta

    Delta Suspenso

    bloquear a execução de um programa ?
     
  4. droidman

    droidman Power Member

    não não, ppl, eu tava a fazer uma aplicaçao de envio de SMS de graça para todas as redes moveis nacionais ate 650 caracteres e acabei-a... pois é ... :) agora kero fazer um sistema de login mas kero k cada aplicaçao esteja blokeada a uma so maquina. kdo isto tiver pronto aceito propostas para pub, versoes para envio em massa etc. mas para ja preciso desta parte feita...
     
  5. MaTreCo

    MaTreCo Power Member

    Olha aí o código fresquinho:

    A parte do Processor ID, aqui não me retorna nada, mas não há nada como experimentares.
     
  6. droidman

    droidman Power Member

    ok matreco obrigado vou testar logo a partir das 4 e tal. agora tenho aulas. caso tenham mais formas ou ideias avisem sff []
     
  7. MaTreCo

    MaTreCo Power Member

    Tens aqui um ocx que me parece muito mais completo.
     
  8. droidman

    droidman Power Member

    afinal nao tive a aula.
    matreco mas esse OCX parece-me k faz milagres...
     
  9. droidman

    droidman Power Member

    Private Sub Form_Load()

    Dim List
    Dim Msg
    Dim Object
    On Local Error Resume Next
    Set List = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_BaseBoard")
    For Each Object In List
    Msg = Msg & "Motherboard Serial Number: " & Object.SerialNumber & vbCrLf
    Next

    Set List = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_Processor")
    For Each Object In List
    Msg = Msg & "Processor Unique ID: " & Object.UniqueID & vbCrLf
    Next

    Set List = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_BIOS")
    For Each Object In List
    Msg = Msg & "BIOS Serial Number: " & Object.SerialNumber & vbCrLf
    Next

    Set List = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_LogicalDisk")
    For Each Object In List
    Msg = Msg & "Disk Serial Number: " & Object.VolumeSerialNumber & vbCrLf
    Next

    MsgBox Msg
    Unload Me

    End Sub


    tava a falhar agora ja da
     
  10. droidman

    droidman Power Member

    Fantastico Delta!! eu tinha feito um programa agora mesmo k enviaria ao cliente primeiro e ele dizia a serial do disco, e eu compilava a versao consoante a serial k ele me desse so usando um IF, mas vou testar o teu metodo a ver se funciona bem.
    Ja agora... isto ao fim de 40 dias tem de blokear... mas como posso fazer ? a pessoa pode mudar o relogio...
     
  11. Delta

    Delta Suspenso

    regista a data de instalação e a data da última execução no Registry

    - a data de instalação evita que o utilizador instale e reinstale o programa várias vezes

    - a última data de execução dá para detectar se o utilizador andou com a data para trás

    se o utilizador andou com a data para trás bloqueias logo o programa, ele nem pode sequer passar a data para 1999 porque tens a data de instalação

    - até podes registar o número de execuções do programa associada à data de execução, é muito difícil o programa ser executado 1000 vezes numa determinada data para enviar SMSs

    - a data de instalação e a data de execução dá para calcular o número de dias

    com esta informação toda controlas bem as fraudes

    simples mas pode ser crackado :D

    isto é, se deres um valor óbvio às chaves do registry, ou se colocares essa informação num sítio muito óbvio, insere algumas chaves copiadas do teu PC só para disfarçar...dá nomes que causem medo de apagar...
     
    Última edição: 14 de Dezembro de 2005
  12. droidman

    droidman Power Member

    nao sabes nenhum metodo de PING a um servidor ou assim para k ele retribua uma data ? tipo dakeles servers com data e assim...
     
  13. Delta

    Delta Suspenso

    ping a websites para obter datas não podes, mas podes fazer isto :

    - obter a data de um site de notícias, por exemplo o SAPO

    cria um form com estes controles : WebBrowser1 e Command1_Click

    e insere este código no form

    Option Explicit

    Dim dataServidor As String

    Private Sub Command1_Click()
    If dataServidor = "" Then
    'espera pela data
    Else
    MsgBox dataServidor
    End If
    End Sub

    Private Sub Form_Load()
    Me.WebBrowser1.Navigate "http://www.sapo.pt"
    End Sub



    Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    If (pDisp Is WebBrowser1.Object) Then
    dataServidor = pDisp.Document.GetElementByID("date").innerHTML
    End If
    End Sub


    e tens aí o teu PING :) :)

    podes alterar o endereço para :

    Me.WebBrowser1.Navigate "http://www.portugaldiario.iol.pt"

    e a linha de código para buscar a data para :

    dataServidor = pDisp.Document.GetElementByID("data").innerHTML

    e tens o dia, mês e ano

    fazendo isto :

    MsgBox Split(dataServidor, ".")(0) 'dia
    MsgBox Split(dataServidor, ".")(1) 'mês
    MsgBox Split(dataServidor, ".")(2) 'ano
     
    Última edição: 14 de Dezembro de 2005
  14. Delta

    Delta Suspenso

    agora dá-me o endereço desse site de envio de SMSs
     
  15. droidman

    droidman Power Member

    delta adorei a ideia mas kdo primo o botao a messagebox nao diz rigorosamente nada...
     
  16. Delta

    Delta Suspenso

    tens que fazer vários clicks

    enquanto não obter a data não faz nada, nem executa nada

    seria um form de entrada

    funciona, mas não podes colocar o webbrowser invisivel

    tens que o esconder para um dos lados

    altera o código para isto :

    Private Sub Command1_Click()
    If dataServidor = "" Then
    Command1.Caption = "a ler data do servidor..."
    Else
    Command1.Caption = "OK"
    MsgBox Split(dataServidor, ".")(0) 'dia
    MsgBox Split(dataServidor, ".")(1) 'mês
    MsgBox Split(dataServidor, ".")(2) 'ano
    End If
    End Sub

    Private Sub Form_Load()
    Me.WebBrowser1.Navigate "http://www.portugaldiario.iol.pt"
    End Sub



    Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    If (pDisp Is WebBrowser1.Object) Then
    dataServidor = pDisp.Document.GetElementByID("data").innerHTML
    End If
    End Sub

    Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
    Cancel = True
    End Sub
     
    Última edição: 14 de Dezembro de 2005
  17. Delta

    Delta Suspenso

    então, funciona ou não ?
     
  18. eXcept

    eXcept Power Member

    não é ping que queres...

    é NTP (network time protocol)

    procura por um code qq que te vá buscar isso a um dos servers.

    O servidor mais usado e português é ntp02.oal.ul.pt
     
  19. Delta

    Delta Suspenso

    mas então assim é muito mais simples do que eu pensava e seguro

    não sabia que existiam esses servidores

    eu consegui encontrar outro

    pogostick.net

    e funciona lindamente e é rápido, com o português não consegui obter a data
     
  20. eXcept

    eXcept Power Member

    [​IMG]

    este é, se não me engano, o único relógio atómico existente em solo português...

    http://www.oal.ul.pt
     
    Última edição: 14 de Dezembro de 2005

Partilhar esta Página