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

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

以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");
        }
    ) 
}


登录后方可回帖

登 录
信息栏
本站永久域名:HtmLayout.Cn
纯私人站,当笔记本用的,学到哪写到哪,目前正在学aardio+halcon机器视觉.
Sciter中文在线文档Sciter在线学习文档
本 站 主 站:Stm32cube中文网
Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
aardio在线手册Aardio在线手册
C大Aardio论坛:Aar爱好者论坛
简码教程网:简码编程
AARDIO语言QQ群:70517368
赞助商:才仁机械
下载站:非凡软件站
Loading...