Domanda

C'è un modo per cambiare l'icona della barra delle applicazioni di un browser in Windows?

apro un sacco di finestre del browser, e mi piace del gruppo siti simili (in schede) di finestra. Così mi chiedevo se ci fosse un modo per assegnare un icona sulla barra delle applicazioni a loro in modo che si può più facilmente distinguere tra di loro.

È stato utile?

Soluzione

Ecco qualcosa che ho messo insieme in meno di 5 minuti per cambiare l'icona su una finestra specifica. Si potrebbe facilmente utilizzare questo codice per creare una WinForm che enumerare le finestre aperte e consentono di assegnare icone arbitrari a loro. (C # codice qui sotto)

[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern IntPtr FindWindow(string strClassName, string strWindowName);

[DllImport("user32.dll",CharSet=CharSet.Auto)]  
private static extern int SendMessage(IntPtr hWnd, int wMsg, IntPtr wParam, IntPtr lParam); 

[DllImport("user32.dll")] 
public static extern int DrawMenuBar(int currentWindow);


const int WM_GETICON = 0x7F;
const int WM_SETICON = 0x80;
const int ICON_SMALL = 0; //16
const int ICON_BIG = 1; //32

public static void SetIcon()
{
    //Load an icon. This has to be a *.ico.
    System.Drawing.Icon i = new Icon("path\to\icon");
    //Find the target window. The caption must be entered exactly 
    //as it appears in the title bar
    IntPtr hwnd = FindWindow(null, "Caption of Target Window");
    //Set the icon
    SendMessage(hwnd, WM_SETICON, (IntPtr)ICON_SMALL, (IntPtr)i.Handle);
    //Update the title bar with the new icon. Note: the taskbar will
    //update without this, you only need this if you want the title
    //bar to also display the new icon
    DrawMenuBar((int)hwnd);
}

Altri suggerimenti

Credo che la barra delle applicazioni utilizza la risorsa sull'icona incorporato nel file eseguibile. Ho cercato di creare più collegamenti a Internet Explorer, ciascuno con un'icona di collegamento unico, ma tutti avevano la stessa icona, quando ha aperto nella barra delle applicazioni.

Credo che avrei dovuto eseguire più istanze del file eseguibile del browser, e ognuno avrebbe dovuto avere una diversa risorsa di un'icona incorporato.

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