|
251
|
Programación / Programación Visual Basic / Re: Cómo detectar mediante la Api cambios en la información del disco duro.
|
en: 31 Julio 2005, 16:24 pm
|
este no es el foro adecuado para mi post, pero sí el hilo... ??? He codeado un código para probarlo pero no funciona, cambio el nombre de algún archivo y no me dice nada. Aquí os dejo el código a ver qué le veis: #include <stdio.h> #include <windows.h>
/*FUNCIÓN PRINCIPAL*/ void main() { //devuelde la descripción del error, a partir de su código char *MensajeError(DWORD error_num); HANDLE mon1=FindFirstChangeNotification("D:\\mon",TRUE,FILE_NOTIFY_CHANGE_FILE_NAME);
//creamos el handle if(mon1==INVALID_HANDLE_VALUE) { printf("[!] Error al crear el handle -> %s",MensajeError(GetLastError())); return; }
for(;;) { if (FindNextChangeNotification(mon1)==0) { printf("\nCambio en el nombre de un archivo"); } Sleep(100); }
//cerramos y salimos FindCloseChangeNotification(mon1); return; }
//devuelde la descripción del error, a partir de su código char *MensajeError(DWORD error_num) { char *lpMsgBuf;
//cojemos el mensaje del error FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, error_num, 0, (LPTSTR) &lpMsgBuf, 0, NULL );
return lpMsgBuf; }
Creo que no hace falta decir que dicho archivo se encuentra en "D:\mon"
|
|
|
254
|
Programación / Programación Visual Basic / Re: Problema con winsock :/
|
en: 18 Julio 2005, 10:24 am
|
puede que el puerto ya esté en uso... porcierto, el código Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean) txtRecibido = txtRecibido & "Conexión Cerrada: " & Winsock1.RemoteHostIP Winsock1.Close txtRecibido = "ID de la solicitud de la conexion " & requestID & "de " & Winsock1.RemoteHostIP Winsock1.Close Winsock1.Accept requestID Dim vtData As String Winsock1.GetData vtData, vbString txtRecibido.Text = "" txtRecibido.Text = txtRecibido & vtData End Sub
Desde que cierras el sockets por 1º vez (no incluido), iría en el evento DataArrival.
|
|
|
260
|
Programación / Programación C/C++ / Re: Cambiar icono a un ejecutable
|
en: 15 Junio 2005, 21:08 pm
|
Gracias He buscado info, y me he codeado este código: #include <stdio.h> #include <windows.h>
void main() { FILE *icono; int size,i; char *buffer;
/*el handle para cambiar saber a qué fichero queremos cambiarle el icono*/ HANDLE hicono=BeginUpdateResource("C:\\nc.exe",FALSE/*no borramos el icono original*/); /*VAMOS A CALCULAR EL TAMAÑO PARA EXTRAER LOS DATOS*/ icono=fopen("C:\\icono.ico","rb"); fseek(icono,0,SEEK_END);size=ftell(icono);
/*creamos el buffer*/ buffer=(char *) malloc(ftell(icono)*sizeof(char));
/*METEMOS EL ICONO EN EL PUNTERO*/ fseek(icono,0,SEEK_SET);
//leemos i=fread(buffer,1,size,icono); buffer[i]='\0'; fclose(icono);
/*TENEMOS: - Tamaño del fichero (size) - El fichero cargado en la memoria (buffer) */
//miramos si todo está bien if(hicono==NULL) { printf("\n[x] Error en el handle del icono"); free(buffer); CloseHandle(hicono); return; }
UpdateResource(hicono, //el handle al fichero RT_ICON, //tipo de resource a cambiar MAKEINTRESOURCE(104), //nombre MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT), //idioma buffer, //el buffer con el contenido size); //el tamaño
/*cerramos y salimos*/ EndUpdateResource(hicono,FALSE/*para guardar los cambios*/);
printf("\n[+] Icono cambiado!"); CloseHandle(hicono); return; }
Pero no me cambia el icono y no sé dónde puede estar el fallo ???
|
|
|
|
|
|
|