HANAと申します。
COMポートをCreateFile()を用いてオープンする際に、
既に別のアプリケーションによってオープンされていてエラーに
なってしまいます。通常クローズする際にCloseHandle()を使用して
クローズすれば良いと思うのですが、
別のアプリケーションでオープンされたポートをクローズする方法には
どうすれば良いのでしょうか?
宜しくお願い致します。
そのアプリケーションでCloseHandleで閉じます。
無理やり閉じたい場合は、そのアプリケーションを終了させます。
REEさん、ありがとうございます。
度々、聞いて申し訳ないですが、
アプリケーションから、別のアプリケーションを
無理やり閉じる場合はどのような処理をすれば良いでしょうか?
宜しくお願い致します。
原則として、別のアプリケーションの方で閉じる操作をする/してもらうか、
終了操作をする/してもらうということになります。
# ユーザに無断で、勝手に動作中の別アプリを終了させるようなことは、
# 通常、したらまずいと考えられます。無理やり作業中断とかされたら
# 怒るでしょう。
その上で、どうしても外からということであれば、
・コンソールならシグナルを送りつける。
・ウィンドウなら WM_CLOSE を送りつける。
等を試みてみるとか。
あくまで、別アプリ自体に閉じてもらうのが基本です。
そのアプリの終了確認などのプロセスを経ることは重要。
# 安易に外から強制終了とかすると、そのアプリのデータ保存とか
# できなくなりますし、大損害を与える可能性も…。
# TerminateProcess 等の使用は、お勧めできません。
Banさん、ありがとうございます。
そうですね。
あまり無理やり閉じるのは、好ましくは無いですね。
別アプリ自体で終了する方法を考えてみます。
ありがとうございました。