如何在任务栏上增加一个类似于开始按钮的按钮,可参考360软件小助手或QQ桌面小助手 本帖最后由 Gary87517 于 2013-01-21 16:13:41 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那个位置你可以用 API 操作,你可以去 google 快捷启动栏http://shimengzhen1998.blog.163.com/blog/static/166869889201011298412540/ 他其实是一个lnk 而已 楼上说的不对,它肯定不是个lnk。它是在开始按钮和快捷启动栏之间的。而且你提供的博客连接方法我也试过了,跟它简直是两码事。继续,这是我第二次问问这个问题。上次在5月份,看看过了半年技术更新了没有,上次也是没有结果。 你的意思是在开始按钮旁边在写一个开始开始么这个可能需要映射win7系统内部的核心函数吧复制一个开始按钮 重写事件么?我不是很懂这个 WPF 4 开发Windows 7 任务栏(Overlay Icon、Thumbnail Toolbar、Progress Bar)Gnie写的很好了http://www.cnblogs.com/gnielee/archive/2010/03/21/windows7-develop-summary.html 5楼的也不是我想要的。难道就没有人用过这2款软件?我感觉思路应该是获取到系统Menu的句柄(GetSystemMenu)然后在这个Menu上增加按钮 关注下。八成就是一个API的事,但不知道就是不知道= = 我觉得扒翻windows7开发接口会有收获 你感觉那个啥呢,不如看msdn的帮助吧 void treeView1_DragDrop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { files = (string[])(e.Data.GetData(DataFormats.FileDrop)); } } void treeView1_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.All; } 本帖最后由 bdmh 于 2013-01-23 14:04:21 编辑 这个 很明显是 远程线程注入做的, 注入explorer.exe, 要32 和64为2个dll, 子类化 任务栏窗口过程,在自己的 窗口过程中实现 逆向分析了360助手的代码,得到的方法就是程线程注入explorer.exe做的 直接创建的话 会有问题的,钩子dll注入,m_hwndTask为你创建的窗口 1.子类化m_oldWndProcTask = (WNDPROC)GetWindowLong(m_hwndTask, GWL_WNDPROC);SetWindowLong(m_hwndTask, GWL_WNDPROC, (LONG)WndProcTask);WndProcTask里面自己处理WM_WINDOWPOSCHANGING消息,在这个消息里面调整位置其他的消息交给系统处理 CallWindowProc(m_oldWndProcTask, hwnd, message, wParam, lParam);2.子类化 MSTaskListWClass, 同上处理LRESULT CALLBACK WndProcTask(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ switch(message) { case WM_WINDOWPOSCHANGING: // restrict size and position {//位置处理 } return CallWindowProc(m_oldWndProcTask, hwnd, message, wParam, lParam);}void UnSubclassStartButton(void){if(m_hwndTask && IsWindow(m_hwndTask) && m_oldWndProcTask)SetWindowLong(m_hwndTask, GWL_WNDPROC, (LONG)m_oldWndProcTask); m_oldWndProcTask = NULL;}idThread = GetWindowThreadProcessId(hwndTaskbar, NULL); // 给任务栏安装一个hookg_hhook = SetWindowsHookEx(WH_CALLWNDPROC, (HOOKPROC)CallWndProc,g_hInst, idThread); 注入explorer.exe ,获取任务栏的消息。调整程序图标显示位置。 +1C#懂的就不多,Delphi完全不知道,关于那个注入explorer.exe ,思路貌似明白一点,但不会动手,求助! 同一个应用程序的多个进程的问题 服务器如何主动推送消息到客户端 TextBox能设置格式化显示吗? 求SQL语句 请问没有.net开发环境,能做.net开发吗? Windows窗体中跨线程访问控件的问题 how to do? object并不包含ctor的定义 成都某企业招聘 谁能解释一下,有关WebService的问题...... 如何原模原样的显示Excel文件的内容 C#编程遇到一个奇怪问题
它是在开始按钮和快捷启动栏之间的。
而且你提供的博客连接方法我也试过了,跟它简直是两码事。继续,这是我第二次问问这个问题。上次在5月份,看看过了半年技术更新了没有,上次也是没有结果。
这个可能需要映射win7系统内部的核心函数吧
复制一个开始按钮 重写事件么?
我不是很懂这个
Gnie写的很好了
http://www.cnblogs.com/gnielee/archive/2010/03/21/windows7-develop-summary.html
然后在这个Menu上增加按钮
你感觉那个啥呢,不如看msdn的帮助吧
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
files = (string[])(e.Data.GetData(DataFormats.FileDrop));
}
} void treeView1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.All;
}
1.子类化m_oldWndProcTask = (WNDPROC)GetWindowLong(m_hwndTask, GWL_WNDPROC);
SetWindowLong(m_hwndTask, GWL_WNDPROC, (LONG)WndProcTask);
WndProcTask里面自己处理WM_WINDOWPOSCHANGING消息,在这个消息里面调整位置
其他的消息交给系统处理 CallWindowProc(m_oldWndProcTask, hwnd, message, wParam, lParam);
2.子类化 MSTaskListWClass, 同上处理LRESULT CALLBACK WndProcTask(HWND hwnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_WINDOWPOSCHANGING: // restrict size and position
{//位置处理
}
return CallWindowProc(m_oldWndProcTask, hwnd, message, wParam, lParam);
}void UnSubclassStartButton(void)
{
if(m_hwndTask && IsWindow(m_hwndTask) && m_oldWndProcTask)
SetWindowLong(m_hwndTask, GWL_WNDPROC, (LONG)m_oldWndProcTask);
m_oldWndProcTask = NULL;
}idThread = GetWindowThreadProcessId(hwndTaskbar, NULL);
// 给任务栏安装一个hookg_hhook = SetWindowsHookEx(WH_CALLWNDPROC, (HOOKPROC)CallWndProc,g_hInst, idThread);
C#懂的就不多,Delphi完全不知道,关于那个注入explorer.exe ,思路貌似明白一点,但不会动手,求助!