<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Manipulating Taskbar Buttons</title>
	<atom:link href="http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/feed/" rel="self" type="application/rss+xml" />
	<link>http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/</link>
	<description>Slightly Advanced Computer Stuff (and some magic)</description>
	<lastBuildDate>Sat, 21 Nov 2009 04:22:17 +0200</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: White Shadow</title>
		<link>http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/comment-page-1/#comment-12166</link>
		<dc:creator>White Shadow</dc:creator>
		<pubDate>Thu, 03 Jul 2008 12:15:17 +0000</pubDate>
		<guid isPermaLink="false">http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/#comment-12166</guid>
		<description>Probably not :P</description>
		<content:encoded><![CDATA[<p>Probably not <img src='http://w-shadow.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Elton</title>
		<link>http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/comment-page-1/#comment-12165</link>
		<dc:creator>Elton</dc:creator>
		<pubDate>Thu, 03 Jul 2008 11:56:33 +0000</pubDate>
		<guid isPermaLink="false">http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/#comment-12165</guid>
		<description>Hi

Can anybody supply me with a fulle working demo code project on grouping buttons of different applications on the Windows taskbar? 
I&#039;m using Delphi 6.

Thanks in advance
Elton</description>
		<content:encoded><![CDATA[<p>Hi</p>
<p>Can anybody supply me with a fulle working demo code project on grouping buttons of different applications on the Windows taskbar?<br />
I&#8217;m using Delphi 6.</p>
<p>Thanks in advance<br />
Elton</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: White Shadow</title>
		<link>http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/comment-page-1/#comment-11510</link>
		<dc:creator>White Shadow</dc:creator>
		<pubDate>Tue, 11 Mar 2008 17:00:21 +0000</pubDate>
		<guid isPermaLink="false">http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/#comment-11510</guid>
		<description>Eh, I think I&#039;d need to re-read and re-research it all to be able to update this article. I haven&#039;t done anything of this kind for a long time, mostly focused on web programming now.</description>
		<content:encoded><![CDATA[<p>Eh, I think I&#8217;d need to re-read and re-research it all to be able to update this article. I haven&#8217;t done anything of this kind for a long time, mostly focused on web programming now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Andrew Ditthardt</title>
		<link>http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/comment-page-1/#comment-11509</link>
		<dc:creator>Robert Andrew Ditthardt</dc:creator>
		<pubDate>Tue, 11 Mar 2008 16:12:48 +0000</pubDate>
		<guid isPermaLink="false">http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/#comment-11509</guid>
		<description>typedef struct tagNMTOOLBAR {
        NMHDR          hdr;
        //Command identifier of the button 
        //associated with the notification
        int            iItem;
        TBBUTTON       tbButton;
        int            cchText;
        LPTSTR         pszText;
        RECT           rcButton; //Version 5.80
} NMTOOLBAR, FAR* LPNMTOOLBAR;

My coworker found this while trying to prove me wrong about MS&#039; documentation on this subject. He succeeded in proving me wrong about the point I was trying to make, but at the same time proved the larger issue of MS documentation sucking right =P

This is the dwData structure in the TTBButtonInfo when talking about the taskbar, it says user defined because it really is...user defined. It can be any type of structure but by default it is an NMTOOLBAR for explorer.exe&#039;s taskbar.

As a sidenote, please update this guide. It has been invalueable for me in writing an app I&#039;m working on right now, and I&#039;m sure it will be for anyone else.</description>
		<content:encoded><![CDATA[<p>typedef struct tagNMTOOLBAR {<br />
        NMHDR          hdr;<br />
        //Command identifier of the button<br />
        //associated with the notification<br />
        int            iItem;<br />
        TBBUTTON       tbButton;<br />
        int            cchText;<br />
        LPTSTR         pszText;<br />
        RECT           rcButton; //Version 5.80<br />
} NMTOOLBAR, FAR* LPNMTOOLBAR;</p>
<p>My coworker found this while trying to prove me wrong about MS&#8217; documentation on this subject. He succeeded in proving me wrong about the point I was trying to make, but at the same time proved the larger issue of MS documentation sucking right =P</p>
<p>This is the dwData structure in the TTBButtonInfo when talking about the taskbar, it says user defined because it really is&#8230;user defined. It can be any type of structure but by default it is an NMTOOLBAR for explorer.exe&#8217;s taskbar.</p>
<p>As a sidenote, please update this guide. It has been invalueable for me in writing an app I&#8217;m working on right now, and I&#8217;m sure it will be for anyone else.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: White Shadow</title>
		<link>http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/comment-page-1/#comment-9128</link>
		<dc:creator>White Shadow</dc:creator>
		<pubDate>Thu, 01 Nov 2007 17:31:42 +0000</pubDate>
		<guid isPermaLink="false">http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/#comment-9128</guid>
		<description>Hey Ramkey, 

Nope, sorry. I don&#039;t usually program in VC++. 

There might be something in &lt;a href=&#039;http://msdn.microsoft.com/&#039; rel=&quot;nofollow&quot;&gt;MSDN&lt;/a&gt; that you could use.</description>
		<content:encoded><![CDATA[<p>Hey Ramkey, </p>
<p>Nope, sorry. I don&#8217;t usually program in VC++. </p>
<p>There might be something in <a href='http://msdn.microsoft.com/' rel="nofollow">MSDN</a> that you could use.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ramkey</title>
		<link>http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/comment-page-1/#comment-9123</link>
		<dc:creator>Ramkey</dc:creator>
		<pubDate>Thu, 01 Nov 2007 16:00:41 +0000</pubDate>
		<guid isPermaLink="false">http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/#comment-9123</guid>
		<description>Hi White Shadow,

Nice article! Do you have any sample code in VC++ to retrieve Button Title &amp; Setting New Button Title. I am currently customizing a Microsoft Management Console and want to change a few Menu items.

Thanks in Advance!
Ramkey</description>
		<content:encoded><![CDATA[<p>Hi White Shadow,</p>
<p>Nice article! Do you have any sample code in VC++ to retrieve Button Title &amp; Setting New Button Title. I am currently customizing a Microsoft Management Console and want to change a few Menu items.</p>
<p>Thanks in Advance!<br />
Ramkey</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rafbeassy</title>
		<link>http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/comment-page-1/#comment-7235</link>
		<dc:creator>Rafbeassy</dc:creator>
		<pubDate>Wed, 03 Oct 2007 06:22:56 +0000</pubDate>
		<guid isPermaLink="false">http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/#comment-7235</guid>
		<description>+à+++à+Õ+à+Æ+à+Õ+àòÄÖ]+àòÀÝ+à+</description>
		<content:encoded><![CDATA[<p>+à+++à+Õ+à+Æ+à+Õ+àòÄÖ]+àòÀÝ+à+</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: valleyman86</title>
		<link>http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/comment-page-1/#comment-2861</link>
		<dc:creator>valleyman86</dc:creator>
		<pubDate>Wed, 27 Jun 2007 16:48:20 +0000</pubDate>
		<guid isPermaLink="false">http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/#comment-2861</guid>
		<description>Thanks a ton. Your article has been invaluable to me.</description>
		<content:encoded><![CDATA[<p>Thanks a ton. Your article has been invaluable to me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: White Shadow</title>
		<link>http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/comment-page-1/#comment-2838</link>
		<dc:creator>White Shadow</dc:creator>
		<pubDate>Tue, 26 Jun 2007 21:24:18 +0000</pubDate>
		<guid isPermaLink="false">http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/#comment-2838</guid>
		<description>data[5] only contains the executable name if the button is a group.
It has been a while since I wrote this post so some specifics have faded from memory.

You could get *an icon* by finding the exe file for the process that created the window using the window handle and extracting the icon from the file. Read about how to find the exe here - &lt;a href=&#039;http://www.cs.bgsu.edu/drhutch/otherinfo/appnamefromhwnd.html&#039; rel=&quot;nofollow&quot;&gt;http://www.cs.bgsu.edu/drhutch/otherinfo/appnamefromhwnd.html&lt;/a&gt;

That might not be the exact window&#039;s icon but it&#039;s better than nothing.</description>
		<content:encoded><![CDATA[<p>data[5] only contains the executable name if the button is a group.<br />
It has been a while since I wrote this post so some specifics have faded from memory.</p>
<p>You could get *an icon* by finding the exe file for the process that created the window using the window handle and extracting the icon from the file. Read about how to find the exe here &#8211; <a href='http://www.cs.bgsu.edu/drhutch/otherinfo/appnamefromhwnd.html' rel="nofollow">http://www.cs.bgsu.edu/drhutch/otherinfo/appnamefromhwnd.html</a></p>
<p>That might not be the exact window&#8217;s icon but it&#8217;s better than nothing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: valleyman86</title>
		<link>http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/comment-page-1/#comment-2831</link>
		<dc:creator>valleyman86</dc:creator>
		<pubDate>Tue, 26 Jun 2007 17:01:34 +0000</pubDate>
		<guid isPermaLink="false">http://w-shadow.com/blog/2006/10/01/manipulating-taskbar-buttons/#comment-2831</guid>
		<description>Hi. I am having a hard time getting the icon. It seems wm_geticon does not ever work, and GetClassLong(wHnd, GCL.HICONSM); or GetClassLong(wHnd, GCL.HICON); does. But I noticed in a rare case (remote desktops input capture window) does not get the icon and it crashes. I tried every method you suggested but I cant seem to get the information I need. I tried using ImageList_GetIcon but it always returns 0. I was giving it a valid handle from TB_GETIMAGELIST. I then tried to use ExtractIcon but I was unable to get the path to the executable from data[5]. I tried to read all the bytes from dwdata but the only readable text I found was part of the buttons name. I&#039;m probably doing something wrong so I was wondering if you could help. Btw I am using c# and the readprocessmemory method of code injection.</description>
		<content:encoded><![CDATA[<p>Hi. I am having a hard time getting the icon. It seems wm_geticon does not ever work, and GetClassLong(wHnd, GCL.HICONSM); or GetClassLong(wHnd, GCL.HICON); does. But I noticed in a rare case (remote desktops input capture window) does not get the icon and it crashes. I tried every method you suggested but I cant seem to get the information I need. I tried using ImageList_GetIcon but it always returns 0. I was giving it a valid handle from TB_GETIMAGELIST. I then tried to use ExtractIcon but I was unable to get the path to the executable from data[5]. I tried to read all the bytes from dwdata but the only readable text I found was part of the buttons name. I&#8217;m probably doing something wrong so I was wondering if you could help. Btw I am using c# and the readprocessmemory method of code injection.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
