elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Temas
Páginas: 1 2 3 [4] 5 6
31  Sistemas Operativos / GNU/Linux / [Solucionado][ubuntu 12.04] ¿Como realizo la sustitucion de drivers? en: 23 Agosto 2012, 11:04 am
¡Buenas!

Acabo de instalar Ubuntu (la ultima version, creo que es 12.04), y no me reconocia el controlador de red. A traves de otra conexion wifi he instalado el controlador privativo "Broadcom STA wireless driver".

No me he quedado a gusto, asi que he investigado si en el repositorio de ubuntu existia algun controlador equivalente y he llegado a esta pagina:

http://nfolamp.wordpress.com/2011/10/15/ubuntu-11-10-getting-wireless-bcm4311-working/

(lspci me dice que la version que tengo es la 4312, aunque intuyo que la solucion es la misma)

¿Lo que dicen ahi es correcto?

Si asi es, que hago primero, ¿eliminar el controlador privativo e instalar despues el nuevo? ¿tendria problemas haciendolo al reves?

Por cierto, ¿como puedo saber como se llama dentro del sistema el controlador que he instalado? Lo digo por eliminarlo con remove, para no estar cambiando de consola a ventanas...

¡Saludos!

Solucionado: Al final he hecho lo que indicaba el sentido comun. Primero eliminar el driver privativo y luego instalar el del repositorio.

Por cierto, me ha quedado la duda de como saber el nombre del controlador para eliminarlo con remove

¡Saludos!
32  Sistemas Operativos / Windows / No puedo abrir ficheros que se encuentran en c:\windows\system32 en: 3 Julio 2012, 06:01 am
¡Buenas!

Tengo una herramienta casera para consola que he guardado en el directorio C:\Windows\system32 para poder ejecutarla sin tener que introducir la ruta completa en la que se encuentra. El programa va acompañado de un archivo de texto, que tambien he incluido en c:\windows\system32, desde el que lee datos para mostrarlos en la consola. Lo malo es que tanto cuando intento acceder al fichero de texto como al fichero de la propia herramienta no me los puede abrir. No he probado con el resto de elementos del directorio, pero supongo que sucedera lo mismo. He intentado ejecutar el programa en modo administrador, pero no hay forma. Me extraña, porque por ejemplo type si que me muestra el contenido de los ficheros...

¿Que tengo que hacer para poder abrir los ficheros que se encuentran en c:\windows\system32 con programas propios?

¡Saludos!

PD: Utilizo Windows 7 home premium
PD2: He mentido como un bellaco, resulta que si me abre otros ficheros que se encuentran en el directorio. Parece que los unicos que no puedo abrir son los dos ficheros que he metido a mano.
33  Sistemas Operativos / Windows / Duda sobre interaccion windows + driver + modelo laptop en: 6 Junio 2012, 02:12 am
¡Buenas!

Hace unos dias adquiri un juego para windows (windows 7 Home Premium). Al instalarlo e ir a lanzarlo, me saltaba un aviso sobre los drivers de la tarjeta grafica (Mobile Intel (R) 4 Series Express Chipset Family), diciendo que no podia renderizar.

Investigando en la pagina de Intel encontre una version reciente de los drivers, pero me daba el aviso de que podia haber conflictos con el modelo de laptop que tengo. Entonces acudi a la pagina del fabricante y busque los drivers, que resultaron ser algo mas recientes que los que tenia, pero bastante mas antiguos que la untima version ofrecida por Intel.

He instalado los drivers del fabricante y el juego sigue sin funcionar. Acabo de comprobar desde el administrador de dispositivos que los drivers no se pueden "actualizar mas".

¿Que es lo que recomendais? ¿Instalar la ultima version que ofrece Intel? ¿Quedarme con lo que tengo? Si actualizo con la version ofrecida desde intel y no fuese compatible con el modelo del ordenador ¿Que problemas podria tener?

¡Saludos!

PD: Si he metido la pata y esto va en hardware, avisad.

¡Saludos de nuevo!
34  Programación / Programación C/C++ / ¿ftell da problemas con algunos archivos? en: 17 Abril 2012, 14:17 pm
¡Buenas!

