強制終了後のタスクトレイのアイコンを消す

強制終了させるとタスクトレイにアイコンが残り、困っていた。
マウスをタスクトレイに移動させると消えるのだが、アイコンの残骸を自動的に消す方法はないものか?

あれこれ情報収集してみたが、確実な方法はないようだ

仕方なく、Delphiでタスクトレイにマウスカーソルが移動するツールを作ってみた。

ソースは以下の通りで、フォームを作成し、そのonCreateメソッドに下記の数行をいれ、メインフォームを非表示にする

procedure TForm3.FormCreate(Sender: TObject);
var I:integer;
begin
  for I := 0 to Screen.Width div 10 div 2 do begin   // 画面の半分で下側から15ピクセルの位置から10ピクセル毎にマウスを右側に移動させる
    Sleep(1);
    SetCursorPos(Screen.Width div 2 + I * 10 ,Screen.Height - 15); 
  end;
    application.Terminate;
end;

メインフォームを非表示するには下記の1文をプロジェクトソースに追加する

  Application.ShowMainForm := False;

注意:上記のソースはタスクバーが画面の下側に1行で表示されている場合だけ有効です。
タスクバーを2行にしたり、自動で隠すを指定したり、タスクバーを画面下部以外(左右、上部)で表示している場合は
効果はありません。そのような場合は、マウスの移動場所をソースを修正して変更する必要があります。

◆実行ファイル
http://u670.com/download/tasktraycleaner.zip

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です