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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
21  Programación / Programación C/C++ / Re: quisiera que me dijeran como hacer un programa que me envie dato a un hotmail en: 7 Septiembre 2013, 13:04 pm
Más datos hombre, ¿usas una librería específica (WinAPI, QT, wxWidgets...) o vas a ejecutar guiones shell...?, ¿multiplataforma o para un SO específico?.

Si estás buscando una opinión general te recomiendo QT. Aquí un ejemplo para envíar e-mails:

smtp.h:
Código
  1.    /****************************************************************************
  2.     ** $Id: qt/smtp.h 3.3.6 edited Aug 31 2005 $
  3.     **
  4.     ** Copyright (C) 1992-2005 Trolltech AS. All rights reserved.
  5.     **
  6.     ** This file is part of an example program for Qt. This example
  7.     ** program may be used, distributed and modified without limitation.
  8.     **
  9.     *****************************************************************************/
  10.  
  11.    #ifndef SMTP_H
  12.    #define SMTP_H
  13.  
  14.    #include <QTcpSocket>
  15.    #include <QString>
  16.    #include <QTextStream>
  17.    #include <QDebug>
  18.    #include <QMessageBox>
  19.  
  20.    class Smtp : public QObject
  21.    {
  22.    Q_OBJECT
  23.  
  24.  
  25.    public:
  26.    Smtp( const QString &from, const QString &to,
  27.    const QString &subject, const QString &body );
  28.    ~Smtp();
  29.  
  30.    signals:
  31.    void status( const QString &);
  32.  
  33.    private slots:
  34.    void stateChanged(QTcpSocket::SocketState socketState);
  35.    void errorReceived(QTcpSocket::SocketError socketError);
  36.    void disconnected();
  37.    void connected();
  38.    void readyRead();
  39.  
  40.    private:
  41.    QString message;
  42.    QTextStream *t;
  43.    QTcpSocket *socket;
  44.    QString from;
  45.    QString rcpt;
  46.    QString response;
  47.    enum states{Rcpt,Mail,Data,Init,Body,Quit,Close};
  48.    int state;
  49.  
  50.    };
  51.    #endif