Tratando de leer el tamaño en bytes de unos ficheros iso, me he econtrado con un par de casos en los que obtengo como tamaño incorrecto del fichero 0xFFFFFFFF bytes (lo que es lo mismo (unsigned long) (-1)). Viendo la referencia de cplusplus.com, me dice que cuando hay algun error por parte de ftell, este es el valor devuelto, pero una llamada a perror me dice que no hay ningun error. Los archivos en si son dos imagenes iso de windows 7 (versiones de 32 y 64 bits), descargadas de MSDNAA (una especie de acuerdo entre microsoft e institutos para regalar software). Con el resto de ficheros no tengo ningun problema.

Aqui el primer codigo:
Código
  1. unsigned long flen(FILE *f)
  2. {
  3.    unsigned long len, pos;
  4.  
  5.    pos = ftell(f);
  6.  
  7.    fseek(f,0,SEEK_END);
  8.  
  9.    len = ftell(f);
  10.  
  11.    fseek(f,pos,SEEK_SET);
  12.  
  13.    return len;
  14. }
  15.  

Y aqui otro, para linea de comandos,  que cree por si tenia algun error que no habia visto, pero que me da los mismos resultados:
Código
  1. #include <stdio.h>
  2.  
  3. int main(int argc, char *argv[])
  4. {
  5.    if(argc < 2)
  6.    {
  7.        printf("%s fic1 [fic2 ... ficN]",argv[0]);
  8.        return 1;
  9.    }
  10.    else
  11.    {
  12.        FILE *f;
  13.  
  14.        while(--argc)
  15.        {
  16.            if(!(f = fopen(argv[argc],"rb")))
  17.                fprintf(stderr,"No se puede abrir %s\n",argv[argc]);
  18.            else
  19.            {
  20.                fseek(f,0,SEEK_END);
  21.  
  22.                if(ftell(f) == -1UL)
  23.                    perror(argv[argc]);
  24.                else
  25.                    fprintf(stdout,"%10lu %s\n",ftell(f),argv[argc]);
  26.  
  27.                fclose(f);
  28.            }
  29.        }
  30.    }
  31.  
  32.    return 0;
  33. }
  34.  

Si veis la razon de que me devuelva una longitud falsa, o si sabeis que pasa con este tipo de isos y ftell, avisad, por favor.

¡Saludos!
35  Programación / Programación General / ¿Alguien con experiencia en juegos puede echarme un cable? en: 9 Abril 2012, 00:13 am
¡Buenas a todos!

Estoy intentando crear una aventura conversacional (luego la pasare a grafica, pero esto es lo basico), y estoy atascado con distintos planteamientos. Quiero crear una estructura lo mas general posible para poder hacer aventuras posteriormente cambiando tan solo los datos de los objetos y escenarios que intervienen en ella.

De momento, la estructura que relaciona los escenarios la tengo clara. Voy a utilizar un ADT grafo que ya tengo construido, asi cada vertice sera un escenario y las aristas los caminos que llevan de un escenario a otro. La informacion la cargaria desde un fichero, asi distintos ficheros tendran distintos escenarios para distintas aventuras.

Los objetos tendran una ID, un nombre y una descripcion, tambien los cargare desde un fichero, asi que tambien es bastante general. Solo tendre que crear ficheros de datos para las distintas aventuras.

Cada escenario tendra una descripcion y una lista de objetos con los que se pueda interactuar, y el inventario del protagonista tambien sera una lista de objetos, por lo que tampoco pierdo generalidad.

El problema lo tengo a la hora de decidir como llevar a cabo las acciones (sera una cantidad pequeña de comandos, del estilo del Day Of Tentacle) sobre los distintos objetos.

Se me ocurren distintas opciones pero no se por cual decidirme ni que sera mejor o peor, aqui es donde me hace falta vuestra experiencia o sentido comun.

Tengo claro (o creo que lo tengo, si veis que voy dando palos de ciego avisad) que la estructura de la funcion que lleve a cabo la accion sobre el/los objetos tiene que ser la siguiente:

