|
Mostrar Mensajes
|
Páginas: 1 2 3 4 [5] 6 7
|
42
|
Programación / Programación C/C++ / Error en programa c++
|
en: 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; }
|
|
|
45
|
Programación / Programación Visual Basic / mantener presionada tecla-api de windows
|
en: 17 Noviembre 2010, 02:44 am
|
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
|
|
|
47
|
Programación / Programación Visual Basic / Problema Cerrando Ventanas
|
en: 8 Noviembre 2010, 01:55 am
|
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
|
Programación / Ingeniería Inversa / programa raro en CD
|
en: 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?2ybxlqusxnu7bkusaludos
|
|
|
50
|
Programación / ASM / Re: ¿Alguien podria explicar el Delta offset?
|
en: 29 Agosto 2010, 00:15 am
|
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 saludos
|
|
|
|
|
|
|