Как в Inno Setup имитировать перемещение мыши по системному трею?

Мне нужно, чтобы значок исчез из системного трея. Когда я навожу на него мышку, он исчезает. Могу ли я заставить Inno Setup имитировать движения мыши? Я нашел код Pascal в Интернете, но не могу запустить его в Inno. Может быть, я пропускаю что-то легкое.

uses 
.... probably not all of these are necessary, but jwawinuser is at least....
  JwaTlHelp32 {for running processes},
  JwaWinType {for processes declarations},
  JwaWinBase {just a guess: for closing process handles},
  JwaWinSvc {for services declarations, always required},
  jwawinuser {for clearing tray icon/notification area},
....
procedure CleanSystemTray;
  {description Clean dead icons from system tray/notification area}
var
  hNotificationArea: HWND;
  r: RECT;
  x: integer;
  y: integer;
begin
  hNotificationArea:=FindWindowEx(
    FindWindowEx(FindWindowEx(FindWindowEx
    (0,0,'Shell_TrayWnd', ''),0,'TrayNotifyWnd', ''),0,'SysPager',''),
    0,
    'ToolbarWindow32',
    'Notification Area');
  GetClientRect(hNotificationArea,r);

  //Now we've got the area, force it to update
  //by sending mouse messages to it.
  x:=0;
  y:=0;
  while x < r.Right do begin
    while y < r.Bottom do begin
      SendMessage(hNotificationArea, WM_MOUSEMOVE, 0, (y shl 16) + x);
      y:=y+5;
    end;
    x:=x+5;
  end;
end;  

person ees    schedule 24.09.2014    source источник
comment
Наведение мыши на них — это причуда, основанная на деталях реализации в Windows, и она не будет работать, если это скрытые значки. Вы действительно должны исправить приложение, которое дает сбой, и оставить значки на месте. Это также было дано в вашем предыдущем вопросе.   -  person Deanna    schedule 25.09.2014
comment
Ничего не рушится. Служба запускается и продолжает работать. Мне просто не нужна иконка в трее. К сожалению, у меня больше нет исходного кода сервиса.   -  person ees    schedule 25.09.2014
comment
Если процесс все еще запущен, то его перемещение ничего не изменит. Значок исчезнет только при событии мыши, если какой-либо процесс, который его создал, больше не работает.   -  person Deanna    schedule 25.09.2014
comment
Ты прав. Я немного покопался и оказалось, что мы выполняем программу от Inno, которая запускает службу. Иконку ставит программа, а не служба. Все это было сделано много лет назад людьми, покинувшими компанию. Что мне действительно нужно, так это запустить службу прямо из Inno и избежать всего этого беспорядка.   -  person ees    schedule 25.09.2014
comment
Вот untested translation этого кода. Но я бы предпочел довериться this project.   -  person TLama    schedule 25.09.2014
comment
Дина и @TLama, мне удалось решить проблему с помощью других средств, помимо очистки панели значков. Я не тестировал этот перевод кода TLama, но спасибо за публикацию. Сохраню в личном тайнике.   -  person ees    schedule 26.09.2014
comment
Это лучшее, что ты мог сделать. Тем не менее мне интересно, почему MS не решает эту проблему, если она известна хотя бы со времен Windows XP, или хотя бы предоставляет функцию ручной очистки этих бесхозных значков.   -  person TLama    schedule 26.09.2014