nombre_funcion(referencia a tipo_escenario, referencia a personaje, referencia a objeto1, referencia a objeto2, lista_de_objetos).

Asi podre modificar la lista de objetos del escenario y del protagonista, y decidir si el resultado es otro objeto distinto a los dos dados de entre todos los objetos que haya en el juego y realizar las modificaciones en consecuencia.

Por ejemplo:

Usar sombrero con perchero. Busco sombrero, busco perchero, compruebo que puedo realizar la accion, elimino el sombrero del inventario, elimino perchero del escenario y sustituyo perchero por perchero con sombrero que se encontrara en la lista de los objetos.

Las opciones que barajo son las siguientes:

- Crear una funcion, que dependiendo del comando introducido, discrimine con if-elses los objetos sobre los que se lleva a cabo, por ejemplo.
Código:
ejecutar_accion(accion, escenario, prota, objeto1, objeto2, lista_objetos)
{
    if(accion == UNA_ACCION)
    {
        if(objeto1 == UN_OBJETO)
        {
            if(objeto2 == OTRO_OBJETO)
            {
                una_accion(escenario, prota, objeto1, objeto2, lista_objetos);
            }
            else if(objeto2 == MAS_OBJETOS)
            {
                ...
            }
            ...
        }
    }
}
una_accion(escenario, prota, objeto1, objeto2, lista_objetos)
{
    Lo mismo de arriba, con if elses compruebo con que par de objetos estoy tratando y actuo en consecuencia.
}

Con este tipo de codigo me puedo volver loco discriminando todos los posibles casos y para cada aventura tendria que modificar todas las relaciones en el codigo fuente...

- La segunda opcion que estoy pensando es crear ficheros dependientes de cada accion con matrices NxN, donde N es la cantidad de objetos, con la siguiente estructura:

Código:
     ID1  ID2 ... IDN

ID1  R11  R12 ... R1N

ID2  R21  R22 ... R2N

.     .    .  .    .
.     .    .   .   .
.     .    .    .  .

IDN  RN1  RN2 ... RNN

Rij es el nombre de una funcion que realiza acciones sobre el protagonista y el escenario correspondiente dependiendo de la accion.

Rij, en el ejecutable, sera unsigned long funcion(escenario *, protagonista *, objeto1*, objeto2 *, listaobjetos*)

Rij con i < j sera una funcion binaria (relacionara dos objetos)
Rij con i >= j sera una funcion unaria (la accion recaera sobre un solo objeto, segundo = NULL)
Rij = NULL si los objetos no se relacionan por la accion indicada.

La forma de relacionar el nombre de la funcion con la funcion que cree en el codigo, seria utilizando una lista de pares (nombre funcion, puntero a funcion), asi al leer el nombre de la funcion en el fichero podria traducirlo a la direccion de dicha funcion para asignarlo en la matriz del ejecutable.

Lo malo de este metodo es, que aunque gano en generalidad, si por ejemplo tengo 30 objetos, tendria que rellenar 900 datos de una matriz por cada accion.

¿Cual es la mejor forma para trabajar este problema?

Si conoceis o se os ocurre otro metodo me gustaria saberlo. Si quereis que os aclare algo mas sobre lo que tengo pensado, preguntad. Solo quiero tener las ideas claras antes de empezar a teclear codigo.

Muchas gracias por vuestra atencion.

¡Saludos!
36  Sistemas Operativos / GNU/Linux / ¿Alguien mas tiene problemas con la consola de Ubuntu y VirtualBox? en: 9 Diciembre 2011, 15:09 pm
¡Buenas!

Acabo de hacer (hace un par de dias) un upgrade de Ubuntu a la ultima version y cuando pulso ctrl+alt+Fx para acceder a alguna consola, esta me aparece en azul.

He probado actualizando la distribucion (update + dist-upgrade), actualizando VirtualBox y Googleando (a lo mejor no como deberia, porque ya estoy un poco harto), pero no consigo que se deje de ver todo azul y con letras enormes y distorsionadas (como si fuese un gran zoom de una pequeña parte de la consola).

