当前访客身份:游客 [ 登录 | 加入 OSCHINA ]

代码分享

当前位置:
代码分享 » 其他  » 编程基础
分享到: 
收藏 +0
2
 去除win10升级提示,删除Windows10更新推送提示图标

代码片段(1) [全屏查看所有代码]

1. [代码][ aardio ]代码     跳至 [1] [全屏预览]

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


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

发表评论 回到顶部 网友评论(3)

  • 1楼:Mr_陈 发表于 2015-06-12 10:59 回复此评论
    kb:3035583,就这一行有用
  • 2楼:figer1 发表于 2015-06-12 12:29 回复此评论

    引用来自“Mr_陈”的评论

    kb:3035583,就这一行有用
    其实不是为了卸载kb:3035583,练练怎么控制系统托盘而已。
  • 3楼:了墨 发表于 2015-06-12 17:36 回复此评论
    mark~~~回去手动杀掉~
开源从代码分享开始 分享代码
figer1的其它代码 全部(141)...