私は簡単なウィンドウズcmdプログラムを作成しています。インスタンスが表示されます.. 私のコードで..名前付きミューテックス(名前はGUID)を追加..プログラムの2番目のインスタンスが開始された場合、それはあなたがすでにインスタンスを持っていることを伝えるメッセージを表示します実行中..Cmdウィンドウ間のフォーカスを切り替え、フォーカスを強制する(プログラム実行中に1つの瞬間を保ちます)
メッセージを表示する代わりに、自動的に既に実行中のプロセス(ウィンドウ)を見つけ、フォーカスを切り替えてから閉じることができます。
今私は使用しようとしています
FindWindow(NULL,window_name);
SetForegroundWindow(window);
ただし、(タスクマネージャーから)ウィンドウ名を渡すと、見つからない!!! エラー:未使用:S が奇妙で、 私はさらにタスクマネージャの名前を使用しようとしました。それでもそれを見つけることはできませんでした!
私は何かを指摘することができますが、どこが間違っていましたか? :) あなたがそのような仕事をする他の方法を考えることができるなら、私に教えてください。
注:仕事中の友人は、私にenumwindowsを使用するように言った、それは良い選択ですか?それについて)... thx多く!
私はすでにチュートリアルを以前に見つけましたが、役に立たなかったのです。 私の問題は技術そのものではなく、窓。 あなたの努力のためにthxがたくさんあります.. –
まあ、それは記事がFindWindowメソッドの信頼性について言うものです。多くの場合、ウインドウタイトルに表示される非常に正確なテキストをチェックしないことがあります。だから、この記事ではいくつかの選択肢を提案しています。 –