stmp.cpp:
Código
  1.    #include "smtp.h"
  2.  
  3.    Smtp::Smtp( const QString &from, const QString &to, const QString &subject, const QString &body )
  4.    {
  5.    socket = new QTcpSocket( this );
  6.  
  7.    connect( socket, SIGNAL( readyRead() ), this, SLOT( readyRead() ) );
  8.    connect( socket, SIGNAL( connected() ), this, SLOT( connected() ) );
  9.    connect( socket, SIGNAL(error(SocketError)), this,
  10.    SLOT(errorReceived(SocketError)));
  11.    connect( socket, SIGNAL(stateChanged( SocketState)), this,
  12.    SLOT(stateChanged(SocketState)));
  13.    connect(socket, SIGNAL(disconnectedFromHost()), this,
  14.    SLOT(disconnected()));;
  15.  
  16.    message = "To: " + to + "\n";
  17.    message.append("From: " + from + "\n");
  18.    message.append("Subject: " + subject + "\n");
  19.    message.append(body);
  20.    message.replace( QString::fromLatin1( "\n" ), QString::fromLatin1( "\r\n" ) );
  21.    message.replace( QString::fromLatin1( "\r\n.\r\n" ),
  22.    QString::fromLatin1( "\r\n..\r\n" ) );
  23.    this->from = from;
  24.    rcpt = to;
  25.    state = Init;
  26.    socket->connectToHost( "smtp.yourserver.com", 25);
  27.    if(socket->waitForConnected ( 30000 )) {qDebug("connected"); }
  28.  
  29.    t = new QTextStream( socket );
  30.    }
  31.    Smtp::~Smtp()
  32.    {
  33.    delete t;
  34.    delete socket;
  35.    }
  36.    void Smtp::stateChanged(QTcpSocket::SocketState socketState)
  37.    {
  38.  
  39.    qDebug() <<"stateChanged " << socketState;
  40.    }
  41.  
  42.    void Smtp::errorReceived(QTcpSocket::SocketError socketError)
  43.    {
  44.    qDebug() << "error " <<socketError;
  45.    }
  46.  
  47.    void Smtp::disconnected()
  48.    {
  49.  
  50.    qDebug() <<"disconneted";
  51.    qDebug() << "error " << socket->errorString();
  52.    }
  53.  
  54.    void Smtp::connected()
  55.    {
  56.    output->append("connected");
  57.    qDebug() << "Connected ";
  58.    }
  59.  
  60.    void Smtp::readyRead()
  61.    {
  62.  
  63.    qDebug() <<"readyRead";
  64.    // SMTP is line-oriented
  65.  
  66.    QString responseLine;
  67.    do
  68.    {
  69.    responseLine = socket->readLine();
  70.    response += responseLine;
  71.    }
  72.    while ( socket->canReadLine() && responseLine[3] != ' ' );
  73.  
  74.    responseLine.truncate( 3 );
  75.  
  76.  
  77.    if ( state == Init && responseLine[0] == '2' )
  78.    {
  79.    // banner was okay, let's go on
  80.  
  81.    *t << "HELO there\r\n";
  82.    t->flush();
  83.  
  84.    state = Mail;
  85.    }
  86.    else if ( state == Mail && responseLine[0] == '2' )
  87.    {
  88.    // HELO response was okay (well, it has to be)
  89.  
  90.    *t << "MAIL FROM: " << from << "\r\n";
  91.    t->flush();
  92.    state = Rcpt;
  93.    }
  94.    else if ( state == Rcpt && responseLine[0] == '2' )
  95.    {
  96.  
  97.    *t << "RCPT TO: " << rcpt << "\r\n"; //r
  98.    t->flush();
  99.    state = Data;
  100.    }
  101.    else if ( state == Data && responseLine[0] == '2' )
  102.    {
  103.  
  104.    *t << "DATA\r\n";
  105.    t->flush();
  106.    state = Body;
  107.    }
  108.    else if ( state == Body && responseLine[0] == '3' )
  109.    {
  110.  
  111.    *t << message << "\r\n.\r\n";
  112.    t->flush();
  113.    state = Quit;
  114.    }
  115.    else if ( state == Quit && responseLine[0] == '2' )
  116.    {
  117.  
  118.    *t << "QUIT\r\n";
  119.    t->flush();
  120.    // here, we just close.
  121.    state = Close;
  122.    emit status( tr( "Message sent" ) );
  123.    }
  124.    else if ( state == Close )
  125.    {
  126.    deleteLater();
  127.    return;
  128.    }
  129.    else
  130.    {
  131.    // something broke.
  132.    QMessageBox::warning( 0, tr( "Qt Mail Example" ), tr( "Unexpected reply from SMTP server:\n\n" ) + response );
  133.    state = Close;
  134.    }
  135.    response = "";
  136.    }

Invocación:
Código
  1.    Smtp *newMail = new Smtp("from@address.com","to@address.com"," Your Subject","My body text");
  2.    delete newMail;

Fuente: http://www.qtcentre.org/threads/2221-Sending-email-using-Qt

Saludos.
22  Foros Generales / Noticias / Re: Los científicos del CSIC planean pedir asilo político en embajadas extranjeras en: 7 Septiembre 2013, 12:45 pm
A dia de hoy el futuro está en la política y no en la intelectual; jodida realidad.
23  Programación / Programación C/C++ / Re: problemilla en c++ en: 4 Septiembre 2013, 12:54 pm
lo que tenes que hacer es  depurar tu programa, te recomiendo usar el WinDbg.

Citar
El programa funcionaba bien hasta que añadí algunas líneas de código.

Aunque es evidente te comento que deberías empezar por depurar la zona de código que añadiste y, si no se soluciona, continúa por funciones, métodos y rutinas que sean llamadas por dichas líneas.

Saludos.
24  Programación / Java / Re: RETO solvedor sistemas de ecuaciones (con solución)[JAVA] en: 30 Agosto 2013, 12:27 pm
¡Buen trabajo!.

Un par de recomendaciones: El código queda más comprensible de cara a otros programadores cuando la información tiene identificadores significativos, en las variables de tu código hay que volver arriba varias veces para saber qué era exactamente cada dato.

Y para esto:

Código
  1. for (double i =1;i<21;i++){  //COMPROBACIÓN
  2. i-=1;
  3. i =aniadir(i);
  4. for (double i1=0;i1<21;i1++){
  5. double fatemp[];
  6. i1-=1;
  7. // System.out.println("USados "+i+" "+i1);
  8. i1 =aniadir(i1);
  9. fatemp =math(u,d,i,i1);
  10. if (fatemp[0]+fatemp[1]==t){
  11. if(verificar(i,i1,u1,d1,t1)){
  12. System.out.println("¡Bingo!,¡Bango!,¡Bongo! , x igual a "+i+ " e y igual a "+i1);
  13. break;}
  14. }
  15. }
  16. }
  17.  
  18. for (double i =1;i<20;i++){  //SEGUNDA COMPROBACIÓN
  19. i-=1;
  20. i=aniadir(i);
  21. for (double i1=0;i1>-20;i1--){
  22. double fatemp[];
  23. i1+=1;
  24. // System.out.println("USados "+i+" "+i1);
  25. i1 =aniadirminus(i1);
  26. fatemp =math(u,d,i,i1);
  27. if (fatemp[0]+fatemp[1]==t){
  28. if(verificar(i,i1,u1,d1,t1)){
  29. System.out.println("1¡Bingo!,¡Bango!,¡Bongo! , x igual a "+i+ " e y igual a "+i1);
  30. break;}
  31. }
  32. }
  33. }
  34.  
  35.  
  36. for (double i =1;i>-20;i--){ // TERCERA COMPROBACIÓN
  37. i+=1;
  38. i=aniadirminus(i);
  39. for (double i1=0;i1<20;i1++){
  40. double fatemp[];
  41. i1-=1;
  42. // System.out.println("USados "+i+" "+i1);
  43. i1 =aniadir(i1);
  44. fatemp =math(u,d,i,i1);
  45. if (fatemp[0]+fatemp[1]==t){
  46. if(verificar(i,i1,u1,d1,t1)){
  47. System.out.println("2¡Bingo!,¡Bango!,¡Bongo! , x igual a "+i+ " e y igual a "+i1);
  48. break;}
  49. }
  50. }
  51. }
  52.  
  53. for (double i =1;i>-20;i--){//CUARTA COMPROBACIÓN
  54. i+=1;
  55. i=aniadirminus(i);
  56. for (double i1=0;i1>-20;i1--){
  57. double fatemp[];
  58. i1+=1;
  59. // System.out.println("USados "+i+" "+i1);
  60. i1 =aniadirminus(i1);
  61. fatemp =math(u,d,i,i1);
  62. if (fatemp[0]+fatemp[1]==t){
  63. if(verificar(i,i1,u1,d1,t1)){
  64. System.out.println("T¡Bingo!,¡Bango!,¡Bongo! , x igual a "+i+ " e y igual a "+i1);
  65. break;}
  66. }
  67. }
  68. }
  69.  
  70. }

¿Por qué no haces otro bucle anidado en vez de escribir 4 veces el mismo código?.

Un saludo.
25  Programación / Java / Re: Ejecutar programa java en segundo plano en: 30 Agosto 2013, 12:13 pm
Hay dos formas sencillas de hacerlo:

1- Desde la interfaz gráfica de Ubuntu: http://askubuntu.com/questions/186865/how-do-i-start-a-program-automatically-when-i-boot

Si dices que estás trabajando con un servidor esa opción está descartada porque no tendrá interfaz gráfica.

2-Con un fichero especial que reconoce Ubuntu como autoejecutable (esta es tu parada): http://astarothsworld.blogspot.com.es/2008/10/cmo-hacer-un-autorun-para-ubuntu.html

Si no te aclaras, no dudes en comentar.

Saludos.

PD: Este tema iria más bien en el apartado de guiones shell.
26  Programación / Programación C/C++ / Re: arreglo de punteros y funciones en: 29 Agosto 2013, 10:21 am
saludos Alien-Z yo pense que con:

Código
  1. *(romano+i) = (char*)malloc((strlen(B)+1)*sizeof(char));

strlen(B)+1 ya le estaba agregando el fin de cadena \0.

La función strlen(B) lo que hace es devolver el tamaño en bytes de la cadena B sin contar el byte que ocupa '\0', pero no la modifica ni le asigna nada, ni si quiera la marca fin.

