elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como instalar programa en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como instalar programa en C  (Leído 2,417 veces)
Hacklinx

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Como instalar programa en C
« en: 4 Febrero 2014, 19:48 pm »

Saludos a todos, abro este post ya que estoy creando un programa capaz de instalarse por si solo es decir que al ejecutarle se copie en un directorio que no requiera permisos de root, y allí realizar un anclaje al registro para esa dirección que tampoco requiere permisos de root.

Una vez echo esto, el programa se ejecutará cuando yo encienda el ordenador, y podré usarlo como cualquier otro.

Esto es lo que tengo: (Es C)

char cad[100]="copy ";
char path[100];
getcwd(path,255);
strcat(cad,path);
strcat(cad,"\\miprograma.exe C:\\Users\\minombreusuario");
system(cad);
//Luego lo anclaría al registro...

Vamos a ver, eso funcionaria en mi ordenador, ya que conozco mi nombre de usuario y sería solo ponerlo en "minombredeusuario", pero entonces el programa ya no funcionará para otra persona, yo quiero que sea capaz de instalarse sea el ordenador que sea.

Lo estoy "instalando" en C:\Users\Usuario\

Es decir este archivo.exe se copiaría allí y se anclaría al registro con esa dirección, pero ¿como hacer para que funcione para cualquier usuario?

O ¿Como poderlo copiar de alguna manera para poderlo instalar?

Cualquier idea será bienvenida, aunque sea totalmente distinta a la mía, lo necesito cuanto antes :))

Saludos, y gracias :))


En línea

Yoel Alejandro

Desconectado Desconectado

Mensajes: 254



Ver Perfil WWW
Re: Como instalar programa en C
« Respuesta #1 en: 5 Febrero 2014, 00:27 am »

Hola Hacklink,

Me parece excelente la iniciativa de crear un programa auto-instalable. Ahora, no entiendo bien si me dices cuando hablas de "root" (lo que me hace pensar en UNIX), y por otra parte das a entender que lo instalarás en Windows (por la extensión .exe por ejemplo). En Windows no existe usuario root, por lo que no tienes que preocuparte por ese problema.

En cuanto a conocer el nombre particular del usuario, en los Sistemas Operativos existe algo llamado "variables de entorno". Son como nombres nombres simbólicos que se "expanden" o reemplazan por el procesador de comandos (el símbolo de sistema de Windows) por el valor apropiado. Para ver una lista de todas las variables de entorno en Windows escribe el comando "set" en la cónsola.

El nombre que identifica al usuario actual si mal no recuerdo (revisa, porque podría estar recordando mal) es USERNAME . Para obtener si valor debes escribir entre signos de porcentaje así:

Código:
echo %USERNAME%

y te debe imprimir (en la consola) el nombre de usuario actual. Entonces, para C deberías recuperar el valor de esta variable mediante una solicitud al SO con el comando system. Debe ser algo más o menos como:

Código:
;
char username[100];

char cad[100]="copy ";
char path[100];
getcwd(path,255);
strcat(cad,path);

/* aquí pones el nombre el usuario */
strcpy( username, system("echo %USERNAME%") );
strcat(cad,"\\miprograma.exe C:\\Users\\%s", username);

/* luego ejecutas el copy */
system(cad);

Bueno, espero haber aclarado tu duda, y cualquier cosa comenta o pregunta :)

Por cierto, ¿sabes lo que son scripts de batch para Windows? Se utilizan para automatizar tareas que requieren del SO, y en mi opinión creo que son preferibles a códigos de C porque pueden llamar a órdenes directas de la consola de comandos ....

===============
P.D. Por favor coméntame sobre tu avance en este proyecto que me parece muy interesante ...


« Última modificación: 5 Febrero 2014, 00:37 am por yoel_alejandro » En línea

Saludos, Yoel.
P.D..-   Para mayores dudas, puedes enviarme un mensaje personal (M.P.)
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Como instalar programa en C
« Respuesta #2 en: 5 Febrero 2014, 02:16 am »

No es posible utilizar la función system porque el valor de retorno de esta es de tipo int.

En MS Windows para obtener el nombre de usuario se pueden utilizar las funciones GetUserName y  GetUserNameEx.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Hacklinx

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Re: Como instalar programa en C
« Respuesta #3 en: 10 Febrero 2014, 13:36 pm »

Encontré finalmente el método y aquí le traigo:

system("mkdir Aplicaciones C:\\Users\\%username%");
system("copy programa.exe C:\\Users\\%username%\\Aplicaciones");
system("REG ADD HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run /v IniciarProgramas /t REG_SZ /d \"C:\\Users\\%username%\\Aplicaciones\\programa.exe\"");

Crea una carpeta llamada aplicaciones, dentro de tu perfil de usuario, y allí mete el ejecutable, y lo ancla al registro para esa dirección.

Saludos :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como instalar un programa
Hacking
leroca 1 2,267 Último mensaje 18 Abril 2014, 07:56 am
por 3lyatmaN
como instalar un programa con archivo PKGBUILD ??
Hacking
marcopolo123 0 2,581 Último mensaje 17 Noviembre 2017, 02:23 am
por marcopolo123
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines