私がやりたいのは、別の.exeから.exeを開くことです。私は本当にこれを行う方法がわからないので、インターネットを検索しました。インターネットからいくつかの推奨方法を試しましたが、うまくいきませんでした。
私のコードは次のとおりです。
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
system ("OpenFile.exe");
system ("pause");
return 0;
}
DEV C++で実行するとコンパイルされず、エラーが発生します。誰か助けてくれますか?
system()
の使用は常に避けるべきです
CreateProcess() を使用する必要があります。
Createprocess()を使用して、.exeを起動し、そのための新しいプロセスを作成することができます。アプリケーションは、呼び出し元のアプリケーションから独立して実行されます。
これが私のプロジェクトの1つで使用した例です。
#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 );
}
編集:取得しているエラーは、名前だけでなく.exeファイルのパスを指定する必要があるためです。 Openfile.exeはおそらく存在しません。
私はこれで大成功を収めました。
#include <iostream>
#include <windows.h>
int main() {
ShellExecute(NULL, "open", "path\\to\\file.exe", NULL, NULL, SW_SHOWDEFAULT);
}
興味があるなら、完全なドキュメントはこちらです:
http://msdn.Microsoft.com/en-us/library/bb762153(VS.85).aspx 。
これを試して:
#include <windows.h>
int main ()
{
system ("start notepad.exe") // As an example. Change [notepad] to any executable file //
return 0 ;
}
ファイル「openfile.exe」のフルパスを指定し、c:\ Users\username \を使用する代わりに、c:/ users/username/etc ....などのパスにスラッシュ「/」を入れないでください。など(Windows用)
これはあなたを助けるかもしれない
完全なパスを指定していないため、このエラーが発生しています。 (C:\ Users ...\file.exe)このエラーを削除する場合は、プロジェクト(.exe)が存在する/保存されているフォルダーに、完全なパスを指定するか、そのアプリケーション(開く)をコピーします。
#include <windows.h>
using namespace std;
int main()
{
system ("start C:\\Users\\Folder\\chrome.exe https://www.stackoverflow.com"); //for opening stackoverflow through google chrome , if chorme.exe is in that folder..
return 0;
}
実行可能パスにシステムコールに空白がある場合
#include<iostream>
using namespace std;
main()
{
system("Explorer C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe ");
system("pause");
}