VC++ で.bat起動
また、こちらを使わせていただきます。
VC++で.batファイルを起動しようとしていますが、cmdはあくのですが、.batが起動しません。他の参考にしてますが、なかなかたどり着きません。どなたか、アドバイスお願いいたします。
.bat fileは次のとおりです。
cd\Program Files\Wireshark>
tshark -i.2 greater 170 -a duration:2 -w....
tshark -v-r e:\Test\test5.pcap....
VC++は次のとおり
void CStartupapplicationView::OnBnClickedButtontest()
{
//cmdは、ShellExecuteでも、CreateProcessでも開けられますが、
//bat fileの起動がうまくいきません。
HINSTANCE ret = ShellExecute(m_hWnd,"open","cmd.exe",NULL,"c:\\Program Files\\Wireshark",SW_SHOWNORMAL);
ShellExecute(m_hWnd,"open","c:Program Files\\Wireshark\\test.bat",SW_SHOW);
//.batファイルは、c:Program Files\Wiresharkの下に入っています。//が、.Batは起動しません。
if (ret <= (HINSTANCE)32) AfxMessageBox("can not Shell.",MB_OK);
//別の方法
STARTUPINFO sinfo;
PROCESS_INFORMATION pinfo;
ZeroMemory(&sinfo,sizeof(STARTUPINFO));
ZeroMemory(&pinfo,sizeof(PROCESS_INFORMATION));
sinfo.cb=sizeof (STARTUPINFO);
sinfo.dwFlags=STARTF_USESHOWWINDOW;
sinfo.wShowWindow=SW_SHOWNORMAL;
if(!CreateProcess(NULL,_T("cmd.exe c:\\test2.bat "),
// test2.batは、Document and settings/-----------
//Startup applicationの下にはいっていますが、起動しません。
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&sinfo,
&pinfo));
{//起動失敗
}
//
補足
回答ありがとうございます。相対パスだと動作しますね。 本文には記述しなかったのですが、 将来プロパティファイルにてパスを管理して、ソースはさわらないようにしようと考えています。 そのときに相対パスでは管理しづらいかなと思いますので、できれば絶対パスにしたいと思っています。