Ir ao conteúdo

Posts recomendados

Postado

Boa tarde

estou desenvolvendo uma pagina que depende da configuração do pc do visitante, teria alguma forma do meu site identificar e mostrar o modelo da placa de video da pessoa que esta visitando?

  • Curtir 1
  • Moderador
Postado

@Felipesachser Como o amigo ali acima mencionou por questões de segurança não há como acessar dados locais de equipamentos com html, php e etc.

 

Porém, dá para ser feito em Java

https://stackoverflow.com/questions/18379091/how-to-retrieve-graphic-card-information-on-java/18381032

 

Mas vai ter que desenvolver um aplicativo que tenha que rodar localmente na máquina do usuário e pela web transmitir os dados pegos de um txt.  

Enfim é por aí.

 

Isso é usado pela Nvidia também, para identificar o melhor driver para sua placa de vídeo.

  • Curtir 1
  • Obrigado 1
Postado

@cpusam boa noite, infelizmente sou leigo e nao estou conseguindo colocar o java no php, consegue me ajudar

muito obrigado

adicionado 14 minutos depois

@brund321 boa noite, sou leigo ainda, nao estou conseguindo colocar isso no php, consegue me ajudar com algum exemplo

muito obrigado

Postado

@Felipesachser Oi, não é Java e sim Javascript (sim, o nome é parecido, mas acredite são bem diferentes), JS é utilizada para programação client-side em navegadores web(também é possível utilizar ao lado do servidor mas isso não vem ao caso). Para ser sincero eu nunca codei em PHP e também não tenho a menor ideia do que você deseja fazer com essa informação, então fica difícil eu te ajudar :( . O que você quer fazer com isso?

 

Abraço.

  • Curtir 1
  • Moderador
Postado
5 horas atrás, brund321 disse:

não é Java e sim Javascript (sim, o nome é parecido, mas acredite são bem diferentes)

Talvez ele tenha se confundido porque o primeiro exemplo que eu postei é baseado em java.  Poderia adaptar para usar com servlets. 

 

Mas, a dica do colega  e a sua de javascript usando webgl é interessante. Aprendi algo novo hj. :thumbsup:

 

 

@Felipesachser Os colegas deram as dicas, usando o código dos links acima fica fácil pegar a placa de vídeo.

 

Por exemplo:

$(document).ready(function(){


var canvas = document.createElement('canvas');
var gl;
var debugInfo;
var vendor;
var renderer;

try {
  gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
} catch (e) {
}

if (gl) {
  debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
  vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
  renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
}

//isso é só um filtro baseado na minha placa video Nvidia GTX 660 Ti
var placa = renderer.substring(7, 32);

 $('.btn').on("click", function(){
      //Função ajax para enviar dados ao php sem atualizar
      $.ajax({
         url: "recebeDados.php",
         dataType: "HTML",
         Method: "POST",
         data: {card: renderer}
      }).done(function(retorno){
          $("#drivers").html(retorno);  
      }).fail(function(retorno){
           $("#drivers").html(retorno);
      });
      
 }); 

});

Então no php você recebe o valor enviado...

 

$card = $_POST["card"];

A variável no javascript responsável por conter o modelo de placa de vídeo é renderer

Na função $.ajax(),  o atributo  "data" é responsável por enviar o dado ao php. onde  dentro de  chaves, o primeiro é o parâmetro e o segundo é o valor deste parâmetro.

No meu caso, a variável renderer  contém o valor:

 

ANGLE (NVIDIA GeForce GTX 660 Ti Direct3D11 vs_5_0 ps_5_0)

 

Veja que há muita informação desnecessária ali. Por isso precisa filtrar os dados para extrair somente o que você quer. No meu caso eu quero só "NVIDIA GeForce GTX 660 Ti"

 

Então para conseguir apenas este dado da string inteira, precisamos usar uma função de substring. 

 

var placa = renderer.substring(7, 32);

Veja que eu comecei em 7 e terminei em 32.  Porque é a contagem de caracteres.

Começando em zero, de ANGLE até o "espaço" antes do N de Nvidia possui 6 caracteres.

O 32 é limite o " i " de Ti.

 

No caso de uma placa de vídeo AMD, provavelmente pode estar deste jeito:

 

ATI Technologies Inc. AMD Radeon R9 270x OpenGL Engine

 

Contando os caracteres a partir do zero, queremos só "AMD RADEON R9  270x"

var placa = renderer.substring(22, 39);

 

E por ai vai.

Você pode também usar um search na string e se basear apenas no fabricante AMD ou NVIDIA, dessa forma, podes popular um campo select contendo todos os modelos de placas de cada fabricante. 

 

Veja como acontece no site da nvidia no setor de drivers. eles possuem um método de scan de drivers, mas também possibilita que o usuário escolha o seu modelo na lista. 

 

 

Aqui um exemplo, parecido como de cima, a diferença é que não usa ajax porque é só um exemplo didático.

https://jsfiddle.net/dife/5uybhd4p/27/

 

  • Obrigado 1
  • Amei 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!