portable - programacion en dev c++ manuales
¿Cómo abro un.exe de otro C++.exe? (6)
Cuando la ruta ejecutable tiene espacios en blanco en la llamada del sistema!
#include<iostream>
using namespace std;
main()
{
system("explorer C://Program Files//Google//Chrome//Application//chrome.exe ");
system("pause");
}
Lo que quiero hacer es abrir un archivo .exe desde otro archivo .exe. Realmente no sé cómo hacer esto, así que busqué en internet. Intenté algunos métodos sugeridos desde Internet, pero no funcionó.
Aquí está mi código:
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
system ("OpenFile.exe");
system ("pause");
return 0;
}
Cuando lo ejecuto en DEV C ++, no se compila y aparece un error. ¿Puede alguien ayudarme por favor?
Está recibiendo este error porque no está dando la ruta completa. (C: / Users ... / file.exe) Si desea eliminar este error, proporcione la ruta completa o copie la aplicación (que desea abrir) en la carpeta donde está presente / guardado su proyecto (.exe).
#include <windows.h>
using namespace std;
int main()
{
system ("start C://Users//Folder//chrome.exe https://www..com"); //for opening through google chrome , if chorme.exe is in that folder..
return 0;
}
He tenido un gran éxito con esto:
#include <iostream>
#include <windows.h>
int main() {
ShellExecute(NULL, "open", "path//to//file.exe", NULL, NULL, SW_SHOWDEFAULT);
}
Si estás interesado, la documentación completa está aquí:
http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx .
Proporcione la ruta completa del archivo ''openfile.exe'' y recuerde no colocar una barra inclinada ''/'' en la ruta como c: / users / username / etc .... en lugar de usar c: / Users / username / etc (para ventanas)
Puede ser que esto te ayude
Prueba esto:
#include <windows.h>
int main ()
{
system ("start notepad.exe") // As an example. Change [notepad] to any executable file //
return 0 ;
}
Siempre debes evitar usar system()
porque
- Es un recurso pesado
- Derrota la seguridad: no sabe que es un comando válido o hace lo mismo en todos los sistemas, incluso podría iniciar programas que no tenía la intención de iniciar. El peligro es que cuando ejecuta un programa directamente, obtiene los mismos privilegios que su programa, lo que significa que, por ejemplo, si se ejecuta como administrador del sistema, el programa malicioso que acaba de ejecutar inadvertidamente también se ejecuta como administrador del sistema. Si eso no te asusta, revisa tu pulso.
- Los programas antivirus lo odian, su programa podría ser marcado como un virus.
Debe utilizar CreateProcess() .
Puede usar Createprocess () para iniciar un archivo .exe y crear un nuevo proceso para él. La aplicación se ejecutará independientemente de la aplicación que llama.
Aquí hay un ejemplo que utilicé en uno de mis proyectos:
#include <windows.h>
VOID startup(LPCTSTR lpApplicationName)
{
// additional information
STARTUPINFO si;
PROCESS_INFORMATION pi;
// set the size of the structures
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
// start the program up
CreateProcess( lpApplicationName, // the path
argv[1], // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
0, // No creation flags
NULL, // Use parent''s environment block
NULL, // Use parent''s starting directory
&si, // Pointer to STARTUPINFO structure
&pi // Pointer to PROCESS_INFORMATION structure (removed extra parentheses)
);
// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
}
EDIT: El error que está recibiendo es porque necesita especificar la ruta del archivo .exe, no solo el nombre. Openfile.exe probablemente no existe.