親プロセスの切り離し?
USBメモリ内で動作するプログラムから、パソコンにインストールされているプログラムを起動後、USBメモリ内にあるプログラムは自動的に終了するようにしています。
この状態で、"ハードウェアの安全な切り外し"で、USBメモリを停止できるようにしたいのですが、何かいい方法はないでしょうか?
試しにメモ帳を利用する、次のコンソールプログラムを作って、USBメモリ内で起動したところ、やはりUSBメモリを停止することができませんでした。
--
#include <windows.h>
int main(int argc, char* argv[])
{
BOOL bRes;
STARTUPINFO si={0};
PROCESS_INFORMATION pi={0};
si.cb = sizeof(STARTUPINFO);
if(CreateProcess(NULL,
"C:\\Windows\\notepad.exe C:\\a.txt",
NULL,NULL,FALSE,0,NULL,NULL,&si,&pi))
{
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
bRes=TRUE;
}
return 0;
}
--
※C:\\a.txtは適当なテキストファイルを作成して置いてます。
普段、秀丸エディタを使っているので、試しに
"C:\\Windows\\notepad.exe C:\\a.txt"
を
"C:\\Program Files\\Hidemaru\\Hidemaru.exe C:\\a.txt"
に変更した試したところ、USBメモリを停止することができました。
秀丸エディタだとUSBメモリを停止することができるので、起動される側のプログラムで何かすれば停止できるようになるとは思いますが、何をすればいいのかさっぱりわからず困っています。
お礼
バッチグー!です! ありがとうございました!! 1階の住人様!