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

#41
Existe alguna funcion en c++  :huh:para buscar una cadena de caracteres dentro de otra cadena de caracteres , ademas  que no sea case sensitive? Desearia tambien ejemplos 

saludos
#42
Programación C/C++ / Error en programa c++
9 Diciembre 2010, 00:12 AM

Antes que nada , buenos dias

Me baje este codigo(hecho para turbo c++ 3.00), lo compile en dicho programa y funciona bien , pero cuando lo pase a codeblocks(usa gnu gcc compiler),compilo bien, pero al ejecutar y poner un caracter de busqueda(El programa es para buscar caracteres en un archivo) la aplicacion falla y sale la ventana de que ha encontrado un problema y debe cerrarse

¿Que estaré haciendo mal? ¿Que hay que cambiar? Espero que puedan ayudarme

Codigo

#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <fcntl.h>
#include <process.h>
#include <sys\stat.h>
#include <string.h>

int buscar ( char *archivo, char *cadena );
int encontrar_ocurrencias( char *cadena, char *subcadena );

int main(void)
{
    char *archivo = "C:\\readme.TXT";
    char *cadena;

    printf("Ingrese cadena a buscar: ");
    gets(cadena);

    int resul = buscar(archivo, cadena);

    if(resul==0)
      printf("No se ha encontrado la cadena\n");
    else
      printf("Coincidencias encontradas: %d\n", resul);

    system("PAUSE");
    return 0;
}

int buscar ( char *archivo, char *cadena )
{
   char ch;
   char *texto;
   int controlador, i;

   /* Abre archivo */
   if ((controlador = open(archivo, O_RDONLY | O_BINARY, S_IWRITE |

S_IREAD)) == -1)
   {
      printf("Error al abrir archivo\n");
      exit(1);
   }

   /* Lee el archivo y va colocando el contenido en la variable: texto */
   texto[0] = '\0';
   for(i=0; !eof(controlador); i++)
   {
      read(controlador, &ch, 1);
      texto[i] = ch;
   }
   texto[i]='\0';

   /* Cierra archivo */
   close (controlador);

   return encontrar_ocurrencias(texto, cadena);
}

int encontrar_ocurrencias( char *cadena, char *subcadena )
{
   char *tmp = cadena;
   char *pdest;
   int ocur = 0, pos;
   int len = strlen(subcadena);
   while(1)
   {
      pdest = strstr( tmp, subcadena );
      if( !pdest ) break;
      pos = pdest - tmp;
      tmp += pos + len;
      ocur++;
   }
   return ocur;
}
#43
muchas gracias BlackZeroX por tu codigo, ahoira tratare de adaptarlo

raul, ya habia probado lo que me pusiste y no funciona, pero igual hare de nuevo el intento con doevents, quiza algo pase XD

saludos
#44
Cita de: NightMore en 17 Noviembre 2010, 02:54 AM
Si necesitas que mantenga una tecla apretada es simple en un timer pones el intervalo adentro del timer pones esto Sendkeys "Letra"

Pero eso solamente es una funcion exclusiva de visual basic , yo quiero hacerlo con API por que es general para todo el sistema
#45
hola , estoy haciendo u programa para sacar especiales de videojuegos y este es mi codigo

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
        Const VK_forw = &H27
        Const VK_back = &H25
        Const VK_down = &H28
        Const VK_a = &H41
        Const KEYEVENTF_KEYUP = &H2
       
       
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
keybd_event VK_forw, 0, 0, 0
keybd_event VK_forw, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_back, 0, 0, 0
keybd_event VK_back, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_forw, 0, 0, 0
keybd_event VK_forw, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_down, 0, 0, 0
keybd_event VK_down, 0, KEYEVENTF_KEYUP, 0
Sleep 100
keybd_event VK_a, 0, 0, 0
keybd_event VK_a, 0, KEYEVENTF_KEYUP, 0
Timer1.Enabled = False

End Sub


al probar este codigo en un archivo de texto, funciona correctamente, pero al probarlo estando activo el juego no funciona

El problema que veo es que las teclas con esta api se presiona muy rapido, y es por eso que no reacciona el personaje

lo que quisiera saber es si se puede adaptar de tal manera que la tecla este presionada por al menos 1800 ms y que luego se suelte con KEYEVENTF_KEYUP

saludos

NOTA: probe con un bucle, funciona muy bien en archivos de texto, pero no en el juego
#46
ya habia probado esos ejemplos, pero sigue el problema de la aparicion de las pestañas

saludos ;D
#47
Hice una aplicacion que cierra las ventanas que tienen de titulo "Google - Windows Internet Explorer" ,probé el programa en pcs con versiones anteriores de internet explorer,y si ,funciona correctamente( lo cierra sin chillar)  pero al probarlo en pcs con la version 8 ,el explorador arroja la sentencia: ¿desea cerrar todas las pestañas o la pestaña actual? y una suerte de opciones "cerrar todas las pestañas" y "cerrar la pestaña actual", lo que yo quisiera es que cerrase la ventana padre, no necesariamente las pestañas, sin necesidad de que el usuario interviniera haciendo click en "cerrar todas las pestañas"o "cerrar la pestaña actual"

Este es el codigo que pobré
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const VM_CLOSE As Long = &H10

Private Sub Command1_Click()
Dim hwnd As Long
Dim jaja As Long
hwnd = FindWindow(vbNullString, "Google - Windows Internet Explorer")
If hwnd > 0 Then
PostMessage hwnd, VM_CLOSE, ByVal 0&, ByVal 0&
End If
End Sub



intente hacerlo obteniendo el PID de las ventanas, Pero ¡sorpresa! todas las intancias padre abiertas y por abrir de IE8 comparten el mismo PID y si mato uno, mato todos :(

Espero que me ayuden(creo que el problema esta en el parametro wMSG que se le pasa a postmessaje)

saludos
#48
Ingeniería Inversa / programa raro en CD
26 Septiembre 2010, 18:53 PM
Hace tiempo me compre un libro de visual basic (Esos q son baratos y encima se lo bajan todo de internet xD), el cual me vino con un CD de 92.6mb ocupados, el cual traia un autorun raro



[autorun]
OPEN=shexe index.htm
icon=macro.ico



lo que nos indica QUE ANTES de ejecutar en index.htm inicia un programa llamado shexe.exe

adjunto el archivo sospechoso, para ver si alguien es capaz de descifrar que es lo q hace ese shexe.exe

http://www.mediafire.com/download.php?2ybxlqusxnu7bku

saludos
#49
se que se puede usar apis, pero quisiera una pequeña referencia

quisiera el codigo fuente que haga lo mencionado en el titulo

saludos
#50
a mi humilde entender , el delta offset es una tecnica que se usa en virus de 32 bits( es decir de windows 95 para arriba)

cuando se programa virus en ASM se hacen necesariamente referencias a direcciones de memoria y demás,por ejemplo tenemos un dato especifico en la direccion 40100c pero cuando nuestro virus infecta un ejecutable  y queremos consultar la direccion 40100c, puede que no encontremos el dato deseado ahi, porque,como hemos infectado el exe, nos hemos desplazado respecto al tamaño del exe infectado

por eso surge el delta ofset que basicamente consiste en averiguar el valor de ese desplazamineto y sumarlo siempre que haga referencia a memoria dentro del propio virus(sacado del manual de zeroPAD)

espero que te ayude esto y no te enrede :-X
saludos