Ir ao conteúdo
  • Cadastre-se

Clemente Silva

Membros VIP
  • Total de itens

    2.467
  • Registro em

  • Última visita

  • Qualificações

    0%

Tudo que Clemente Silva postou

  1. Faltam informações: - Qual banco de dados? - Qual s.o.? - Config do computador? Se for Windows 98, instale a versão 2.5 do MDAC, pois tinha um bug do MSJet que disparava este erro, o qual foi corrigido nesta versão.
  2. "Handle" em Visual Basic, ou é a identificação da classe (propriedade "Hwnd") que te permite manipular uma janela de qualquer aplicação através da sua aplicação, ou então é o contexto de dispositivo (propriedade "HDc"), que te permite basicamente o mesmo que o "Hwnd", porém estende-se a tudo o mais que estiver dentro da classe (propriedades, métodos, etc...). Isso não serviria para o que você pretende fazer, pois não se trata de acesso direto a memória, mas sim de objetos que estão residentes na memória. A diferença é que você vai estar recuperando apenas os dados que os objetos deixam você pegar, e não todo aquele "raw data" que está na memória. Você tem que acessar o objeto da forma como o Windows permite fazer (APIs)... Quanto ao que pretende, você pode fazer um acesso direto a memória a partir do ambiente de sua aplicação e manipular dados da mesma; porém eu desconheço se existe um modo de "hackear" dados de outras aplicações que estejam em memória. Mas em qualquer das duas situações, provavelmente você vai conseguir mais GPFs do que resultados satisfatórios, isso porque é o Windows quem não vai te deixar acessar isso, pelo menos não tão facilmente, ainda mais com uma linguagem feita para RAD, como é o VB... Ainda, ao tentar acessar endereços de memória com VB, o mais provável é que consiga fazer a IDE travar ou simplesmente fechar a todo momento, já que a IDE do VB não tem suporte adequado pra esse tipo de trabalho. Se quiser ver um exemplo de DMA com VB, veja nesse link: http://edais.mvps.org/Tutorials/Memory/Memch1.html
  3. Não tem, o 'Jet SQL Engine' do Access é muito limitado, é só o basicão... quem quiser fazer algo assim tem que fazer 'gambiarra'. ... Italiano, então você quer mesmo é fazer essa coluna do total... ok, isso é bem simples. 1) Antes de inserir um novo registro, execute um SELECT LAST na coluna do acumulado, para pegar o valor acumulado atual Ex.: SELECT LAST(SumOFTotal_) AS Acumulado FROM Class; Suponto que o resultado aqui tenha sido 1.000,00 2) Depois execute sua instrução INSERT INTO para inserir um novo registro, e quando for inserir o valor do acumulado, some o acumulado atual com o valor do cliente atual. Ex.: INSERT INTO Class (Cliente, Total_, SumOfTotal_) VALUES ('Fulano', 350,00, 1.000,00+350,00); É por aí (eu acho), agora o resto é contigo
  4. "Run-time error 9" deve ser algum array ou array de controles que está referenciando um índice que não existe (subscript out of range). Solução: 1) Veja com o cliente em que momento exatamente isso acontece, qual botão ele clica, o que o sistema está executando no momento do erro, etc... 2) Isso vai te ajudar a identificar no código onde isso está acontecendo, então coloque um tratamento de erros em cada rotina dentro dos Forms e Módulos envolvidos no processo, pois o erro pode estar acontecendo em um Módulo e ssendo disparado num Form, e vice versa... Não acho que o erro tenha a ver com sistema operacional, isso pode ser muito bem uma coincidência. E outra, não tem testador de software melhor que o usuário leigo, eles acham (ou inventam) erros que nós jamais seríamos capazes de achar
  5. Pérai, vamos recapitular tudo de novo, que agora eu já me perdi Vamos colocar o problema novamente: - Você tem clientes: FULANO, BELTRANO, CICRANO, etc... - Você tem a soma de todas as vendas feitas para esses clientes, que é a "receita" VENDAS DE FULANO + VENDAS DE BELTRANO, + VENDAS DE CICRANO + ... = RECEITA - Você quer saber quais são os clientes cuja soma dos valores das vendas seja MAIOR OU IGUAL A 80% DA RECEITA. Então, vamos fazer assim: TABELA_VENDAS -------------------------- NOME_CLIENTE | VALOR_VENDA -------------------------- FULANO 3.500,00 BELTRANO 200,00 CICRANO 150,00 FULANO 2.000,00 -------------------------- RECEITA 5.850,00 Ok, então 80% de 5.850,00 seriam 4.680,00, logo numa consulta dessas, somete o FULANO iria aparecer, pois a soma de suas receitas é 5.500,00, sendo mais que os 80% to total, certo? Transformando isso num algoritmo, teríamos: SELECIONE CLIENTES ONDE SOMA INDIVIDUAL DE SUAS RECEITAS SEJA MAIOR OU IGUAL À RECEITA TOTAL Vamos aos fatos: 1) A ideia de uma coluna para colocar o acumulado seria interessante, não fosse o fato de ser extremamente trabalhoso manter esse total além de ser passível de erro e tornar o sistema lento. Motivo: teria que buscar sempre o ultimo registro, pegar o último total e somar com o valor do registro atual. Isso num sistema em rede com N máquinas jamais funcionaria. 2) Você não pode incluir a coluna NOME_CLIENTE na consulta se quiser fazer a soma da coluna VALOR_VENDA Motivo: o agrupamento feito por NOME_CLIENTE não deixará chegar a um total geral, mas sim apenas a totais por cliente. 3) Pelo fato 2 acima, não dá pra fazer tudo numa consulta só. ... Agora vamos a uma provável solução: 1) Você tem que fazer uma consulta para levantar o total de receita no momento: SELECT SUM(VALOR_VENDA) AS RECEITA FROM TABELA_VENDAS; 2) Dessa consulta, calcule os 80% (ou o percentual que quiser) 3) Então execute outra consulta, assim: SELECT NOME_CLIENTE FROM TABELA_VENDAS GROUP BY NOME_CLIENTE HAVING (SUM(VALOR_VENDA)>=4.680,00); Pronto. Agora já posso ir dormir.
  6. Qual a linguagem? Se for em VB, use o evento OLEDragDrop de algum comtrole, por exemplo, um ListBox. Coloque também a propriedade "OLEDropMode" do controle para "1 - Manual" Aí pode usar um código assim: Private Sub List1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single) Dim Arquivo For Each Arquivo In Data.Files If LCase$(Right$(Arquivo, 3)) = "mp3" Then List1.AddItem Arquivo Next End Sub
  7. Mas é aí que está o problema, a cláusula "GROUP BY" é justamente a que faz o agrupamento do qual eu estava falando. E o erro aconteceu na cláusula "HAVING" pois tanto esta como a "WHERE" não permitem cálculos, a não ser que sejam feitos em conjunto com funções agregadas, e ainda em determinadas condições. Eu acho que o ideal é você obter primeiro os 80% do total do faturamento numa primeira consulta, e depois usar esse valor como critério na consulta que pretende fazer. Aí nem precisa trazer o campo "Class.SumOFTotal_", coloque uma cláusula "WHERE" mais ou menos assim: WHERE (SUM(Class.TOTAL_) >= VALOR_OBTIDO_NA_PRIMEIRA_CONSULTA ); Em tempo, esse campo "Class.SumOFTotal_", para quê ele serve? Você mantem a soma atualizada de todo o faturamento nele?
  8. Bom, se o seu problema já está resolvido, então está ótimo, mas... daí a dizer que dá pra pegar a senha de usuário do Windows por uma simples biblioteca de objetos do Exchange, isso eu realmente gostaria de ver funcionando. Seria uma bomba histórica sobre a cabeça do tio Gates um buraco tão grande na segurança... Gente, tá certo que a MS não é lá essas coisas e que a segurança dos produtos deles é bem falha, mas será que eles iriam deixar um rombo assim tão fácil de descobrir? Isso já teria sido explorado há muuuuuuito tempo atrás, se existisse. Mas, veja o que você consegue descobrir, de repente... nada é impossível
  9. Eduardo, a instrução "TOP PERCENT" existe também no engine "Jet SQL" usado pelo Access, mas nesse caso ela retornaria um percentual do total de registros, ou seja: ela não vai usar como critério o cálculo do percentual de um determinado campo, como quer o colega Italiano. Quanto ao problema do colega, só não entendi uma coisa: é pra mostrar os clientes cuja receita representa 80% de todo o faturamento? Se é assim, aí complica, pois teria que fazer 2 consultas: primeiro fazer uma consulta para levantar o total do faturamento e calcular os 80% (fácil) e depois aí sim fazer outra filtrando os clientes cuja soma alcançam esse valor (fácil também). Não dá pra fazer tudo numa consulta só, pelo seguinte: se você for usar uma função agregada "SUM" no campo que tem os valores, e também adicionar o campo de clientes na consulta, o engine do SQL vai primeiro agrupar todos os clientes iguais, e depois retornar a soma por cliente. Aí poderia fazer algo assim: SELECT Cliente, Venda, Acumulado FROM Tabela GROUP BY Cliente, Venda, Acumulado HAVING (Acumulado>=(Sum(Acumulado)*0.8)); Então se você for calcular percentual desse resultado, vai estar calculando sobre o total do cliente, e não do faturamento total. É por isso que primeiro você tem que obter o total do faturamento primeiro, em uma consulta separada. Acho que é isso...
  10. A grosso modo, ela gera uma imagem. É como se fosse um scanner, porém ele "escaneia" impressões digitais. Não é nada comparado a um leitor de código de barras, o qual apenas lê uma imagem padronizada e pré-formatada, e a "traduz" em números. Biometria é bem mais complexo que isto, então se você abrir o bloco de notas e usar o leitor de impressão digital, nada vai acontecer. É preciso que um aplicativo escrito especialmente para esse tipo de aparelho faça a leitura e a gravação, e posteriormente o processamento dos dados para comparação. Para Windows, existem componentes ActiveX com os quais você pode desenvolver aplicações para usar biometria, eu já postei isso em alguns tópicos, use a pesquisa que você encontra. Para Linux, se não me engano também já tem um componente, nesse caso procure no SourceForge.
  11. Impossível não é, porém isso é hacking... e sendo assim, vai ser bem difícil encontrar algo. Deve existir API para isso, mas ou não está documentada, ou como eu já disse, vai ser bem difícil achar. Se fosse tão fácil, seria "um tiro de misericórdia" na já agonizante pseudo-segurança do Windows. Acho que o correto seria você criar uma janela de configurações onde o usuário pudesse ele mesmo colocar a senha, para que o seu programa possa usá-la para o propósito que você descreveu.
  12. Solução: na rotina "btponto_onclick", basta trocar o ponto por vírgula. Motivo: configurações regionais para o Brasil (Ponto é separador de milhar, Vírgula é casa decimal)
  13. Relaxe, provavelmente isto não tem nada a ver com seu HD. Veja aqui como proceder: http://support.microsoft.com/kb/330174/pt-br Ou ainda, pode ser que seja por causa de um bug do SP2 (mais um) http://support.microsoft.com/kb/885464/pt-br
  14. Não manjo muito de Access e não sei como está fazendo as rotinas de gravação, mas tem que dar um jeito de quando for gravar SAÍDA na tabela de movimentos, que grave a quantidade NEGATIVA. Por exemplo, supondo que você vá lançar: ENTRADA de 10 botas SAÍDA de 5 botas A quantidade "10" você grava como entrada, positivo. Simplesmente "10". Já a quantidade "5" você deve gravar na tabela como NEGATIVO: "-5" Depois é só fazer a soma por produto, e os numeros negativos automaticamente vão se subtrair dos positivos. É dessa soma que você obtém o saldo. Eu por exemplo executo uma instrução SQL mandando somar o campo de quantidade (que vai ter valores positivos e negativos) passando o ID do produto como parâmetro. Note que não importa como o usuário digite na tela, nem como você vai apresentar em relatório, etc... o que importa é como vai gravar. Para mostrar na tela, você pode simplesmente suprimir o sinal negativo depois, se quiser.
  15. Vou tentar ajudar, é um assunto um tanto complexo, mas como a insônia me atacou hoje, vamos lá... Vamos primeiro categorizar suas tabelas entre Cadastros e Movimentos: CADASTROS: 1) Produtos 2) Grupos 3) Subgrupos 4) Fornecedores MOVIMENTOS: 1) Entrada 2) Saida Aqui nos movimentos percebe-se que já começa errado: você não deveria ter uma tabela para entradas e outra para saídas, pois isso vai tornar muito difícil quando você precisar obter saldos, relatórios, etc... Ao invés disso, você deveria ter APENAS uma tabela para ambos os tipos de movimento (ENTRADA e SAÍDA), com um campo para diferenciar o tipo de lançamento. Este campo marcaria se o registro é ENTRADA ou se é SAÍDA, e serve inclusive como um filtro para consultas. ... Agora vamos aos relacionamentos. Nos CADASTROS, toda tabela deve ter um ID, um campo que defina unicamente cada registro. Pode ser um campo "Auto Numeração", e deve ser chave primária. É por esses campos que você vai fazer todos os relacionamentos entre as tabelas. Por exemplo: FORNECEDORES - Campo ID_FORNECEDOR ------------------------- SUBGRUPOS - Campo ID_SUBGRUPO (Chave Primária) - Campo ID_GRUPO Cada "ID_SUBGRUPO" deve pertencer a um "ID_GRUPO", de modo que em uma consulta: - a cada "ID_SUBGRUPO" selecionado, virá o "ID_GRUPO" ao qual pertence. - a cada "ID_GRUPO" selecionado, virão todos os "ID_SUBGRUPO" relacionados Note que isso resolveria o problema que você descreveu quanto a selecionar um grupo para puxar os subgrupos... ------------------------- GRUPOS - Campo ID_GRUPO (Chave Primária) ------------------------- PRODUTOS - Campo ID_PRODUTO (Chave Primária) - Campo ID_SUBGRUPO - Campo ID_FORNECEDOR Cada "ID_PRODUTO" deve pertencer a um "ID_SUBGRUPO" bem como a um "ID_FORNECEDOR", de modo que, em uma consulta: - a cada "ID_PRODUTO" selecionado, virá o "ID_SUBGRUPO" ao qual pertence, bem como o "ID_GRUPO", e ainda o "ID_FORNECEDOR". - a cada "ID_SUBGRUPO" selecionado, virão todos os "ID_PRODUTO" relacionados. - a cada "ID_GRUPO" selecionado, virão todos os "ID_SUBGRUPO" relacionados, e consequentemente todos os "ID_PRODUTO" relacionados a cada um dos "ID_SUBGRUPO". - a cada "ID_FORNECEDOR" selecionado, virão todos os "ID_PRODUTO" relacionados. ------------------------- Você deve relacionar assim: GRUPOS.ID_GRUPO -> um para muitos com -> SUBGRUPOS.ID_GRUPO SUBGRUPOS.ID_SUBGRUPO -> um para muitos com -> PRODUTOS.ID_SUBGRUPO FORNECEDOR.ID_FORNECEDOR -> um para muitos com -> PRODUTOS.ID_FORNECEDOR ------------------------- Finalmente a tabela de movimentos, deve conter o campo ID_PRODUTO apenas, nada mais que isso. Tudo o mais jáa está contido nas outras tabelas, portanto basta puxar o que precisar paara efeito de consultas. O relacionamento seria: PRODUTOS.ID_PRODUTO -> um para muitos com -> MOVIMENTOS.ID_PRODUTO Bom, acho que é mais ou menos por aí...
  16. Muito bom mesmo o site, tem tudo ali. Há muito tempo atrás eu estava desenvolvendo um software para chat, tipo MSN Messenger, pra integrar junto com meus sistemas (seria como um suporte online integrado). Outra coisa que eu estava fazendo era o envio de e-mail, sem depender do programa de e-mail instalado na máquina. Foi coisa que um cliente pediu mas tive que enrolar pois não achei nada que ajudasse... até consegui fazer, mas tudo que era servidor de e-mail recusava e outros não deixavam nem conectar, pois interpretavam como spam... Parei de mexer com Winsock por falta de tempo e principalmente de recursos... depois vou dar uma olhada maais a fundo nesse site pra ver se eu me animo outra vez
  17. Solução simples: 1) Vejam o forum: GAIA Online 2) Perguntem aos admins como eles fazem, qual o serviço que eles usam, etc... 3) Façam o mesmo. Este forum tem quase 6 milhões de usuários registrados. Num dos dias mais movimentado por lá, tiveram mais de 80 mil usuários logados (em um único dia). Se aquele forum consegue ser rápido com esses numeros, acho que basta copiar a receita... Na dúvida, visitem o ranking do Big Boards, tem uma lista enorme de forums atolados de tráfego. Ou então: limitem o acesso ao conteúdo apenas a quem se efetuar o login. Uma vez já sugeri isso aqui, mas fui virtualmente linchado. É de se imaginar que a uma parte desses 1000 e tantos que ficam apenas "visitando" pode muito bem ser gente desocupada tentando sobrecarregar propositalmente. E é bem fácil criar um programa que faça coisas desse tipo. Ou então, limitem a visualização de quem não se logar, a apenas 3 páginas. Depois disso exijam o login.
  18. Clemente Silva

    vb6

    Eu preciso é ter muita paciência com uns novatos que me aparecem aqui de vez em quando... que além de não saberem nada, esbanjam arrogância... E ainda por cima, o cara me ressucita um post que já estava resolvido desde Outubro... pura insegurança pessoal misturada com falta do que fazer... Eu frequento este Forum desde 2003 e já ajudei muita gente aqui (assim como já fui ajudado muitas vezes) e não posso admitir esse tipo de coisa de alguém que não tem o mínimo de humildade e pelo visto não passa de um wannabe, ou na melhor das hipóteses, um script kid entediado com a própria vida. Bom, mas mesmo assim, vamos lá... estou aqui para ajudar, então deixa eu arregaçar as mangas e explicar como se faz: Primeiramente, caro "Netobomelindo"... se meu código está "sujo" e "não é a forma mais fácil que existe" como você tão gentilmente sugeriu, é porque: 1) Eu declaro variáveis 2) Eu uso código estruturado 3) Eu coloco comentários explicando passo a passo o que cada linha de código está executando 4) Tudo isso eu faço para que aquele que tem dúvidas, entenda o que estou tentando explicar Além do que, todo bom profissional da área (algo que certamente você não é) sabe que "pouco código" não significa "código eficiente". Nem tudo o que é fácil fazer proporciona um bom resultado. É por causa de "pseudo-profissionais" que pensam assim igual você, é que o mercado de trabalho está contaminado com gente desqualificada. E pra finalizar, quando você finalmente entender o que são estruturas de repetição, para que servem e quais as diferenças entre elas, aí você volta aqui e tenta me dar umas aulas, certo? Por exemplo, você sabe (tenho certeza que não) a diferença entre "Do... Loop" e "For... Next", e em qual situação é adequado usar ou um ou outro? Agora por favor, não me venha dizer que esse montinho de fezes caninas que você escreveu aí é mais eficiente do que o codigo que eu escrevi para ajudar o colega que estava com dúvida. Da próxima vez, seja mais humilde, garoto. E veja se aprende também a usar as ferramentas que o Forum oferece. Você poderia ter colocado isso que você chama de "código" usando os tags "code", ao invés de colocar em vermelho. Boa sorte (você vai precisar...)
  19. Pode fechar o tópico, agora que já vi que o problema já está sendo relatado em outro: http://forum.clubedohardware.com.br/index...id=2339525& Grato pela atenção.
  20. Só pra reforçar o coro, é exatamente o que anda acontecendo comigo. http://forum.clubedohardware.com.br/index...howtopic=478494 Sei que não vai adiantar nada reclamar, até porque tá cheio de gente duvidando que isso está acontecendo, mas pelo menos, reclamei
  21. Não sou muito de postar aqui (muito menos venho aqui nessa área), a não ser que seja estritamente necessário, como é o caso agora. Acabei de postar duas respostas em dois tópicos diferentes. Eram textos grandes e detalhados, me deram o maior trabalho pra formular e escrever. Depois que postei, aconteceu uma coisa muuuuuuito legal, que me deixou super feliz: as respostas que eu postei sumiram! Notei na barra de endereços que ao invés de "forum.clubedoharware" apareceu "forum2.clubedoharware", o que me leva a supor que devem estar fazendo alguma manutenção ou troca de servidor, sendo isso é provável que minhas respostas foram obviamente perdidas. Se possível, peço que se forem fazer alguma manutenção, que avisem todos com antecedência (como todos os outros foruns fazem) ou então que tirem o forum do ar, para evitar transtornos. Acredito que seja tarefa extremamente simples postar um anuncio visível em todos as áreas. Grato pela atenção e desculpem o incômodo.
  22. Você tem que indicar o caminho de rede onde está o arquivo do Access que contém os dados do cadastro de clientes. Supondo que esteja em uma máquina cujo nome na rede seja "Servidor", basta indicar aí na sua rotina para conectar o banco de dados: "\\Servidor\NomeDaPastaOndeEstaOArquivo\ArquivoDoAccess.mdb"
  23. Fácil. You got it Sem estar registrado no Windows? Sem chance... A única coisa que você pode fazer é uma janela de configurações, onde o usuário do seu programa vai indicar o caminho onde está o programa que você quer abrir. Você pode usar "SaveSetting" para salvar esse caminho, e depois usar "GetSetting" para recuperar esse caminho e então usar o Shell. Vou te passar um form já pronto com um exemplo. Faça exatamente o seguinte: 1) abra o bloco de notas 2) copie e cole na janela do bloco de notas o código a seguir VERSION 5.00 Begin VB.Form frmConfig BorderStyle = 3 'Fixed Dialog Caption = "Configurações" ClientHeight = 1335 ClientLeft = 45 ClientTop = 330 ClientWidth = 4470 ControlBox = 0 'False BeginProperty Font Name = "Tahoma" Size = 8.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty MaxButton = 0 'False MinButton = 0 'False ScaleHeight = 1335 ScaleWidth = 4470 StartUpPosition = 2 'CenterScreen Begin VB.CommandButton cmdSalvar Caption = "&Salvar e Sair" Height = 390 Left = 2625 TabIndex = 2 Top = 825 Width = 1665 End Begin VB.TextBox txtCaminho Height = 315 Left = 150 TabIndex = 1 Top = 375 Width = 4140 End Begin VB.Label Label1 AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "Informe o caminho do Adobe Reader em seu computador:" Height = 195 Left = 150 TabIndex = 0 Top = 150 Width = 4155 End End Attribute VB_Name = "frmConfig" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Private Sub cmdSalvar_Click() SaveSetting "MeuPrograma", "Caminho", "AdobeReader", TriMicrosoft(txtCaminho) Unload Me End Sub Private Sub Form_Load() txtCaminho = GetSetting("MeuPrograma", "Caminho", "AdobeReader", "") End Sub 3) agora, salve como "frmTeste.frm" 4) a seguir, abra no VB e experimente para ver o resultado. Sempre que quiser abrir o prograama com o Shell, basta usar "GetSetting" com aqueles parâmetros para recuperar o caminho do arquivo. Eventualmente você pode seguir a dica do colega Meokor para verificar se existe o arquivo que você está tentando executar com o Shell. Porém ele esqueceu de explicar como faz para usar a função "FileExists" da biblioteca FileSystemObject: tem que criar o objeto FSO antes, senão a função "FileExists" não roda... Aqui vai um exemplo prontinho de como usar. Coloque isso num módulo: Public Function ArquivoExiste(Arquivo As String) As Boolean Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") ArquivoExiste = FSO.FileExists(Arquivo) Set FSO = Nothing End Function Então, depois de recuperar o caminho do arquivo com "GetSetting" e antes de usar o "Shell" para executar, verifique com a função acima se o arquivo existe. Exemplo: Dim CaminhoParaUsarComShell As String, X as Double CaminhoParaUsarComShell = GetSetting("MeuPrograma", "Caminho", "AdobeReader", "") If ArquivoExiste(CaminhoParaUsarComShell) Then X = Shell(CaminhoParaUsarComShell, vbNormalFocus) Else MsgBox "O arquivo '" & CaminhoParaUsarComShell & "' não existe.", vbExclamation, "Erro" End If É só isso...
  24. A licença é individual, ou seja: supondo que sejam duas máquinas, cada uma delas com um leitor e uma cópia do seu programa, serão duas instalações do componente, logo são duas licenças. As licenças você compra no próprio site, basta fazer o cadastro, comprar e depois baixar os arquivos das licenças da sua conta, e copiar esses arquivos para as máquinas onde o GrFinger está instalado. Link para cadastro: clique aqui Link para compras: clique aqui O SDK funciona com quase todos os leitores, principalmente o Fingerprint Reader da Microsoft. É esse inclusive que eu uso nas empresas onde já implementei o sistema. Não compensa usar outra marca, além do que o da MS tem 3 anos de garantia. Bom, é isso. Boa sorte
  25. 1°) Memória 2°) Processador Pouco provável que essas travadas sejam HD. Quando dá problema no HD os sintomas são outros. Retire os pentes de memória e passe uma borracha escolar branca, levemente sobre os contatos metálicos, apenas para tirar a oxidação. Não passe borracha verde, pois é abrasiva e vai "lixar" os contatos, o que so vai piorar o problema. Se não resolver, tente o processador: tire o dissipador, limpe toda a pasta térmica dele e do die do processador, então passe uma fina camada no die do processador e monte tudo outra vez. E "fina camada", eu disse. Não vai passar pasta térmica igual se passa margarina no pão. É exagerando na pasta térmica que os problemas com superaquecimento começam. Pasta térmica não é pra refrigerar, serve apenas para corrigir imperfeições na superfície do dissipador e aumentar a superfície de contato com o die. Ah, e não vai esquecer de religar o cooler...

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Aprenda_a_Ler_Resistores_e_Capacitores-capa-3d-newsletter.jpg

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!