Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Gallu

#121
Programación C/C++ / Re: Api de linux
27 Agosto 2010, 13:25 PM
¿Este código se ejecuta en segundo plano ? , me refiero a si registra las teclas aun cuando la aplicación no tenga el foco .
#122
Programación C/C++ / Re: Api de linux
27 Agosto 2010, 12:53 PM
Algo así , encontre algo muchisimo más completo , con mucha documentación y código fuente

http://lxr.linux.no/#linux+v2.6.35/

mi idea es crear un keylogger para linux , he intentado usar el lkl , pero la verdad no he podido , asi que pienso hacerlo desde 0.  Si alguien tiene idea de por donde debo empezar le agradeceria que me la comentara.

Muchas gracias
#123
Programación C/C++ / Api de linux
27 Agosto 2010, 11:50 AM
Hola ,  estoy buscando información sobre el api de linux , en principio me gustaría saber si es algo parecido al api de windows , alguien conoce algún enlace , libro ?
#124
Como dice LittleHorse , lo suyo sería usar fgets+sscanf, pero si de todas maneras usas scanf , para limpiar el buffer  después de cada llamada haces


while(getchar() != '\n');


saludos.
#125
Consejos...

- No uses goto , por que no llamas directamente a las funciones?

- No uses llamadas a system

- No uses conio.h

- Limpia el buffer de entrada despues de las llamadas a scanf .

- Es buena práctica comentar los procedimientos , parámetros que recibe, finalidad y valor de retorno.

#126
El formato del tipo de dato int para las funciones scanf y printf es "%d" y no "%i" .

Te aconsejaria que indentaras bien el código y usaras las etiquetas geshi para postearlo.

Intentan no usar conio.


#include<stdio.h>


int  main(){
int x[50][50],y,z;
for(y=0;y<5;y++) {
for(z=0;z<2;z++) {
scanf("%d",&x[y][z]);
}
}

for(y=0;y<5;y++) {
for(z=0;z<2;z++) {
printf("%d",x[y][z]);
}
}
getchar();
}
#127
Te diria que el gtalk si que esta en linux , el messenger NO esta disponible para linux , y las alternativas a dicho programa (aMSN , emesene, pindig ) están bien , pero por ejemplo te cuento que no puedo hacer videollamadas con aMSN ,  la aplicación me dice que microsoft ha cambiado sus protocolos y que no pueden ofrecer el servicio , pero bueno , tienes el skype que si que tiene versión linux y va muy bien (si tienes una web cam compatible claro).

En general pasarme a linux fue lo mejor , no he tenido problemas con virus ni mierdas de ese tipo desde hace mucho.
;D
#128
Programación C/C++ / Re: Empezando con C
18 Agosto 2010, 14:56 PM
simplemente has de cambiar el formato , estás usando el '%d' para escribir x , si pones  '%g' te lo va a mostrar bien .
#129
Java / Re: obtener fecha en j2me
17 Agosto 2010, 18:08 PM
Cita de: athlit en 17 Agosto 2010, 17:33 PM

Podrias explicar a un novato como yo el porque de:

public MyCalendario(){
}


y


public String toString()


¿Que hacen ambos? El primero declaras un metodo vacio? Y el segundo declaras un metodo que devolverá un String y le haces el casting a String? (¿?)

Te agradecería me lo aclararas para lograr entenderlo.

Muchas gracias de antemano.

Un saludo.

Primero , el método vacio es un constructor de la clase MyCalendario, si te fijas ,  cree dos constructores , uno que recibe tres parámetros y uno que no recibe ninguno , es más que nada para poder crear objetos asi
Código (java) [Seleccionar]

MyCalendario calendario = new MyCalendario();

de esta manera creo un calendario apuntando a la fecha de hoy.
Segundo , el método toString se sobreescribe para que en llamadas como
Código (java) [Seleccionar]

MyCalendario calendario = new MyCalendario();
System.out.println(calendario);

se muestre sólamente la información que me interesa mostrar de mi objeto, bien pude crear un método en MyCalendario llamado , getFecha(), y que me devuelva la fecha que envuelve dicho objeto en el formato que me de la gana , pero me parecio más rápido sobreescribir toString, para que me entiendas lo sigueinte es equivalente
Código (java) [Seleccionar]

MyCalendario calendario = new MyCalendario();
System.out.println(calendario);
    es equivalente a
System.out.println(calendario.toString());

si compilas y ejecutas el código te darás cuenta que la salida es
dd/mm/aaaa , o sea , lo que devuelve toString(). Espero haber sido claro .
#130
Tu respuesta es implementar un Gestor de JPanels, dicho gestor tendrá referencias a TODAS las JPanels agregadas al JTabbedPane , con ello , simplemente llamarás a las funciones del gestor para modificar el comportamiento de cualquier JPanel disponible en tu aplicación
Código (java) [Seleccionar]