¿Alguien mas tiene o ha tenido este problema? ¿Sabeis como solucionarlo?

¡Saludos!
37  Programación / Programación C/C++ / Ejemplos de memoria dinamica en cifrado de Beaufort en: 21 Octubre 2011, 04:10 am
¡Buenas!

He visto que ultimamente hay bastantes preguntas sobre memoria dinamica. Aqui os dejo un pequeño programa que la utiliza varias veces y con distintos tipos de puntero. Espero que podais usarlo como ejemplo para resover vuestros propios problemas.

Para los interesados en criptografia, tengo que decir que es una variante del cifrado de Beaufort en el que se pueden utilizar varias claves para añadir seguridad al cifrado:

Código
  1. /*
  2.  
  3.     Utilidad que cifra ficheros basandose en el cifrado de Beaufort con claves multiples
  4.  
  5.     Al ultilzar claves multiples, la longitud de la clave resultante sera el minimo comun
  6. multiplo de todas las claves utilizadas.
  7.  
  8.     cifra +|- "claves" fichero_de_entrada fichero_de_salida
  9.  
  10.     +: cifrar
  11.     -: descifrar
  12.  
  13. */
  14.  
  15. #include <stdlib.h>
  16. #include <stdio.h>
  17. #include <string.h>
  18.  
  19. /* funcion que guarda en tokens las palabras contenidas en s y devuelve el numero de parabras extraidas */
  20. int tokenize(char *s, char ***tokens);
  21.  
  22. /* carga en (*s) el contenido del fichero al que apunta f */
  23. unsigned long cargar_fichero(FILE *f, unsigned char** s);
  24.  
  25. /*
  26.  
  27. calcula el coeficiente nsimo segun el siguiene criterio:
  28.  
  29. ultima_clave[posicion % longitud ultima_clave] -
  30. penultima_clave[posicion % longitud penuultima_clave] +
  31. antepenultima_clave[posicion % longitud antepenultima_clave] +
  32. ... + o - (segun el numero de claves) primera_clave[posicion % longitud primera_clave]
  33. */
  34. int coeficiente(unsigned long posicion, char **claves, int nclaves);
  35.  
  36. /*
  37.     cifrado[i] = coeficiente[i] + o - (depende del numero de claves) texto_plano[i] mod 256;
  38.  
  39.     tomando la clase de quivalencia positiva entre 0 y 255
  40. */
  41. int cifrar(unsigned char *s, unsigned long longitud, char **claves, int nclaves);
  42.  
  43.  
  44. /*
  45.     texto_plando[i] = 1 o (-1) (depende del numero de claves) * (cifrado[i] - coeficiente[i]) mod 256;
  46.  
  47.     tomando la clase de quivalencia positiva entre 0 y 255
  48. */
  49. int descifrar(unsigned char *s, unsigned long longitud, char **claves, int nclaves);
  50.  
  51. /*
  52.  
  53.     las siguientes funciones calculan el minimo comun multiplo y maximo comun divisor de dos enteros
  54.  
  55. */
  56. unsigned long mcm(unsigned long a, unsigned long b);
  57. unsigned long mcd(unsigned long a, unsigned long b);
  58.  
  59. int main(int argc, char *argv[])
  60. {
  61.    FILE *f; /* fichero de entrada y de salida */
  62.    char **claves = NULL; /* variable para guardar las claves introducidas */
  63.    unsigned char *contenido = NULL; /* puntero para almacenar el contenido del fichero */
  64.    unsigned long longitud, nclaves; /* longitud del fichero y numero de claves introducidas*/
  65.  
  66.    if(argc != 5)
  67.    {
  68.        printf("\ncomando: cifra +|- \"claves\" fic_entrada fic_salida\n\n+: cifrar\n-: descifrar\n");
  69.    }
  70.    else
  71.    {
  72.        if(!(f = fopen(argv[3] , "rb")))
  73.            printf("No se puede abrir el fichero: %s\n", argv[3]);
  74.        else
  75.        {
  76.            if((longitud = cargar_fichero(f,&contenido)) == (unsigned long)(-1))
  77.            {
  78.                printf("Ha ocurrido un error al cargar el contenido del fichero de entrada.\n");
  79.                fclose(f);
  80.            }
  81.            else
  82.            {
  83.                if((nclaves = tokenize(argv[2] , &claves)) != (unsigned long)(-1))
  84.                {
  85.                    if(!strcmp(argv[1],"+"))
  86.                    {
  87.                        if(!cifrar(contenido,longitud,claves,nclaves))
  88.                            printf("\nHa ocurrido un error en el proceso de cifrado.\n");
  89.                        else
  90.                        {
  91.                            if(!(f = fopen(argv[4] , "wb")))
  92.                                printf("No se puede abrir el fichero: %s\n", argv[4]);
  93.                            else
  94.                            {
  95.                                fwrite(contenido,longitud,1,f);
  96.                                fclose(f);
  97.                            }
  98.                        }
  99.  
  100.                        free(contenido);
  101.  
  102.                        for(longitud = 0 ; longitud < nclaves ; longitud++)
  103.                            free(claves[longitud]);
  104.                        free(claves);
  105.                    }
  106.                    else if(!strcmp(argv[1],"-"))
  107.                    {
  108.                        if(!descifrar(contenido,longitud,claves,nclaves))
  109.                            printf("\nHa ocurrido un error en el proceso de descifrado.\n");
  110.                        else
  111.                        {
  112.                            if(!(f = fopen(argv[4] , "wb")))
  113.                                printf("No se puede abrir el fichero: %s\n", argv[4]);
  114.                            else
  115.                            {
  116.                                fwrite(contenido,longitud,1,f);
  117.                                fclose(f);
  118.                            }
  119.                        }
  120.  
  121.                        free(contenido);
  122.  
  123.                        for(longitud = 0 ; longitud < nclaves ; longitud++)
  124.                            free(claves[longitud]);
  125.                        free(claves);
  126.                    }
  127.                    else
  128.                        printf("\ncomando: cifra +|- \"claves\" fic_entrada fic_salida\n\n+: cifrar\n-: descifrar\n");
  129.                }
  130.                else
  131.                {
  132.                    printf("\nHa ocurrido un error al cargar las claves.\n");
  133.                    free(contenido);
  134.                }
  135.            }
  136.        }
  137.    }
  138.  
  139.    return 0;
  140. }
  141.  
  142. unsigned long cargar_fichero(FILE *f,unsigned char **ptr)
  143. {
  144.    unsigned long pos, len;
  145.  
  146.    /* calculamos la longitud del fichero */
  147.    pos = ftell(f);
  148.    fseek(f,0,SEEK_END);
  149.    len = ftell(f);
  150.    fseek(f,pos,SEEK_SET);
  151.  
  152.    /* asignamos tantos bytes como tenga el fichero */
  153.    if(((*ptr) = (unsigned char *) malloc(len * sizeof(unsigned char))) != NULL)
  154.        /* y cargamos el contenido */
  155.        fread((*ptr),len,1,f);
  156.    else
  157.        len = (unsigned long)(-1);
  158.  
  159.    return len;
  160. }
  161.  
  162. int tokenize(char *s, char ***tokens)
  163. {
  164.    char **aux; /* variable auxiliar para ir añadiendo una cadena mas a la lista */
  165.    char *palabra; /* palabra extraida de la cadena s*/
  166.    int npalabras = 0,i; /* numero de palabras y contador para bucles */
  167.  
  168.    /* intentamos leer una palabra */
  169.    palabra = strtok(s," ");
  170.  
  171.    (*tokens) = NULL;
  172.  
  173.    while(palabra)
  174.    {
  175.        /* si se ha encontrado una palabra incrementamos el recuento de palabras*/
  176.        npalabras++;
  177.  
  178.        /* hacemos que aux contenga tantos punteros a char como paralbras haya */
  179.        if(!(aux = (char **) realloc((*tokens) , npalabras * sizeof(char*))))
  180.        {
  181.            for(i = 0 ; i < npalabras - 1 ; i++)
  182.                free((*tokens)[i]);
  183.  
  184.            free(*tokens);
  185.            (*tokens) = NULL;
  186.  
  187.            return -1;
  188.        }
  189.        else
  190.        {
  191.            /* asignamos la ultima palabra leida */
  192.            aux[npalabras - 1] = (char *) malloc(sizeof(char) * (strlen(palabra) + 1));
  193.            strcpy(aux[npalabras - 1] , palabra);
  194.  
  195.            /* y hacemos que la variable de entrada/salida apunte al nuevo conjunto de palabras */
  196.            (*tokens) = aux;
  197.        }
  198.  
  199.        /* intentamos leer la siguiente palabra */
  200.        palabra = strtok(NULL , " ");
  201.    }
  202.  
  203.    return npalabras;
  204. }
  205.  
  206. int coeficiente(unsigned long posicion, char **claves, int nclaves)
  207. {
  208.    int c=0;
  209.    unsigned long j;
  210.  
  211.    for(j = 0 ; j < nclaves ; j++)
  212.    {
  213.        if((nclaves - 1 - j) % 2)
  214.            c -= claves[j][posicion % strlen(claves[j])];
  215.        else
  216.            c += claves[j][posicion % strlen(claves[j])];
  217.    }
  218.  
  219.    return c;
  220. }
  221.  
  222. int cifrar(unsigned char *s, unsigned long longitud, char **claves, int nclaves)
  223. {
  224.    unsigned long i;
  225.    char *clave;
  226.    unsigned long long_clave=1;
  227.  
  228.    /* la longitud de la clave final sera el mcm de las longitudes de las claves */
  229.    for(i = 0 ; i < nclaves ; i++)
  230.        long_clave = mcm(long_clave , strlen(claves[i]));
  231.  
  232.    if(!(clave = (char*) malloc(long_clave * sizeof(char))))
  233.        return 0;
  234.  
  235.    for(i = 0 ; i < long_clave ; i++)
  236.        clave[i] = coeficiente(i,claves,nclaves);
  237.  
  238.    for(i = 0 ; i < longitud ; i++)
  239.        s[i] = (nclaves * 256 + (clave[i % long_clave] + (1 - 2 *(nclaves % 2)) * s[i])) % 256;
  240.  
  241.    free(clave);
  242.  
  243.    return 1;
  244. }
  245.  
  246. int descifrar(unsigned char *s, unsigned long longitud, char **claves, int nclaves)
  247. {
  248.    unsigned long i;
  249.    char *clave;
  250.    unsigned long long_clave=1;
  251.  
  252.    for(i = 0 ; i < nclaves ; i++)
  253.        long_clave = mcm(long_clave , strlen(claves[i]));
  254.  
  255.    if(!(clave = (char*) malloc(long_clave * sizeof(char))))
  256.        return 0;
  257.  
  258.    for(i = 0 ; i < long_clave ; i++)
  259.        clave[i] = coeficiente(i,claves,nclaves);
  260.  
  261.    for(i = 0 ; i < longitud ; i++)
  262.        s[i] = (nclaves * 256 + ((1 - 2 * (nclaves % 2)) * (s[i] - clave[i % long_clave]))) % 256;
  263.  
  264.    free(clave);
  265.  
  266.    return 1;
  267. }
  268.  
  269. unsigned long mcm(unsigned long a, unsigned long b)
  270. {
  271.    return (a * b) / mcd(a,b);
  272. }
  273.  
  274. unsigned long mcd(unsigned long a, unsigned long b)
  275. {
  276.    if(a < b)
  277.    {
  278.        a ^= b;
  279.        b ^= a;
  280.        a ^= b;
  281.    }
  282.  
  283.    if(!b)
  284.        return a;
  285.  
  286.    return mcd(b , a % b);
  287. }
  288.  

