半日かけて探して、やっと諦めました。
実行可能なjarを作成するJavaアプリケーションがあります(他のライブラリを含めて、単一のjarファイルを作成するため)。launch4j と実行可能な jar を使用して、実行可能な "MyApp.exe" を作成しています。
実行可能ファイルは正常に動作していますが、Windows 7 のタスクバーに固定したいと考えています。今のところ、タスクバーのエントリは「ウィンドウを閉じる」だけです。
JNAで次のソリューションを読んで実装した後
私のアプリケーションは、GUIに「アプリケーションユーザーモデルID」を正しく表示します(テスト目的のみ)。
しかし、私のプログラムはタスク マネージャーで「javaw.exe」として表示され、launch4j オプションの「カスタム プロセス名と XP スタイル マニフェスト」を設定しても、タスクバーにピン留めできません。
背景情報: Windows 7 の管理者アカウントで作業していますが、アプリに管理者権限を要求したくありません。
とにかく、コンテキストメニューから「管理者として」アプリを起動し、UACメッセージを確認すると、タスクバーにピン留めできるようになりました。しかし、「アプリケーション ユーザー モデル ID」を適切に設定しても、プログラムが TaskManager で「MyApp.exe」として表示されているにもかかわらず、Windows は「javaw.exe」をピン留めしようとします。
私は完全に混乱しています。しかし、これらの問題を抱えているのは明らかに私だけではありません。=> 「 JNA を使用してアプリケーション識別子を取得/設定する」の Gregory Pakosz の回答に対する最後のコメントを参照してください。
最終的な質問:
- 「アプリケーションユーザーモデルID」(https://stackoverflow.com/a/1928830/1128689)を設定するためのJNAを使用したGregory Pakoszの方法は、私のために働いています。それでも、Windows は私のアプリを「javaw.exe」のインスタンスとして認識します。他に何をしなければなりませんか?
- いくつかのウィンドウまたは Java の更新により、ここで何かが壊れた可能性がありますか?
- 昇格されたユーザー権限でアプリを実行する必要がありますか? 本当にしたくない...
- launch4j に設定しなければならないオプションがいくつかありますか?
- launch4j でマニフェスト ファイルを使用する必要がありますか?