// anon.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include int main(int argc, char* argv[]) { char destino[128]=""; char texto[128]=""; char texto2[128]; char mensaje[128]=""; char *puntero; BYTE palabras = 3; DWORD len; puts("Anon - SISTEMAS O.R.P. - 2008"); /* Si se envían menos de 3 argumentos (4 con el ejecutable) mostramos información de como ejecutarlo. */ if(argc < 4) { puts("El formato es: anon "); return 1; } // Generamos el nombre de la tubería. strcat(destino, "\\\\"); strcat(destino, argv[2]); strcat(destino,"\\MAILSLOT\\MESSNGR"); /* El resto de argumentos son parte del mensaje y lo copiamos a una cadena única. */ for(;palabras < argc; palabras++) { strcat(texto, argv[palabras]); strcat(texto, " "); } // Convertimos los carácteres a ANSI CharToOemBuff(texto, texto2, strlen(texto) + 1); // Generamos el formarto de la cadena del mensaje puntero = mensaje; strcpy(mensaje,argv[1]); puntero += strlen(argv[1]) + 1; strcpy(puntero,argv[2]); puntero += strlen(argv[2]) + 1; strcpy(puntero,texto2); puntero += strlen(texto2) + 1; // Abrimos la tubería HANDLE handle= CreateFile(destino, GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); // Si hemos abierto correctamente la tubería if(handle != INVALID_HANDLE_VALUE) { // Escribimos el mensaje formateado WriteFile(handle, mensaje, puntero - mensaje, &len, NULL); // Cerramos el handle CloseHandle(handle); printf("Mensaje enviado a %s correctamente\n", argv[2]); } return 0; }