Se debe utilizar desde la linea de comandos, por lo que es recomendable dejar el ejecutable en c:\windows\system32 para sistemas windows, \bin en sistemas UNIX y en general, en el directorio en el que se encuentren por defecto los comandos del sistema.

Para cifrar un fichero llamado "prueba" con la clave "clave de prueba" y como fichero de salida "cifrado", se debera hacer:
Código:
cifra + "clave de prueba" prueba cifrado
suponiendo que nombre del ejecutable sea cifra.

Para obtener el texto plano se utilizara la misma sintaxis utilizando el parametro - en lugar de +.

¡Saludos y espero que os sirva de referencia!

PD: Si veis algun error avisad, que uno es humano y por lo tanto propenso a cometer errores. Lo mismo si teneis alguna sugerencia.

¡Saludos!
38  Sistemas Operativos / Windows / [solucionao]como desactivo un proceso del inicio de windows de forma definitiva? en: 28 Marzo 2011, 11:25 am
¡Buenas!

Hace unos dias reinstale un Windows XP SP2 Profesional en un Toshiba Satellite Pro M40X (laptop). Como no, me encontre con que faltaban un monton de drivers y poco a poco los he ido consiguiendo. La persona propietaria del ordenador como veia que avanzaba lentamente en la busqueda de drivers se puso a instalar como un poseso todo lo que encontraba relacionado con el modelo y de repente el teclado empezo a ir lentisimo.