Es luego con strcpy() donde copias el contenido de B en array['i] incluyendo '\0', pero si no tiene suficiente tamaño se queda fuera.

Lo que yo te quería decir es que esto "(strlen(B)+1)" es lo mismo que la constante "TAM", y que debes controlar que la entrada no sea más grande que dicha constante, cosa que no se hace con la función "gets" y por tanto debes incluir tú manualmente la marca fin '\0'.

Saludos.
27  Programación / Java / Re: Preciso una ayudita sobre array en: 27 Agosto 2013, 22:37 pm
Parece estar bien, prueba así:

Código
  1. boolean ascendente = true;
  2. int i = 1; //Empezamos desde la segunda posición del array
  3. while (i < ordenado.length && ascendente) {
  4.   if (ordenado[i-1] > ordenado [i]) //Si no está ordenado
  5.      ascendente = false;
  6.  
  7.   i++;
  8. }
  9. if(ordenado)
  10.   system.out.println("El array está ordenado.");
  11. else
  12.   system.out.println("El array no está ordenado.");

Saludos.
28  Programación / Programación C/C++ / Re: arreglo de punteros y funciones en: 27 Agosto 2013, 22:18 pm
Los punteros a arrays se utilizan como un array en si, creo que esto es lo que preguntas:

Código
  1. int nombre_funcion(char *a[], int n)
  2. {
  3.   for (int i = 0; i < n; i++)
  4.    cout << a[i] << endl;
  5.   return 0;
  6. }

Un par de cosas:

Código
  1. *(array+i) = (char*)malloc((strlen(B)+1)*sizeof(char));

¿Te das cuenta de que lo que haces es reservar en cada posición de la tabla un byte más que en la posición anterior?, es decir, si array[3] ocupa 3 bytes (y solo caben 3 caracteres), array[4] va a ocupar 4 bytes y caben 4 caracteres, por tanto no todas las posiciones tienen el mismo tamaño.

Además debes añadir la marca fin "\0" a las cadenas de tipo char.

No es correcto el uso de gets, en su lugar utiliza fgets: http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

Un saludo.
29  Programación / Programación C/C++ / Re: Creando un bat en: 27 Agosto 2013, 21:44 pm
Suponemos como premisa que no quieres comandos shell porque has puesto el tema en un subforo de C/C++.

Código:
-necesito que el bat auto detecte si windows es 32 bits o 64 bits.

Consulta alguno de los archivos de información del sistema operativo, aqui tienes un ejemplo: http://support.microsoft.com/kb/556009

Código:
-Que desistale un programa si esta instalado Gameforge live.

Desinstalar un programa no es más que eliminar la carpeta de dicha aplicación y modificar los archivos de configuración correspondientes.

Código:
-Instale un programa "Tortoise SVN" que esta en la misma carpeta que el bat.(en modo silencioso)

Instalar un programa es lo mismo que copiar la carpeta al PC. Si dices que ya se encuentra en la carpeta del bat (y ésta en el disco duro), colócala en alguna ruta más clara. Ej: C:\Archivos del programa\carpeta de tu aplicación\ficheros que componen tu aplicación

Código:
-Que copie la carpeta Micromacro al escritorio.
-Y que copie la carpeta rom a Micromacro/Scripts/
-Despues que copia la carpeta ingamefuncions que esta en Micromacro/Scripts/devtools/ingamefuncions
 y que la copie a archivos de programa/Runes of Magic/Interface/Addons/

¿Pero exactamente qué API o librería estás utilizando?. Tienes desde:

Código
  1. system("copy C:\\origen\\archivo1.txt C:\\destino");

O usando la API de Windows: http://www.delphiaccess.com/forum/trucos-y-consejos-16/%28multilenguaje%29-copiar-multiples-archivos-y-carpetas/

Con lo cual la harías dependiente de este SO (Win API = cosa mala).

Lo que yo te recomiendo es alguna librería con una implementación medianamente decente y que mantenga el carácter multiplataforma de C/C++ como QT: http://www.zonaqt.com/foro/copiar-y-eliminar-directorios#comment-2213

una cosa mi foro es http://www.elrincondelbot.p.ht/ y esta en construccion y no tumbarlo por favor.

Demasiado tarde Muahahahaha
30  Programación / Programación C/C++ / Re: Palindromo en un archivo en: 27 Agosto 2013, 11:20 am
Manejo de ficheros en C++: http://c.conclase.net/curso/?cap=039

Saludos.
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines