用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - javascript代码库

qq

2021-05-29 作者: 云代码会员举报

[javascript]代码库

import com;
 
var oleaut = raw.loadDll("OleAut32.DLL");
var oleacc = raw.loadDll("OLEACC.DLL");
IID_IAccessible = '\xE0\x36\x87\x61\x3D\x3C\xCF\x11\x81\x0C\x00\xAA\x00\x38\x9B\x71';
 
var findAccessibleChildren;
findAccessibleChildren = function(accParent,name){
    var variants = {
        struct item[] ={  //这里没有声明数组长度
            length = accParent.accChildCount; //使用length在运行时指定数组长度
            {
                WORD vt;
                WORD r1;
                WORD r2;
                WORD r3;
                ptr pdispVal;
                ptr r4;
            };//结构体数组至少要声明第一个结构体成员
        }
    }
     
    var obtained = {int size};//用结构体给API提供int指针
    var hr = oleacc.AccessibleChildren(accParent, 0,accParent.accChildCount, variants,obtained);
    if( hr < 0 ) return;//COM中小于0的都是错误码
 
    for(i=1;obtained.size;1){
        var variant = variants.item[ i ]
        if( variant.vt != 9/*_VT_DISPATCH*/ ) {
            oleaut.VariantClear(variant);
            continue;
        }
         
        var accChild = com.QueryObject( variant.pdispVal ); //转换为COM对象(COM.IDispatch)
 
        oleaut.VariantClear(variant);//释放Variant对象      
 
        if( accChild.accName(0/*CHILDID_SELF*/) == name ){ 
            var v = accChild.accValue(0/*CHILDID_SELF*/);
            if(#v) return v;
        }
 
         
        var v = findAccessibleChildren(accChild,name);
        if(#v) return v;
    }
}
 
findAccessibleString = function(hwnd,name){
    var pvObject = {ptr p}
    if( 0 == oleacc.AccessibleObjectFromWindow(hwnd,0,IID_IAccessible,pvObject) ){
        var accParent = com.QueryObject( pvObject.p ); //转换为COM对象(COM.IDispatch)
        com.Release(pvObject.p);
         
        return findAccessibleChildren( com.QueryObject( pvObject.p ),name );
    }  
}
 
import winex;
import console;
 
console.setTitle("读取QQ消息")
console.open()
var msg;
while(true){
    var old = msg;
    for hwnd in winex.each( "TXGuiFoundation") {     
        var qqMessage = findAccessibleString(hwnd,"test");
        if(#qqMessage ) msg = qqMessage;
    }
    if(old!=msg)console.log( msg)
    sleep(10000)
}
     
 
    win.loopMessage()


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...