Al final y despues de dar muchas vueltas, he identificado al culpable. Un proceso llamado TCtrlIOHook. Ya lo he quitado de la lista de inicio de windows. El programa al parecer se encarga de controlar las teclas especiales del teclado.

Solo queria saber como quitar el proceso de forma definitiva de la lista de inicio de Windows (igual podria buscarlo, pero llevo ya unas tres horas a vueltas con los drivers y estoy harto de buscar, leer, instalar, equibocarme y reinstalar drivers...), ya que al desactivar la pestaña en msconfig, cada vez que arranco windows me sale un mensaje diciendo que el cambio no es definitivo, y directamente me entra en msconfig.

Me da igual que el programa sea util o no. Lo que quiero es olvidarme de una vez del dichoso portatil....

¡Saludos!
39  Sistemas Operativos / GNU/Linux / Problemas de dependencias... en: 15 Febrero 2011, 06:42 am
¡Buenas!

Estoy intentando instalar Code::Blocks en gNewSense. Despues de descargar el package (no se me ocurre ninguna traduccion, ando espeso) correspondiente a debian (gNewSense esta basado en Ubuntu y usa paquetes .deb (por si a caso)),

Despues de extraer los ficheros, accedo mediante el terminal al directorio en el en el que  los he extraido y ejecuto

