Amigos, estou com uma dúvida aqui. Como eu poderia substituir essa expressão Trim(objProc.ProcessorID) para pegar a ID ou algo assim da placa mãe? Eu tentei MotherboardID e MainboardID mas não funcionou. Será que existe algo nesse sentido?
+2
JPaulo
criquio
6 participantes
Como pegar a ID ou algo assim da placa mãe?
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
- Mensagem nº1
Como pegar a ID ou algo assim da placa mãe?
.................................................................................
Meu novo site: www.vcssistemas.com.br Clique aqui e veja um vídeo que explica como fazer pesquisas no forum. DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo: 1 - faça uma cópia do aplicativo 2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar 3 - use o Compactar/Reparar 4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem) Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário. Positive as mensagens que achar útil, no canto superior direito delas. |
JPaulo- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11026
Registrado : 04/11/2009
- Mensagem nº2
Re: Como pegar a ID ou algo assim da placa mãe?
Olá Criquio;
Amigão, Habilite a referência VBA Microsoft WMI Scripting Library
Num módulo cole;
Public Function IDMotherboard() As String
Dim objs As Object
Dim obj As Object
Dim WMI As Object
Dim sAns As String
Set WMI = GetObject("WinMgmts:")
Set objs = WMI.InstancesOf("Win32_BaseBoard")
For Each obj In objs
sAns = sAns & obj.SerialNumber
If sAns < objs.Count Then sAns = sAns & ","
Next
IDMotherboard = sAns
End Function
Para chamar:
Private Sub Form_Current()
Me.SuaCaixaTexto.Value = IDMotherboard
End Sub
Amigão, Habilite a referência VBA Microsoft WMI Scripting Library
Num módulo cole;
Public Function IDMotherboard() As String
Dim objs As Object
Dim obj As Object
Dim WMI As Object
Dim sAns As String
Set WMI = GetObject("WinMgmts:")
Set objs = WMI.InstancesOf("Win32_BaseBoard")
For Each obj In objs
sAns = sAns & obj.SerialNumber
If sAns < objs.Count Then sAns = sAns & ","
Next
IDMotherboard = sAns
End Function
Para chamar:
Private Sub Form_Current()
Me.SuaCaixaTexto.Value = IDMotherboard
End Sub
.................................................................................
Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.
Pay-Pal R$ Aqui
Pay-Pal € Aqui
Ou ainda: Aqui (Novo)
Sucesso e Bons Estudos
Success and Good Studies
Utilize o Sistema de Busca do Fórum...
102 Códigos VBA Gratuitos...
Instruções SQL como utilizar...
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
- Mensagem nº3
Re: Como pegar a ID ou algo assim da placa mãe?
Obrigado amigo JPaulo!
A minha ideia era usar o id da placa mãe como serial para habilitar meus sistemas, pois ela seria a última peça a ser substituída em um pc, sendo que nesse caso o usuário estaria trocando o pc todo por outro, mas muitas das vezes é preciso habilitar a visualização das informações referentes à placa mãe no pc, pois elas costumam vir desabilitadas e nesse caso esse recurso não funcionaria, pois desenvolvi um sistema que, na primeira abertura, já checa o serial do processador e inclui ele em uma tabela e a partir daí toda vez que o bd for aberto, será feita a pesquisa nessa tabela. Se o serial lá gravado for o mesmo do processador do pc, ele abre normalmente o formulário inicial, se não for, significa que copiaram o sistema pra outro pc e aí abre uma janela restrita informando o fato e fechará em seguida. Vou continuar usando o id do processador mesmo em conjunto com mais alguns recursos de segurança.
Inclusive, queria uma opinião sua sobre os sistemas de segurança que você usa e como os implementa.
Grande abraço.
A minha ideia era usar o id da placa mãe como serial para habilitar meus sistemas, pois ela seria a última peça a ser substituída em um pc, sendo que nesse caso o usuário estaria trocando o pc todo por outro, mas muitas das vezes é preciso habilitar a visualização das informações referentes à placa mãe no pc, pois elas costumam vir desabilitadas e nesse caso esse recurso não funcionaria, pois desenvolvi um sistema que, na primeira abertura, já checa o serial do processador e inclui ele em uma tabela e a partir daí toda vez que o bd for aberto, será feita a pesquisa nessa tabela. Se o serial lá gravado for o mesmo do processador do pc, ele abre normalmente o formulário inicial, se não for, significa que copiaram o sistema pra outro pc e aí abre uma janela restrita informando o fato e fechará em seguida. Vou continuar usando o id do processador mesmo em conjunto com mais alguns recursos de segurança.
Inclusive, queria uma opinião sua sobre os sistemas de segurança que você usa e como os implementa.
Grande abraço.
.................................................................................
Meu novo site: www.vcssistemas.com.br Clique aqui e veja um vídeo que explica como fazer pesquisas no forum. DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo: 1 - faça uma cópia do aplicativo 2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar 3 - use o Compactar/Reparar 4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem) Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário. Positive as mensagens que achar útil, no canto superior direito delas. |
JPaulo- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11026
Registrado : 04/11/2009
- Mensagem nº4
Re: Como pegar a ID ou algo assim da placa mãe?
Bom dia Criquio;
Existem mil maneiras de fazer Nestum.
Uma dela que eu costumo utilizar é;
1º Ocultar as tabelas
2º Colocar Password no VBA
3º Desabilitar a tecla Shift
4º Criar um ficheiro txt vazio, e renomeá-lo de (um nome esquisito para não ser fácil de detetar) exemplo: SDHDJABXP.DLL e
descarregue-o em \Windows\system32
Quando o banco abrir, abre um form oculto que cheka assim:
Private Sub Form_Open(Cancel As Integer)
If Len(Dir("C:\Windows\System32\SDHDJABXP.DLL")) Then
DoCmd.OpenForm "frmPrincipal", acNormal, "", "", , acNormal
Else
MsgBox "Copia inválida, o sistema vai fechar..."
Application.Quit
End If
End Sub
Ainda podemos criar uma tabela de nome:
TabelaSerial
Com um campo de nome:
IdentificacaoHD
Colocar esta função num módulo protegido:
Function NumeroSerieUnidadesHD()
Dim ObjetoWMI As Object
Dim UnidadHD As Object
Dim UnidadesHD As Object
Dim rst As Recordset
Dim db As Database
On Error Resume Next
DoCmd.RunSQL "DELETE TabelaSerial.* FROM TabelaSerial"
Set db = CurrentDb
Set rst = db.OpenRecordset("TabelaSerial")
Set ObjetoWMI = GetObject("WINMGMTS:")
Set UnidadesHD = ObjetoWMI.InstancesOf("Win32_PhysicalMedia")
For Each UnidadHD In UnidadesHD
With rst
.AddNew
!IdentificacaoHD = Trim(UnidadHD.SerialNumber)
.Update
End With
Next
rst.Close
End Function
Saber antecipadamente o numero de serie e chekar com o que foi introduzido na tabela.
Existem mil maneiras de fazer Nestum.
Uma dela que eu costumo utilizar é;
1º Ocultar as tabelas
2º Colocar Password no VBA
3º Desabilitar a tecla Shift
4º Criar um ficheiro txt vazio, e renomeá-lo de (um nome esquisito para não ser fácil de detetar) exemplo: SDHDJABXP.DLL e
descarregue-o em \Windows\system32
Quando o banco abrir, abre um form oculto que cheka assim:
Private Sub Form_Open(Cancel As Integer)
If Len(Dir("C:\Windows\System32\SDHDJABXP.DLL")) Then
DoCmd.OpenForm "frmPrincipal", acNormal, "", "", , acNormal
Else
MsgBox "Copia inválida, o sistema vai fechar..."
Application.Quit
End If
End Sub
Ainda podemos criar uma tabela de nome:
TabelaSerial
Com um campo de nome:
IdentificacaoHD
Colocar esta função num módulo protegido:
Function NumeroSerieUnidadesHD()
Dim ObjetoWMI As Object
Dim UnidadHD As Object
Dim UnidadesHD As Object
Dim rst As Recordset
Dim db As Database
On Error Resume Next
DoCmd.RunSQL "DELETE TabelaSerial.* FROM TabelaSerial"
Set db = CurrentDb
Set rst = db.OpenRecordset("TabelaSerial")
Set ObjetoWMI = GetObject("WINMGMTS:")
Set UnidadesHD = ObjetoWMI.InstancesOf("Win32_PhysicalMedia")
For Each UnidadHD In UnidadesHD
With rst
.AddNew
!IdentificacaoHD = Trim(UnidadHD.SerialNumber)
.Update
End With
Next
rst.Close
End Function
Saber antecipadamente o numero de serie e chekar com o que foi introduzido na tabela.
.................................................................................
Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.
Pay-Pal R$ Aqui
Pay-Pal € Aqui
Ou ainda: Aqui (Novo)
Sucesso e Bons Estudos
Success and Good Studies
Utilize o Sistema de Busca do Fórum...
102 Códigos VBA Gratuitos...
Instruções SQL como utilizar...
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
- Mensagem nº5
Re: Como pegar a ID ou algo assim da placa mãe?
Beleza JPaulo. Creio que podemos ainda criar um arquivo oculto e deixar na pasta System com algum texto dentro e programar o bd para checar se o arquivo está lá e se tem o texto exigido nesse arquivo, se possível, tudo criptografado.
Existem muitas possibilidades que, combinadas, tornam a vida dos metidos a espertos bem mais complicadas na hora de tentar burlar o sistema.
Claro que tem gente com conhecimentos suficientes para burlar a maioria dos métodos, mas creio que esses não precisariam burlar esses métodos, pois eles tem capacidade de criar seus próprios sistemas de maneira que os atendam melhor, não é verdade? rsrsrs.
Existem muitas possibilidades que, combinadas, tornam a vida dos metidos a espertos bem mais complicadas na hora de tentar burlar o sistema.
Claro que tem gente com conhecimentos suficientes para burlar a maioria dos métodos, mas creio que esses não precisariam burlar esses métodos, pois eles tem capacidade de criar seus próprios sistemas de maneira que os atendam melhor, não é verdade? rsrsrs.
.................................................................................
Meu novo site: www.vcssistemas.com.br Clique aqui e veja um vídeo que explica como fazer pesquisas no forum. DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo: 1 - faça uma cópia do aplicativo 2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar 3 - use o Compactar/Reparar 4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem) Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário. Positive as mensagens que achar útil, no canto superior direito delas. |
Assis- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 4772
Registrado : 06/11/2009
- Mensagem nº6
Ler HD
Aqui
http://www.speedyshare.com/files/21454580/Ler_HD.mdb
http://www.speedyshare.com/files/21454580/Ler_HD.mdb
Gilberto Rocha- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1027
Registrado : 21/01/2010
- Mensagem nº7
Re: Como pegar a ID ou algo assim da placa mãe?
Assis poste novamente seu exemplo, ou Criquio vc pode enviar o exemplo de como não abrir o form caso o serial seja de outra placa mãe?
Abraços
Abraços
JPaulo- Moderador
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11026
Registrado : 04/11/2009
- Mensagem nº8
Re: Como pegar a ID ou algo assim da placa mãe?
Public Function MostraIDPlacaMae() As String
Dim objs As Object
Dim obj As Object
Dim WMI As Object
Dim sAns As String
Set WMI = GetObject("WinMgmts:")
Set objs = WMI.InstancesOf("Win32_BaseBoard")
For Each obj In objs
sAns = sAns & obj.SerialNumber
If sAns < objs.Count Then sAns = sAns & ","
Next
MostraIDPlacaMae = sAns
End Function
Dim objs As Object
Dim obj As Object
Dim WMI As Object
Dim sAns As String
Set WMI = GetObject("WinMgmts:")
Set objs = WMI.InstancesOf("Win32_BaseBoard")
For Each obj In objs
sAns = sAns & obj.SerialNumber
If sAns < objs.Count Then sAns = sAns & ","
Next
MostraIDPlacaMae = sAns
End Function
.................................................................................
Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.
Pay-Pal R$ Aqui
Pay-Pal € Aqui
Ou ainda: Aqui (Novo)
Sucesso e Bons Estudos
Success and Good Studies
Utilize o Sistema de Busca do Fórum...
102 Códigos VBA Gratuitos...
Instruções SQL como utilizar...
Gilberto Rocha- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1027
Registrado : 21/01/2010
- Mensagem nº9
Re: Como pegar a ID ou algo assim da placa mãe?
Bom dia Paulão, valeus, vou testar aqui depois dou retorno!!
Gilberto Rocha- Developer
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1027
Registrado : 21/01/2010
- Mensagem nº10
Re: Como pegar a ID ou algo assim da placa mãe?
Paulo, bom dia, seguinte, o valor fica assim:
xxxxxxxxxxx
é normal?
xxxxxxxxxxx
é normal?
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
- Mensagem nº11
Re: Como pegar a ID ou algo assim da placa mãe?
Tambem recebi esses caracteres no lugar do serial da mainboard. Pelo que sei, a placa mãe vem configurada para não ter acesso ao serial, por questão de segurança. Creio que para ele ser visualizado, será necessário configurarmos isso. Ainda não entrei a fundo na questão, mas acho que vale a pena pesquisar a respeito.
.................................................................................
Meu novo site: www.vcssistemas.com.br Clique aqui e veja um vídeo que explica como fazer pesquisas no forum. DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo: 1 - faça uma cópia do aplicativo 2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar 3 - use o Compactar/Reparar 4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem) Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário. Positive as mensagens que achar útil, no canto superior direito delas. |
Assis- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 4772
Registrado : 06/11/2009
- Mensagem nº12
Re: Como pegar a ID ou algo assim da placa mãe?
Aqui vai Ler HD
http://www.speedyshare.com/files/22319600/Ler_HD.mdb
http://www.speedyshare.com/files/22319600/Ler_HD.mdb
erilioaraujo- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 54
Registrado : 18/01/2012
- Mensagem nº13
Função de verificação de arquivo não funciona
Bom dia!
Amigo Jpaulo implementei esta função mas não esta funcionando preciso que você me ajude a implementa-la.
Private Sub Form_Current()
If Len(Dir("C:\Windows\System32\protectecc.txt")) Then
DoCmd.OpenForm "frmLogin", acNormal, "", "", , acNormal
Else
MsgBox "Copia inválida, o sistema vai fechar..."
Application.Quit
End If
End Sub
apresenta a mensagem e fecha o o sistema mesmo com o arquivo protectecc.txt inserido no system32.
Obrigado!
Amigo Jpaulo implementei esta função mas não esta funcionando preciso que você me ajude a implementa-la.
Private Sub Form_Current()
If Len(Dir("C:\Windows\System32\protectecc.txt")) Then
DoCmd.OpenForm "frmLogin", acNormal, "", "", , acNormal
Else
MsgBox "Copia inválida, o sistema vai fechar..."
Application.Quit
End If
End Sub
apresenta a mensagem e fecha o o sistema mesmo com o arquivo protectecc.txt inserido no system32.
Obrigado!
jmfernandesneto- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 2
Registrado : 08/04/2010
- Mensagem nº14
Re: Como pegar a ID ou algo assim da placa mãe?
Olá, sei que o tópico é antigo, mas uso da seguinte forma hoje aqui na empresa. Todos os sistemas que desenvolvemos em Access, recebem em sua estrutura de códigos vba, uma rotina para, na primeira vez apenas, após a instalação da aplicação, checar o serial (seja do HD, da Placa Mãe, etc.) e divide ela em duas partes, fazendo um cálculo de conversão de Hexadecimal, para decimal em cada parte, depois multiplicando cada parte por algum número para gerar uma chave. Exemplo: Pega-se a primeira parte e multiplica por 4 e a segunda por 8. Pronto, o sistema exibe esses dois números para o usuário que tem que nos ligar para informarmos a contra-chave. Aqui, nós só dividimos cada parte e transformamos cada uma em Hexadecimal, e devolvemos ao usuário. Ele por usa vez insere no sistema e então o VBA faz a comparação se tudo está correto e libera o sistema. Se ele for copiado para outro equipamento, ele não funcionará até que se tenha a liberação/autorização.
Essa é uma maneira muito simples, mas podemos complicar as coisas, juntando os hexadecimais da Placa Mãe, HD, e outros se quiserem, e fazer uma vinculação online com algum banco de dados de dado MySql Online, para, assim, caso precise, pode trocar a licença de um computador para outro, ou apenas desenvolver um sistema de assinatura de software, ou apenas para liberação remota das aplicações sem necessidade de o cliente entrar em contato. As possibilidades são as nossas próprias imaginações.
Espero ter contribuído, mesmo sem postar nenhuma linha de código. Abraços a todos
Essa é uma maneira muito simples, mas podemos complicar as coisas, juntando os hexadecimais da Placa Mãe, HD, e outros se quiserem, e fazer uma vinculação online com algum banco de dados de dado MySql Online, para, assim, caso precise, pode trocar a licença de um computador para outro, ou apenas desenvolver um sistema de assinatura de software, ou apenas para liberação remota das aplicações sem necessidade de o cliente entrar em contato. As possibilidades são as nossas próprias imaginações.
Espero ter contribuído, mesmo sem postar nenhuma linha de código. Abraços a todos
Assis- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 4772
Registrado : 06/11/2009
- Mensagem nº15
Re: Como pegar a ID ou algo assim da placa mãe?
Boa tarde
Veja este exemplo
Veja este exemplo
.................................................................................
*** Só sei que nada sei ***
jmfernandesneto e mpgalvao gostam desta mensagem
jmfernandesneto- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 2
Registrado : 08/04/2010
- Mensagem nº16
Re: Como pegar a ID ou algo assim da placa mãe?
Obrigado pelo seu exemplo Assis, muito bom.