Modifica il comportamento di NotifyIcon con tramite un'applicazione di terze parti

StackOverflow https://stackoverflow.com/questions/249319

  •  05-07-2019
  •  | 
  •  

Domanda

Sono sempre stato curioso di vedere se posso mostrare, nascondere o modificare un NotifyIcon creato da un'altra applicazione tramite un'applicazione C #.

Qualcuno potrebbe pubblicare un esempio su come farlo? :)

È stato utile?

Soluzione

Per modificare le icone nel systray, puoi usare Shell_NotifyIcon API Win32 ( Dichiarazione P / Invoke ). Le icone sono associate a una maniglia di finestra e un ID. Ciò significa che per modificare o nascondere l'icona di un altro programma, è necessario conoscere la finestra e l'id utilizzati da tale applicazione per registrarlo. Potresti essere in grado di forzarlo forzatamente enumerando tutte le finestre per quel processo ed effettuando chiamate con ogni handle e ogni numero tra 0 e 5000 migliaia, ad esempio, ma le tue possibilità di successo sono molto ridotte.

Altri suggerimenti

Puoi agganciare la finestra SystemTray stessa per intercettare tutte le richieste Shell_NotifyIcon (). Quindi conoscerai gli HWND e gli ID esatti registrati per ciascuna icona. I dettagli possono essere trovati tramite qualsiasi motore di ricerca.

Non sono a conoscenza di nulla, a meno che quell'altra applicazione non esponga un metodo pubblico o non provi a usare la riflessione, ma non sono nemmeno sicuro che puoi farlo su un processo in esecuzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top