vc如何抓取任务栏上应用程序图标

vc如何抓取任务栏上应用程序图标,第1张

stdafx.h中加入用户自定义消息

#define WM_SHOWTASK WM_USER+100

应用程序头文件中加入

afx_msg LRESULT onShowTask(WPARAM wParam,LPARAM lParam)//函数定义

BEGIN_MESSAGE_MAP(CMy3DDlg, CDialog)

//{{AFX_MSG_MAP(CMy3DDlg)

:

ON_MESSAGE(WM_SHOWTASK,onShowTask) //加入对自定义消息的绑定线程

END_MESSAGE_MAP()

最后是对于应用程序图标的抓取,这里是我在工作中写过的一个例子,程序执行后在任务栏上显示一个图标,可以对图标进行鼠标 *** 作

RESULT CMy3DDlg::onShowTask(WPARAM wParam,LPARAM lParam)

//wParam接收的是图标的ID,而lParam接收的是鼠标的行为

{

if(wParam!=IDR_MAINFRAME)

return 1

switch(lParam)

{

case WM_RBUTTONUP://右键卜肢起来时d出快捷菜单,这里只有一个“关闭”

{

LPPOINT lpoint=new tagPOINT

::GetCursorPos(lpoint)//得到鼠标位置丛亮

CMenu menu

menu.CreatePopupMenu()//声型郑世明一个d出式菜单

//增加菜单项“关闭”,点击则发送消息WM_DESTROY给主窗口(已隐藏),将程序结束。

menu.AppendMenu(MF_STRING,WM_DESTROY,"关闭")

//确定d出式菜单的位置

menu.TrackPopupMenu(TPM_LEFTALIGN,lpoint->x,lpoint->y,this)

//资源回收

HMENU hmenu=menu.Detach()

menu.DestroyMenu()

delete lpoint

}

break

case WM_LBUTTONDBLCLK://双击左键的处理

{

this->ShowWindow(SW_SHOW)//简单的显示主窗口完事儿

DeleteTray()

}

break

}

return 0

}

若满意请及时采纳,谢谢

Icon

icon

=

System.Drawing.Icon.ExtractAssociatedIcon(@"友哗首C:\Program

Files\腾讯游戏\QQ飞车\QQSpeedLauncher.exe")

pictureBox1.Image

=

icon.ToBitmap()

我都试了下这个简单,非好数托管需芦毁要destory但是我不知道在哪儿释放掉非托管资源

用Resource Hacker提取图标。

1.运行ResourceHacker.exe,点File—Open,悄汪打开一个exe文件。

2.点Bitmap左边的三角形图标,选一个你想保存的,右边有预览。

3.在128:1033上点右键—Save *.bmp resource保存为一个无损位图格式。

上面提取的是工具栏悔运如图片,接下来就是程序图标组的提取了。

4.点碧启Icon Group左边的三角形图标。

5.在128:1033上点右键—Save *.ico resource保存为一个图标文件。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12233985.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存