Ir ao conteúdo
  • Cadastre-se

Luan Marques Arika

Membro Pleno
  • Posts

    42
  • Cadastrado em

  • Última visita

  1. Obrigado a todos que me ajudaram e me desculpem pela demora. O problema era de fábrica, já fiz a troca
  2. Olá. Estou desenvolvendo um software de conexão remota, mas estou com um problema. Será que alguém pode me ajudar? O meu código estava funcionando até eu tentar implementar o código para o teclado. Exemplo: Eu fiz um código onde o cliente conectar no servidor, servidor "transmite" a interface em tempo real, eu configurei o clique do mouse esquerdo e direito, menos o scroll e a opção de clicar e arrastar, mas esse não é o problema até agora. O meu problema é que não está mais sendo transmitido a interface, quando eu faço a conexão abre uma janela em branco e só fica desse jeito, isso aconteceu depois que tentei implementar o teclado Servidor Cliente: import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.Socket; import java.util.Timer; import java.util.TimerTask; public class ClienteSocketComInterface { public static void main(String[] args) throws IOException { String enderecoServidor = "192.168.8.176"; int porta = 12345; Socket socket = new Socket(enderecoServidor, porta); JFrame frame = new JFrame("Cliente - Compartilhamento de Tela, Mouse e Teclado"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Dimension resolucao = new Dimension(1366, 768); JLabel screenLabel = new JLabel(); screenLabel.setPreferredSize(resolucao); screenLabel.setHorizontalAlignment(SwingConstants.CENTER); screenLabel.setVerticalAlignment(SwingConstants.CENTER); screenLabel.setMaximumSize(resolucao); JScrollPane scrollPane = new JScrollPane(screenLabel); scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); scrollPane.setViewportView(screenLabel); scrollPane.setMaximumSize(resolucao); frame.getContentPane().setLayout(new BorderLayout()); frame.getContentPane().add(scrollPane, BorderLayout.CENTER); frame.setSize(resolucao); frame.setResizable(false); frame.setVisible(true); frame.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { Point posicao = e.getPoint(); enviarComandoMouseTeclado(socket, posicao, SwingUtilities.isLeftMouseButton(e), SwingUtilities.isRightMouseButton(e), '\0'); SwingUtilities.convertPoint(scrollPane, posicao, screenLabel); } }); frame.addKeyListener(new KeyAdapter() { @Override public void keyTyped(KeyEvent e) { enviarComandoMouseTeclado(socket, new Point(0, 0), false, false, e.getKeyChar()); } }); frame.setFocusable(true); Thread networkThread = new Thread(() -> { Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { try { ObjectInputStream ois = new ObjectInputStream(socket.getInputStream()); Image image = (Image) ois.readObject(); if (image != null) { SwingUtilities.invokeLater(() -> { screenLabel.setIcon(new ImageIcon(image)); screenLabel.repaint(); scrollPane.revalidate(); }); } } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } } }, 0, 2000); }); networkThread.start(); frame.pack(); } private static void enviarComandoMouseTeclado(Socket socket, Point point, boolean leftClick, boolean rightClick, char keyChar) { try { ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream()); oos.writeObject(new ComandoMouseTeclado(point, leftClick, rightClick, keyChar)); oos.flush(); } catch (IOException e) { e.printStackTrace(); } } } Servidor: package com.luan.conectar; import java.awt.*; import java.awt.event.InputEvent; import java.awt.image.BufferedImage; import java.io.*; import java.net.ServerSocket; import java.net.Socket; import javax.imageio.ImageIO; public class ServidorSocketComInterface { private static Robot robot; private static double fatorEscalaX = 1.0; private static double fatorEscalaY = 1.0; public static void main(String[] args) { int porta = 12345; try { ServerSocket servidor = new ServerSocket(porta); System.out.println("Aguardando conexão na porta: " + porta + "..."); Socket cliente = servidor.accept(); System.out.println("Conexão estabelecida com: " + cliente.getInetAddress().getHostAddress()); createRobot(); while (true) { receberComandoMouseTeclado(cliente); enviarCapturaTela(cliente); } } catch (IOException | AWTException e) { e.printStackTrace(); } } private static void createRobot() throws AWTException { robot = new Robot(); } private static void receberComandoMouseTeclado(Socket cliente) { try { ObjectInputStream ois = new ObjectInputStream(cliente.getInputStream()); Object object = ois.readObject(); if (object instanceof ComandoMouseTeclado) { ComandoMouseTeclado comando = (ComandoMouseTeclado) object; int mouseXCliente = comando.getPoint().x; int mouseYCliente = comando.getPoint().y; boolean leftClick = comando.isLeftClick(); boolean rightClick = comando.isRightClick(); char keyTyped = comando.getKeyChar(); int mouseXServidor = mapearCoordenadaX(mouseXCliente, fatorEscalaX); int mouseYServidor = mapearCoordenadaY(mouseYCliente, fatorEscalaY); robot.mouseMove(mouseXServidor, mouseYServidor); if (leftClick) { robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); } if (rightClick) { robot.mousePress(InputEvent.BUTTON3_DOWN_MASK); robot.mouseRelease(InputEvent.BUTTON3_DOWN_MASK); } } } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } } private static int mapearCoordenadaX(int coordenadaClienteX, double fatorEscalaX) { return (int) (coordenadaClienteX * fatorEscalaX); } private static int mapearCoordenadaY(int coordenadaClienteY, double fatorEscalaY) { return (int) (coordenadaClienteY * fatorEscalaY); } private static void enviarCapturaTela(Socket cliente) { try { Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()); BufferedImage capture = robot.createScreenCapture(screenRect); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(capture, "png", baos); baos.flush(); byte[] imageBytes = baos.toByteArray(); baos.close(); DataOutputStream dos = new DataOutputStream(cliente.getOutputStream()); dos.writeInt(imageBytes.length); dos.write(imageBytes, 0, imageBytes.length); dos.flush(); } catch (IOException e) { e.printStackTrace(); } } }
  3. Bom dia pessoal, desculpem a demora para postar o resultado, consegui fazer mas acabei usando outro software. Vou tentar fazer uma explicação completa, para a próxima pessoa que estiver com esse problema. Imagine o seguinte; eu tenho um HDD mecânico que tem o Windows XP SP2, alguns programas importantes e esse HDD tem três partições que um complementa o outro. Irei chamar esse HDD mecânico de disco 2 para facilitar. Peguei outro computador com o Windows 10 pro instalado e instalei o HDDClone, coloquei o disco 2 nesse computador como secundário. Depois de fazer isso eu inicializei o HDDClone, fui na opção Restore que fica em Backup. Na parte de Image eu escolhi o disco 2 para fazer o backup dele. Na parte do Target eu escolhi a pasta onde vai ser salvo e cliquei em Start e esperei. Depois de terminar tudo isso eu desliguei o computador e retirei o disco 2 e coloquei um outro HDD que vai receber o esse backup. Vou chamar esse outro HDD de disco 3, para não confundir com o hdd do computador que tem o Windows 10 pro instalado e o disco 2. Coloquei o disco 3 como secundário no meu computador. Iniciei o computador, procurei o disco 3 para formatar, para isso cliquei com o botão direito e escolhi a opção Formatar... e depois eu executei o HDDClone. Fui na opção Secure do Backup. Em Source selecionei o disco 3 que vai receber o backup. Agora eu fui em Image e selecionei o Backup que foi feito e cliquei em Start. Quando finalizar é só testar para ver se funcionou, no meu caso finalizou. Agora no próximo vou postar uma versão mais curta. Agora é a versão simplificada. Você vai precisar de: Do software HDDClone Um computador com Windows 10 Pro ou Basic HDD que você queira fazer o backup HDD que vai receber esse backup Passos; Instale o HDD que vai fazer backup como secundário Instale o HDDClone Inicialize o HDDClone Escolha opção Restore que fica em Backup Na opção Image Selecione a HDD que você quer fazer o backup Na opção Target Selecione a pasta que você deseja salvar. Desligue o computador Retire o HDD que foi feito o backup Coloque o HDD que vai receber o backup Ligue o computador Agora é preciso formatar esse HDD secundário Procure esse HDD Botão direito Clique na opção Formatar... Pode formatar Inicialize o HDDClone Vá em Secure que fica em Backup também Em Source selecione o HDD que vai receber o backup Em Image selecione o Backup que foi feito Clique em Start Agora é só testar e ser feliz Bem, o meu deu certo, já não sei o seu
  4. @Kaze_jp Acabei de fazer esses procedimentos e continua a mesma coisa, estou achando que pode ser outra coisa. Os sites que eu pesquisei falavam que era compatível com a memória DDR3. Eu tenho dois computadores com DDR3, mas nenhum deles funcionou, fica do mesmo jeito. Vou tentar arrumar um computador com DDR4 para fazer um teste.
  5. @Kaze_jp Obrigado pela resposta. Irei fazer essa sugestão e darei a resposta se deu certo ou não.
  6. Olá a todos. No momento estou com um problema. Eu comprei uma placa de vídeo para um computador para a empresa que trabalho, ficou guardada por uns 2 meses, estou desde ontem com esse problema: Vou falar desde o início.... Eu coloquei a placa de vídeo no computador e formatei, nisso deu vídeo normal, fiz as configurações do Windows 10 normal, quando terminou de ligar e apareceu área de trabalho, estava tudo esticado, percebi que a opção estava travado no 800x600, não tinha como mudar para alguma outra resolução, isso eu sei que são os drivers fiz atualização de todos os drivers e quando eu fui atualizar o driver que foi feito o download no site oficial, quando terminou de atualizar a tela já ficou toda preta. Forcei o desligamento, tentei ligar novamente e não sai da tela preta. Estou achando que essa placa de vídeo está com problemas, descobri um pequeno padrão. Seu eu deixo o computador uns 10 minutos desligado sem corrente de energia no caso o cabo de alimentação fora da tomada, quando eu ligo aparece a logo do Windows10 o nome do usuário, quando é para entrar na área de trabalho a tela fica toda preta. Se eu desligo e ligo novamente não aparece nada, só fica com a tela toda preta. Volto no que eu falei dos 10 minutos desligado..... Placa de vídeo: AXRX 550 2GBD5-HLE No caso é Radeon RX550 powercolor placa-mãe: ASRock H81M-GV4 memória RAM: HyperX 8GB DDR4 Processador: i7 4ª geração SSD: 500GB Fonte: Mymax 400W Fiz o teste com as seguintes fontes: Gigabyte 450w e Sharkoon 500w Monitor: 14 polegadas Fiz teste com 18 polegadas e 27 polegadas. Alguém pode me ajudar?
  7. @Ricardov @Katagiri Irei testar as duas opções na segunda feira. Estou resolvendo um outro problema. Muito obrigado
  8. Bom dia, me desculpem se estou na parte errada do fórum. Estou com o seguinte problema. Eu tenho 1 computador que tem o Windows XP instalado nele, nesse HD tem 3 partições, essas 3 partições "trabalham" em conjunto para o software da máquina. Eu gostaria de criar uma ISO desse HD, com as 3 partições e colocar em um pen drive/HD externo para fazer a formatação. Quando for formatado as 3 partições vem. Deu para entender? kkkkk Agradeço.
  9. Bom a tarde a todos. Preciso de ajuda, eu quero colocar um M.2 no meu computador, mas encontrei M.2 nv1 e M.2 nv2. Qual é a diferença entre os dois? E gostaria de saber se é compatível. placa-mãe: ASUS Prime H610M-E D4 Processador: i5 11ª geração Fonte: Gigabyte 600w Memória: 2x8GB M.2: estou a procura. Eu usava um SSD de 1TB Obrigado
  10. @Mariano Ajala Filho @bngomes Muito obrigado, vocês dois me ajudaram bastante. Agradeço pela atenção.
  11. @bngomes Placa-mãe: ASRock H81M-VG4 Placa de vídeo: RX 550 Radeon Power Color AMD, 2 GB GDDR5. A minha placa-mãe tem uma entrada VGA e a placa de vídeo que irei compara que é essa que citei a cima, ela tem uma entrada de HDMI, nisso eu pensei se dá para usar a porta HDMI da placa de vídeo para uma televisão e a entrada VGA da placa-mãe para outra televisão. Você acha que isso vai funcionar?
  12. Bom dia, me desculpem se eu estou no local errado do fórum. Estou com a seguinte situação. eu tenho um computador e preciso redirecionar a imagem para duas TVs, para fazer isso eu vou comprar uma placa-mãe com uma porta HDMI. Informações sobre o computador placa-mãe: ASRock H81M-VG4 processador: i7 4ª geração DDR3: 8GB placa-mãe: RX 550 Radeon Power Color AMD, 2 GB GDDR5 Alguém sabe se isso da certo e como que faz isso?
  13. @Pedroou Opa muito obrigado pela resposta. @Pedroou Uma última pergunta. Você diz a Radeon Rx 550 4GB?
  14. @Pedroou Qualquer umas dessas 3 placas de vídeo vai funcionar com a minha placa-mãe então? Irei colocar uma memória RAM de 8gb

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!