能力值:
( LV2,RANK:10 )
|
-
-
2 楼
替换资源中的相应文件。。
|
能力值:
( LV6,RANK:90 )
|
-
-
3 楼
请问有工具或者相关方法、教程吗
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
网上找找,EXE资源修改
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我以前试过,但是只能停留在运行之后改变小图标,没有深入探讨。
假如知道该窗口的名字,譬如上图的"Form1",则写一个简单的按钮调用下面的check_match("Form1"),即可。
当然该程序需要新建一个rc文件和图标文件image.ico ,在resource.h上添加一个宏,譬如#define ICO_ID 0x1000
而对应XX.rc 应该加上 ICO_ID ICON "image.ico"
int check_match(char *title)
{
HWND wHwnd;
wHwnd = GetDesktopWindow();
wHwnd = GetWindow(wHwnd, GW_CHILD);
while (wHwnd)
{
char name[256] = { 0 };
GetWindowText(wHwnd, name, 256);
if (!strcmp(title, name))
{
SendMessage(wHwnd, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(GetModuleHandle(NULL), (LPCTSTR)ICO_ID));
break;
}
wHwnd = GetWindow(wHwnd, GW_HWNDNEXT);
}
return 0;
}
check_match原理是遍历桌面上的所有子窗口,匹配title后得到该窗口句柄,发送WM_SETICON消息,改变图标。
理论上无论用C#还是mfc写Windows窗体,底层都是封装了C语言的API,都是消息处理机制。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
在没有源码,不是反编译组装的情况下想在默认的基础上添加一个窗体图标,还真是麻烦啊! 如果能反编译的话,网上到时有一些资源可以参考!!!
|
能力值:
( LV6,RANK:90 )
|
-
-
7 楼
可以用winhex手动修改但是麻烦很多
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
修改PE文件中资源段对应该图标的内容,改成想替换的图标的内容,,或者编程序修改,就像5楼的,先获得该窗口的句柄,再修改图标,
|
|
|