JFrame
 |
 |-> JTabbedPane                                                              
                 |                 |-> JPanel(JPanel1)--|-------|
                 |-> JPanel ---                                 |              
                 |                 |-> JPanel(JPanelx)----------|
                 |                                              |----->GestorTabs
                 |                 |-> JPanel(JPanely)----------|  
                 |-> JPanel ---                                 |
                                   |-> JPanel(JPanel2)--|-------|



Bueno , te dejo un ejemplo que escribi, basándome en tu código , espero que te sirva, lo que hace es que toma el texto del textbox del primer JPanel y lo muestra en el label del segundo.
Código (java) [Seleccionar]

import javax.swing.JLabel;
import java.awt.Dimension;
import javax.swing.JPanel;

public class Ventana2 extends JPanel  implements Gestionable  {

    private JLabel jLabel1;
    private Gestor gestor;
    public Ventana2(Gestor gestor) {
        this.gestor = gestor;
        initComponents();
    }

    private void initComponents() {
        jLabel1 = new JLabel();
        jLabel1.setPreferredSize(new Dimension(200, 25));
        jLabel1.setText("Hola a todos");
        this.add(jLabel1);

    }

    public void setText(String text) {
        jLabel1.setText(text);
    }

    public Gestor getGestor(){
        return this.gestor;
    }
}

Código (java) [Seleccionar]

import javax.swing.JTextField;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JPanel;


public class Ventana1  extends JPanel implements Gestionable {


   private JTextField jTextField1;
   private Gestor gestor;
   JButton boton = new JButton("Presiona aqui");

    public Ventana1(Gestor gestor) {
        this.gestor = gestor;
        iniciarInterfaz();       
    }

    private void iniciarInterfaz() {
        GestorTabs gesorTabs = new GestorTabs(this);
        jTextField1 = new javax.swing.JTextField();
        jTextField1.setText("escribe algo y oprime enter");
        jTextField1.setPreferredSize(new Dimension(200, 25));
        jTextField1.addActionListener(gesorTabs);
        boton.addActionListener(gesorTabs);
        boton.setName("boton enviar");
        this.add(jTextField1);
        this.add(boton);
    }
    public JTextField getCajaTexto(){
        return this.jTextField1;
    }

    public Gestor getGestor(){
        return this.gestor;
    }

}


Código (java) [Seleccionar]

public interface Gestionable {

    public Gestor getGestor();
}



Código (java) [Seleccionar]

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

class GestorTabs implements ActionListener{
Gestionable ventana;

public GestorTabs(Gestionable panel){
this.ventana = panel;
}
        public void actionPerformed(ActionEvent e){
            if(ventana instanceof Ventana1){
                Ventana1 ven1 = (Ventana1)ventana;
                this.ejecutarVentana1(ven1, ven1.getCajaTexto().getText());
            }

        }
        /**
         *
         * @param ven
         * @param textoMostrar
         */
        public void ejecutarVentana1(Ventana1 ven, String textoMostrar){
            Gestor ges = this.ventana.getGestor();
            Ventana2 vent2 = (Ventana2)ges.getPanel("ventana 2");
            vent2.setText(textoMostrar);
        }

}

Código (java) [Seleccionar]

import java.awt.Component;
import java.awt.Container;
import javax.swing.JPanel;


public class Gestor {
        Container container ;

public Gestor(Container conta){
this.container = conta;
}


        /**
         * Devuelve el panel especificado por nombre
         * @param name
         * @return
         */
        public JPanel getPanel(String name){
            Component []componentes = this.container.getComponents();
            JPanel panel;
            for(Component conp : this.container.getComponents()){
                panel = (JPanel)conp;
                if(name.equals(panel.getName())){
                    return panel;
                }
            }
            return null;
        }

}

Código (java) [Seleccionar]


import javax.swing.JFrame;
import javax.swing.JTabbedPane;


public class Principal extends JFrame {

   
    public static void main(String[] args) {
       Principal prin = new Principal();
       JTabbedPane panel = new JTabbedPane();
       Gestor gestor = new Gestor(panel);
       Ventana1 vent = new Ventana1(gestor);
       Ventana2 vent2 = new Ventana2(gestor);
       vent.setName("ventana 1");
       vent2.setName("ventana 2");
       panel.addTab("Ventana 1" ,vent);
       panel.addTab("Ventana 2",vent2);     
       panel.setBounds(200, 5000, 6000 ,7000);
       panel.setVisible(true);
       prin.getContentPane().add(panel);
       prin.setVisible(true);
       prin.setBounds(500, 200, 500 ,500);
       prin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

}