右下角工具栏推送提示图标的获取和删除

By admin at 2017-12-10 • 0人收藏 • 1229人看过

以win10推送图标为例:

import win;
import process;
 
deleteTrayIcon = function(){
 
    //查找托盘窗口
    var hwndTrayWnd = win.find("Shell_TrayWnd");
    var hwndTrayNotifyWnd = win.findEx(hwndTrayWnd,0,"TrayNotifyWnd");
    var hwndSysPager = win.findEx(hwndTrayNotifyWnd,0,"SysPager");
    var hwndToolbarWindow32 = win.findEx(hwndSysPager,0,"ToolbarWindow32");
     
    //打开任务栏进程
    var _,pid = ..win.getThreadProcessId(hwndToolbarWindow32 )
    var prcs = ..process( pid ) 
     
    if( process().isWow64() ){
        class TBBUTTON{
              int iBitmap;
              int idCommand;
              BYTE fsState;
              BYTE fsStyle; 
              BYTE bReserved[6];  
              ADDR dwData;
              addr iString;
        } 
    }
    else {
        class TBBUTTON{
              int iBitmap;
              int idCommand;
              BYTE fsState;
              BYTE fsStyle;  
              BYTE bReserved[2]; 
              ADDR dwData;
              addr iString;
        }         
    }
      
    //在目标进程内分配内存,返回指针地址
    var pTbButton =  prcs.writeStruct(,::TBBUTTON())
    var pRect =  prcs.writeStruct(,::RECT())
    var pText = prcs.malloc(256); 
     
    for(i=0;9;1){
      
        if( !::SendMessageInt(hwndToolbarWindow32,0x417/*_TB_GETBUTTON*/, i, pTbButton) )  continue;  
        var tbButton = prcs.readStruct( pTbButton,::TBBUTTON() ); //读取外部进程的数据 
         
        ::SendMessageInt(hwndToolbarWindow32, 0x433/*_TB_GETRECT*/, tbButton.idCommand, pRect);
        var len = ::SendMessageInt(hwndToolbarWindow32, 0x42D/*_TB_GETBUTTONTEXT*/ , tbButton.idCommand, pText);
        if( len < 0 ) continue;
         
        var rc = prcs.readStruct( pRect,::RECT() );
        var text = prcs.readString(pText,len); 
                 
        if( string.find(text,"Windows 10" ) ){
                 ::SendMessageInt(hwndToolbarWindow32, 0x416/*_TB_DELETEBUTTON*/,i,0) ;  
        }
    } 
     
     
    prcs.free();
};
 
deleteTrayIcon();
 
import fsys.wow64;
import win.version;
import process;
 
if( win.version.isVistaLater ){
  
    fsys.wow64.disableRedirection(
        function(){
            process.execute("wusa","/uninstall /kb:3035583");
        }
    ) 
}


登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...