注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

BCB-DG's Blog

...

 
 
 

日志

 
 

隱藏任務欄圖標  

2012-10-12 10:01:31|  分类: Delphi |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
//轉
#include <atlbase.h>
#include <atlconv.h>
#include <CommCtrl.h>

void HideWindow(HWND h, BOOL bHide)
{
    ShowWindow(h, bHide? SW_HIDE:SW_SHOW);
}

void HideTrayIcon(char szIcon[],BOOL show)
{
    HWND hWnd,hWndPaper;
    unsigned long lngPID;
    long lngButtons;
    HANDLE hProcess;
    LPVOID lngAddress;
    long lngHwndAdr,lngHwnd;
    char strBuff[1024]={0};
    TBBUTTON tbButton;

    hWnd = FindWindow("Shell_TrayWnd", NULL);
    hWnd = FindWindowEx(hWnd, 0, "TrayNotifyWnd", NULL);
    hWndPaper = FindWindowEx(hWnd, 0, "SysPager", NULL);
    if(!hWndPaper)
        hWnd = FindWindowEx(hWnd, 0, "ToolbarWindow32", NULL);
    else
        hWnd = FindWindowEx(hWndPaper, 0, "ToolbarWindow32", NULL);
    GetWindowThreadProcessId(hWnd, &lngPID);
    hProcess = OpenProcess(PROCESS_ALL_ACCESS|PROCESS_VM_OPERATION|PROCESS_VM_READ|PROCESS_VM_WRITE, 0, lngPID);
    lngAddress = VirtualAllocEx(hProcess, 0, 0x4096, MEM_COMMIT, PAGE_READWRITE);
    lngButtons = SendMessage(hWnd, TB_BUTTONCOUNT, 0, 0);
    for(int i=0 ;i<lngButtons;i++)
    {
        SendMessage(hWnd,TB_GETBUTTON, i, long(lngAddress));
        ReadProcessMemory(hProcess, LPVOID(long(lngAddress)), &tbButton, sizeof(tbButton),0);
        ReadProcessMemory(hProcess, LPVOID(tbButton.iString), strBuff, 1024, 0);
        ReadProcessMemory(hProcess, LPVOID(tbButton.dwData),&lngHwndAdr,4,0);
        ReadProcessMemory(hProcess, LPVOID(lngHwndAdr),&lngHwnd, 4,0);

        USES_CONVERSION;
        char *str = OLE2T((LPOLESTR)(strBuff));
        if(strstr(str,szIcon))
        {
            SendMessage(hWnd,TB_HIDEBUTTON, tbButton.idCommand, MAKELONG (show, 0));
            SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
            break;
        }
    }
    VirtualFreeEx( hProcess, lngAddress, 0X4096, MEM_RELEASE);
    CloseHandle(hProcess);
}

int main(int argc, char* argv[])
{
    HideWindow(FindWindow(0, "TM2009"), TRUE);
    HideTrayIcon("TM", TRUE);
    for (int i=0; i<5; i++)
    {
        printf("%dS restore。。。\r\n", 5-i);
        Sleep(1000);
    }
    HideWindow(FindWindow(0, "TM2009"), FALSE);
    HideTrayIcon("TM", FALSE);
    return 0;
}
  评论这张
 
阅读(999)| 评论(2)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017