まもなく、起動オプション付きのプログラム、つまり私の場合はSteamを起動する必要があります。 私の小さなプログラムの初めにsystem()を使って起動しましたが、今はShellExecute()
で起動したいですが、何もしません。どんな助けもありがとう。ShellExecuteが機能していないか、何か間違っていますか?
マイコード:
#define STEAM_DIRECTORY "\"D:\\Programs\\Steam\\steam.exe\""
int main()
{
....
string runsteam_arg = STEAM_DIRECTORY;
runsteam_arg = runsteam_arg + " -login " + login[num - 1] + " " + pass[num - 1];
system(runsteam_arg.c_str());
}
編集:私は最後に実行するために必要なもの:
"D:\Programs\Steam\steam.exe" -login xxxx xxxx
そしてもう一つ、私が前に使ってきたどのような
#include <Windows.h>
#define STEAM_DIRECTORY "D:\\Programs\\Steam\\steam.exe"
int main()
{
....
string arguments = "- login " + login[num - 1] + " " + pass[num - 1];
ShellExecute(NULL, (LPCWSTR)"open", (LPCWSTR)STEAM_DIRECTORY, (LPCWSTR)arguments.c_str(), NULL, SW_SHOWMINIMIZED);
}
誰かがCoInitializeEx()
は何を説明することができますか?私はWindows APIが初めてです。
者(LPCWSTR)のみあなたはそれが間違ってやっていたことを知らせるから、コンパイラを停止キャスト、それはやりましたあなたがそれを間違えないようにしてください。 L "のようにUnicodeリテラルを作成するには、Lの前に接頭辞を付けます。または、ShellExecuteA()を使用します。また、winapi関数の戻り値を無視しないでください。 –