Abrir archivo en C++

Iniciado por Mahiques, 29 Agosto 2008, 00:16 AM

0 Miembros y 1 Visitante están viendo este tema.

JuaN-ThE-HaCKeR

#10
Hola!

Me he pasado por aquí y he probado por curiosidad el código de carlitos.dll y según mi punto de vista es un programa un poco "ofensivo" debido a que ejecuta la aplicación taskkill.exe parar cerrar o finalizar varias aplicaciones, una de ellas, taskmgr.exe, que, en windows es el administrador de tareas (CTRL + ALT + SUPR/DEL), aunque esta no tiene mucha importancia, pero este programa también finaliza otra aplicación que es bastante importante: explorer.exe, al cerrar esta aplicación, la barra de inicio se cierra y los iconos del escritorio desaparecen, aunque se puede solucionar fácilmente con este código tan sencillo como corto:



#include <windows.h>

main () {

system ("explorer.exe");
}




Desconozco la intención de carlitos.dll al publicar este código, aunque los "daños" que provoca no son nada graves.   :laugh:

Saludos!  ;)




JuaN





JuaN-ThE-HaCKeR

#11
Hola!

Como respuesta a la duda de Mahiques yo uso el siguiente código para abrir cualquier aplicación, programa, archivo, etc, en este caso para abrir bla.bla:



#include <windows.h>

main () {

system ("bla.bla");  // Para abrir bla.bla situado en el mismo directorio donde se ejecuta el programa.

return 0;
}


o:


#include <windows.h>

main () {

system ("C:\\bla.bla");  //Para abrir bla.bla Situado en C: (C:\bla.bla)

return 0;
}


Quizás el fallo esté en que se te olvidó añadir la librería windows.h, aunque no lo creo, si fuera así te tiraría un error antes de compilar y dices que el problema está en que no te encuentra el archivo.

PD: Te recomiendo que crees un archivo prueba.txt en C: y pruebes el código siguiente:


#include <windows.h>

main() {

system ("C:\\prueba.txt");

return 0;
}


Y si con éste código te sigue saltando el error de que no encuentra el archivo:

1.- Te olvidaste crear el archivo prueba.txt y/o no lo creaste en C: :xD
2.- Tu compilador tiene algún problema.  :-\

Quizás te podamos ayudar más si nos dices que compilador usas.  :P

Saludos!  ;)




JuaN





carlitos.dll

