El código a simple vista parece que funciona, lo llamas copiar.exe y debería de copiarse pero surge un problema a la hora de ejecutarse.
Código
#include <stdio.h> #include <windows.h> main(){ char path[256]; char nombre[60]="copiar"; char* ruta=getenv("windir"); //obtiene la ruta de la instalacion de windows strcat(ruta,"\\System32\\"); //agrega System32 a la ruta strcat(nombre,".exe"); //agrega .exe a wnws strcat(ruta,nombre); //agrega wnws.exe a C:\WINDOWS\System32 HMODULE exe = GetModuleHandle(0); //nos retornara un handle al archivo usado para crear el proceso de llamada GetModuleFileName(exe, path, 256); //obtien la ruta de si mismo CopyFile(path,ruta,false); //se copia a la carpeta System32 }