sudo dpkg -i *.deb 2> unfichero

para recoger los errores en un fichero. El resultado es el siguiente

Código:
dpkg: problemas de dependencias impiden la configuración de codeblocks:
 codeblocks depende de libwxbase2.8-0 (>= 2.8.10.1); sin embargo:
  La versión de `libwxbase2.8-0' en el sistema es 2.8.7.1-0ubuntu3.
 codeblocks depende de libwxgtk2.8-0 (>= 2.8.10.1); sin embargo:
  La versión de `libwxgtk2.8-0' en el sistema es 2.8.7.1-0ubuntu3.
dpkg: error al procesar codeblocks (--install):
 problemas de dependencias - se deja sin configurar
dpkg: problemas de dependencias impiden la configuración de codeblocks-contrib:
 codeblocks-contrib depende de libwxbase2.8-0 (>= 2.8.10.1); sin embargo:
  La versión de `libwxbase2.8-0' en el sistema es 2.8.7.1-0ubuntu3.
 codeblocks-contrib depende de libwxgtk2.8-0 (>= 2.8.10.1); sin embargo:
  La versión de `libwxgtk2.8-0' en el sistema es 2.8.7.1-0ubuntu3.
 codeblocks-contrib depende de codeblocks (= 10.05-1); sin embargo:
 El paquete `codeblocks' no está configurado todavía.
dpkg: error al procesar codeblocks-contrib (--install):
 problemas de dependencias - se deja sin configurar
dpkg: problemas de dependencias impiden la configuración de libcodeblocks0:
 libcodeblocks0 depende de libwxbase2.8-0 (>= 2.8.10.1); sin embargo:
  La versión de `libwxbase2.8-0' en el sistema es 2.8.7.1-0ubuntu3.
 libcodeblocks0 depende de libwxgtk2.8-0 (>= 2.8.10.1); sin embargo:
  La versión de `libwxgtk2.8-0' en el sistema es 2.8.7.1-0ubuntu3.
dpkg: error al procesar libcodeblocks0 (--install):
 problemas de dependencias - se deja sin configurar
dpkg: problemas de dependencias impiden la configuración de libwxsmithlib0:
 libwxsmithlib0 depende de libcodeblocks0 (= 10.05-1); sin embargo:
 El paquete `libcodeblocks0' no está configurado todavía.
 libwxsmithlib0 depende de libwxbase2.8-0 (>= 2.8.10.1); sin embargo:
  La versión de `libwxbase2.8-0' en el sistema es 2.8.7.1-0ubuntu3.
 libwxsmithlib0 depende de libwxgtk2.8-0 (>= 2.8.10.1); sin embargo:
  La versión de `libwxgtk2.8-0' en el sistema es 2.8.7.1-0ubuntu3.
