anchor.diff:  
   const
     CTaskFolderName = 'Keyman';
  +
  +class procedure TKeymanStartTaskUninstall.ReportEvent(const Message: string);
  +var
  +  hEventLog: THandle;
  +begin
  +  kl.LogError(Message);
  +  hEventLog := RegisterEventSource(nil, 'Keyman-Uninstall');
  +  Winapi.Windows.ReportEvent(
  +    hEventLog,
  +    EVENTLOG_ERROR_TYPE,
  +    1,
  +    1,
  +    nil,
  +    0,
  +    Length(Message) * sizeof(Char),
  +    nil,
  +    PChar(Message)
  +  );
  +  CloseHandle(hEventLog);
  +end;
   
   class procedure TKeymanStartTaskUninstall.DeleteAllTasks;
   var
  
positive.code:       on E:Exception do
        begin
          // We can't find the folder, for some unknown reason, so give up
          kl.LogError('Failed to find '+CTaskFolderName+' task folder: '+E.ClassName+', '+E.Message);
          Exit;
        end;
      end;
  
negative.code:       // Silently ignore errors; this is cleanup that won't really hurt but
        // just be a little messy if it fails -- the scheduled task will never
        // be triggered as the relevant event will never be added!
        ReportEvent('Failed to delete '+CTaskFolderName+' task folder: '+E.ClassName+', '+E.Message);
      end;
    end;
  end;
  