Sucede, que utilizé ese código para una aplicación llamada SCOT Secure Login (aún no se publica, y está en batch (de code-makers) la intención del programa es autentificarse al inicio de windows, y busqué una forma de que no se pudiera iniciar ninguna otra aplicación, como el administrador de tareas, el utilman, ni el explorer, pues se debía autentificar desde la consola, antes de iniciar el explorer.

Pensé, que le podría molestar a alguien, si así fue, pido disculpas, aunque el código no es muy largo como para leerlo y saber el programa que ejecuta, y qué hace. (además muestra cómo utilizar argumentos, y como crear el string de una variable de entorno, en este caso: %windir%\system32 dónde se encuentra taskkill.exe

La ventaja de usar esto, antes de system(), es que system() llama a cmd.exe para realizar las acciones, y si tenemos deshabilitado el acceso al cmd.exe con el registro:

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System]
"DisableCMD"=dword:00000001


el programa hecho en c, dirá: "El administrador ha deshabilitado el símbolo de sistema", y se supone que es un programa hecho en c, no en batch.




Mahiques

#13
Cita de: carlitos.dll en 30 Agosto 2008, 04:48 AM
Sucede, que utilizé ese código para una aplicación llamada SCOT Secure Login (aún no se publica, y está en batch (de code-makers) la intención del programa es autentificarse al inicio de windows, y busqué una forma de que no se pudiera iniciar ninguna otra aplicación, como el administrador de tareas, el utilman, ni el explorer, pues se debía autentificar desde la consola, antes de iniciar el explorer.

Pensé, que le podría molestar a alguien, si así fue, pido disculpas, aunque el código no es muy largo como para leerlo y saber el programa que ejecuta, y qué hace. (además muestra cómo utilizar argumentos, y como crear el string de una variable de entorno, en este caso: %windir%\system32 dónde se encuentra taskkill.exe

La ventaja de usar esto, antes de system(), es que system() llama a cmd.exe para realizar las acciones, y si tenemos deshabilitado el acceso al cmd.exe con el registro:

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System]
"DisableCMD"=dword:00000001


el programa hecho en c, dirá: "El administrador ha deshabilitado el símbolo de sistema", y se supone que es un programa hecho en c, no en batch.





Y todo esto que tenia que ver con el tema ? ¬¬

Al tema Juan xD

En tu ultimo post el primer code que me pasaste al compilarlo sustituyendo bla.bla por FyQ.exe intento correrlo se compila sale el simbolo de system i 1 o 2 segundos despues se me devuelve el siguiente error : C:\Documents and settings ... ( la ruta )\FyQ.exe no es una aplicacion de win32 valida.

En el segundo que me pasaste lo compilo sustituyendo bla.bla por FyQ.exe y me da el siguiente error : C:\FyQ.exe no es una aplicacion valida para win32 valida.

El tercero que me pasaste tras corregir los return0 -> return 0 lo compilo i pega pantallazo de sysmbolo de systema añade una linea de codigo ... system("Pause"); y se lee en sysbolo d esystema " C:\prueva.txt no s reconoce como un comando interno o externo, programa o archivo por lotes ejecutable.

Uso el famoso compilador Dev C++ ... ;)


carlitos.dll

#14

#include <stdlib.h>

int main()
{
    system("pause");   
}


JuaN-ThE-HaCKeR

#15
Cita de: Mahiques en 30 Agosto 2008, 17:21 PM
Cita de: carlitos.dll en 30 Agosto 2008, 04:48 AM
Sucede, que utilizé ese código para una aplicación llamada SCOT Secure Login (aún no se publica, y está en batch (de code-makers) la intención del programa es autentificarse al inicio de windows, y busqué una forma de que no se pudiera iniciar ninguna otra aplicación, como el administrador de tareas, el utilman, ni el explorer, pues se debía autentificar desde la consola, antes de iniciar el explorer.

Pensé, que le podría molestar a alguien, si así fue, pido disculpas, aunque el código no es muy largo como para leerlo y saber el programa que ejecuta, y qué hace. (además muestra cómo utilizar argumentos, y como crear el string de una variable de entorno, en este caso: %windir%\system32 dónde se encuentra taskkill.exe

La ventaja de usar esto, antes de system(), es que system() llama a cmd.exe para realizar las acciones, y si tenemos deshabilitado el acceso al cmd.exe con el registro:

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System]
"DisableCMD"=dword:00000001


el programa hecho en c, dirá: "El administrador ha deshabilitado el símbolo de sistema", y se supone que es un programa hecho en c, no en batch.





Y todo esto que tenia que ver con el tema ? ¬¬

Al tema Juan xD

En tu ultimo post el primer code que me pasaste al compilarlo sustituyendo bla.bla por FyQ.exe intento correrlo se compila sale el simbolo de system i 1 o 2 segundos despues se me devuelve el siguiente error : C:\Documents and settings ... ( la ruta )\FyQ.exe no es una aplicacion de win32 valida.

En el segundo que me pasaste lo compilo sustituyendo bla.bla por FyQ.exe y me da el siguiente error : C:\FyQ.exe no es una aplicacion valida para win32 valida.

El tercero que me pasaste tras corregir los return0 -> return 0 lo compilo i pega pantallazo de sysmbolo de systema añade una linea de codigo ... system("Pause"); y se lee en sysbolo d esystema " C:\prueva.txt no s reconoce como un comando interno o externo, programa o archivo por lotes ejecutable.

Uso el famoso compilador Dev C++ ... ;)



Hola!

Bueno ya por lo menos encuentra el archivo.  :xD

En el primer y segundo código, el error "no es una aplicación Win32 válida." se debe a que el archivo FyQ.exe está mal compilado, corrupto, etc... Prueba abriéndolo manualmente (con manualmente me refiero a que lo abras como se ha hecho toda la vida, doble click en el archivo :xD), seguramente verás el mismo error, lo que quiere decir que el problema no está en el código, si no en el archivo FyQ.exe.  ;D

En el tercer código, el error está en que no encuentra el archivo, y al no encontrarlo se utiliza "C:\\prueba.txt" como un comando, y al no existir este comando te salta el error. Quizás el archivo que creaste es prueba.txt e intentaste abrir prueva.txt o cualquier otro fallo tonto. :xD

Saludos!  ;)



JuaN





Mahiques

Cita de: carlitos.dll en 30 Agosto 2008, 19:07 PM

#include <stdlib.h>

int main()
{
    system("pause");   
}



Como se supone que tengo que interpretar esto ? ¬¬

Por cierto Juan tienes razon el FyQ.exe corre perfectamente desde Dev C++ pero al doble click sale ese error ...

Boi a repararlo a ver que pasa i ya posteo ...

NekoOs

Perdonen si estoy reviviendo un tema muy antiguo pero quizas aun personas con este problema, la solucion es sencilla deben usar barras invertidas doble ya que por default c++ asimila a \ como un predico de caracteres especiales como "\n:=Cambio de linea"  :silbar: espero esto les sirva  ;D

Código (cpp) [Seleccionar]
#include<iostream>
#include <cstdlib>
using namespace std;

int main () {
system("C:\\WINDOWS\\MiPorgrama.exe");
return 0;
}


Por cierto aquí considerando que en la ruta no existen espacios. En cuyo caso existiesen espacios la solucion seria asi:

Código (cpp) [Seleccionar]
#include<iostream>
#include <cstdlib>
using namespace std;

int main () {
system("\"C:\\Documents and Settings\\Virulento\\Escritorio\\Doc3.docx\"");
return 0;
}


Recuerda que para c++ (") y (\) son caracteres especiales  ;) .