dpkg: error al procesar libwxsmithlib0 (--install):
 problemas de dependencias - se deja sin configurar
dpkg: problemas de dependencias impiden la configuración de wxsmith-dev:
 wxsmith-dev depende de libcodeblocks0 (= 10.05-1); sin embargo:
 El paquete `libcodeblocks0' no está configurado todavía.
dpkg: error al procesar wxsmith-dev (--install):
 problemas de dependencias - se deja sin configurar
dpkg: problemas de dependencias impiden la configuración de codeblocks-dev:
 codeblocks-dev depende de libcodeblocks0 (= 10.05-1); sin embargo:
 El paquete `libcodeblocks0' no está configurado todavía.
dpkg: error al procesar codeblocks-dev (--install):
 problemas de dependencias - se deja sin configurar
dpkg: problemas de dependencias impiden la configuración de libwxsmithlib0-dev:
 libwxsmithlib0-dev depende de wxsmith-dev (= 10.05-1); sin embargo:
 El paquete `wxsmith-dev' no está configurado todavía.
dpkg: error al procesar libwxsmithlib0-dev (--install):
 problemas de dependencias - se deja sin configurar
Se encontraron errores al procesar:
 codeblocks
 codeblocks-contrib
 libcodeblocks0
 libwxsmithlib0
 wxsmith-dev
 codeblocks-dev
 libwxsmithlib0-dev

Lo que observo es que al parecer hace falta actualizar unos cuantos paquetes (ya me ha salido el palabro) o ficheros, pero antes de intentar instalar codeblocks he realizado un update y un dist-upgrade.

Una ultima informacion. Tengo instalado codeblocks en Ubuntu y no he tenido ningun problema (venia en el repositorio)

¿Puedo forzar la actualizacion de los paquetes anticuados aunque no se pueda hacer con apt-get update + apt-get dist-upgrade?

Y sobre todo, ¿que herramientas (comandos) me hace falta conocer para poder instalar paquetes que no esten en los repositorios de Debian, Ubuntu, gNewSense u otra distribucion basada en Debian?

¡Un saludo y perdon por las molestias!

PD: Si hace falta mas informacion o informacion mas especifica avisas.

¡Saludos de nuevo!
40  Sistemas Operativos / GNU/Linux / Cosas curiosas XD en: 24 Enero 2011, 06:40 am
Buenas a todos!

No se si conocereis este navegador (como en todos los casos, habra muchos que si y otros tantos que no...). Si os gusta editar con Vi, os recomiendo navegar con links. Supongo que estara disponible para la mayor parte de las distros (aunque realmente no lo se...)

Lo estoy haciendo en este momento. Cuando oi que exisitia algo asi, me dije, "no puede ser", pero si que lo es. Hay que ver como esta el mundo. Hay artilugios para todos los gustos.

Un saludo desde links!
Páginas: 1 2 3 [4] 5 6
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines