ITaskbarList3::SetProgressValue()
cmd.exe内で呼び出されたときに正常に機能するメソッドを使用するコンソールアプリケーションを開発しましたが、コンソール内で呼び出されたときに進行状況は表示されませんConemu
。エラーメッセージもどこにも発生しません。のHWND
パラメータとして渡されるのITaskbarList3::SetProgressValue()
は次のようになります。
HWND hwnd = GetConsoleWindow();
これを行うための代替方法や何が問題になるかわからないため、表示するコードがありません。返されたHWNDは私のアプリケーションではなくconemuのものである可能性があると思ったので、GetWindowText()
関数を呼び出してウィンドウのテキストがコンソールアプリケーション以外であるかどうかを確認しましたが、それはcmdと同じ形式の文字列でした。
ConEmuでコンソールアプリケーションを実行するGetConsoleWindow()
と、ネイティブのコンホストHWNDではなく仮想コンソールHWNDが返されます。ただし、SetProgressValue()
仮想コンソールはConEmuの子ウィンドウ(タスクバーに表示されます)であり、conhost HWNDも表示されないため、どちらも適切に送信されます。
をGetConsoleWindow()
呼び出す前に、の親を取得するだけですSetProgressValue()
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加