Diskuze: Dockable pro soubory
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 15 zpráv z 15.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj,
umísťování aplikací uděláš napříkad takto:
http://www.jonasjohn.de/…-example.htm
Poté si je zapíšeš do souboru -> jejich pozici, jméno a cestu k souboru,
který se má spustit. To pak budeš vždy při spouštění načítat.
A šlo by to i jako ikonu? Resp - jak získat ikonu z onoho souboru. Děkuji
Tak určitě.
Zkus toto, to používám v IconChangeru:
[DllImport("shell32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Winapi)]
private static extern int PickIconDlg(IntPtr hwndOwner, System.Text.StringBuilder lpstrFile, int nMaxFile, ref int lpdwIconIndex);
[DllImport("shell32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Winapi)]
public static extern IntPtr ExtractIcon(IntPtr hInstance, string strFileName, uint uiIconIndex);
private void button2_Click(object sender, EventArgs e)
{
string iconfile;
int iconindex = 0;
int retval;
System.Text.StringBuilder sb;
iconfile = Environment.GetFolderPath(Environment.SpecialFolder.System);
iconfile = iconfile + @"\shell32.dll";
sb = new System.Text.StringBuilder(iconfile, 500);
retval = PickIconDlg(this.Handle, sb, sb.Capacity, ref iconindex);
iconfile = sb.ToString();
path = iconfile + "," + iconindex;
Graphics g = pictureBox1.CreateGraphics();
g.Clear(this.BackColor);
g.DrawIcon(extractIcon(iconfile, iconindex), new Rectangle());
textBox1_TextChanged(sender, e);
}
public static Icon extractIcon(string strPath, int nIndex)
{
Icon icon = null;
IntPtr hIcon = ExtractIcon(IntPtr.Zero, strPath, (uint)nIndex);
if (IntPtr.Zero != hIcon)
{
icon = Icon.FromHandle(hIcon);
}
return icon;
}
Ten uint index - o co jde? Mě to totiž nejde - dal jsem ho 1 (možná v tom chyba není,...), ... Děkuji
Nemusíš nic nastavovat. To jen zkopíruješ. Pak tlačítko, kterému přiřadíš ten kód co je v ukázce bude vyvolávat okýnko pro výběr ikonky.
Vyřešeno:
pictureBox1.Image = Image.FromHbitmap(Icon.ExtractAssociatedIcon(cesta).ToBitmap().GetHbitmap());
Jen se nepřenesou průhledné pixely (bitmapa nemá alfakanál) - není jiná možnost? Děkuji.
Jako ty chceš jen vytáhnout ze souboru ikonku jo?
Tak to pak:
Icon.ExtractAssociatedIcon()
A tam není možnost dát si to jako png?
Nebo to vykresluj přes Graphic:
g.DrawIcon(extractIcon(iconfile, iconindex), new Rectangle());
Díval si se na ten příklad co jsem ti posílal?
Graphics g = pictureBox1.CreateGraphics();
g.Clear(this.BackColor);
g.DrawIcon(extractIcon(iconfile, iconindex), new Rectangle());
No jo - ale nevím co s tím. Jak to vykreslit v pictureboxu? Děkuji.
A proč to nemůžeš udělat tak jak sem ti napsal? Sem ti poslal hotový
řešení stačí to jen zkopírovat. Tady se můžeš podívat jak to
funguje:
http://www.itnetwork.cz/index.php?…
Vyřešeno :
pictureBox1.Image = Icon.ExtractAssociatedIcon(cesta).ToBitmap();
Zobrazeno 15 zpráv z 15.