【个人作品 -- aardio】win消息查询工具
源代码 aardio:
网上有人公布的一个小工具,但是在我的4K显示屏下显示的太小了,于是就重新写了一遍,方便自己使用。
import win.ui; import access; /*DSG{{*/ mainForm = win.form(text="windows 消息查询工具-扣扣小妖 mail:liukuaizhuan@qq.com";right=809;bottom=511;bgcolor=16754508) mainForm.add( button={cls="button";text="开始搜索";left=704;top=50;right=775;bottom=74;dl=0.87;dr=0.04;dt=1;group=1;z=7}; combobox={cls="combobox";left=73;top=50;right=238;bottom=74;dl=0.09;dr=0.71;dt=1;edge=1;group=1;items={"所有消息";"按钮消息";"编辑框消息";"超级列表框消息";"列表框消息";"鼠标键盘消息";"树形框消息";"系统消息";"组合框消息"};mode="dropdown";z=2}; combobox_searchType={cls="combobox";left=529;top=51;right=685;bottom=75;dl=0.65;dr=0.15;dt=1;edge=1;group=1;items={"消息名称";"十进制值";"十六进制值";"说明"};mode="dropdown";z=6}; edit={cls="edit";left=310;top=50;right=469;bottom=72;dl=0.38;dr=0.42;dt=1;edge=1;group=1;z=5}; groupbox={cls="groupbox";left=10;top=28;right=797;bottom=90;aw=1;bgcolor=16754508;color=16777215;dl=1;dr=1;dt=1;edge=1;group=1;z=1}; listview={cls="vlistview";left=11;top=99;right=801;bottom=507;ah=1;aw=1;db=1;dl=1;dr=1;dt=1;edge=1;gridLines=1;vscroll=1;z=8}; static={cls="static";text="选择分类";left=16;top=50;right=70;bottom=74;dl=0.02;dr=0.91;dt=1;group=1;transparent=1;z=3}; static2={cls="static";text="搜索:";left=269;top=51;right=301;bottom=75;dl=0.33;dr=0.63;dt=1;group=1;transparent=1;z=4} ) /*}}*/ // 初始化虚表界面 表头 mainForm.listview.insertColumn("消息名称",200); mainForm.listview.insertColumn("十进制值",100); mainForm.listview.insertColumn("十六进制值",100); mainForm.listview.insertColumn("说明",-1); /* ================ 初始化 数据开始================== */ var db = access("/WinConstant.mdb"); //打开数据库记录集 var rs = db.openRecordSet("SELECT 消息名称,十进制值,十六进制值,说明 FROM winconstant", db.adOpenStatic); //清除列表视图中的数据 mainForm.listview.clear(); //创建一个数据缓存表 var cacheTable = table.cache( function(row) { rs.Move(row - 1, 1/*_adBookmarkFirst*/); return rs.getRows(1, 0/*_adBookmarkCurrent*/); } ); //设置列表视图的行数 mainForm.listview.count = rs.recordCount; //定义列表视图的获取显示项的方法 mainForm.listview.onGetDispItem = function(item, row, col) { return { text: cacheTable[row][col][1] }; }; // 销毁时候关闭数据库连接 mainForm.listview.onDestroy = function(){ db.close(); } /*================== 初始化 数据结束================== */ /**************************************** *下拉框被选中 根据分类类型查询数据显示 ****************************************/ mainForm.combobox.onListChange = function(){ // 清空搜索项里面的输入值 mainForm.edit.text = null; // 获取选中的值 var selectedText = mainForm.combobox.selText; // 根据值查询 var sql ; if(selectedText != "所有消息"){ sql = "SELECT 消息名称,十进制值,十六进制值,说明 FROM winconstant WHERE 消息类别="""+selectedText+""""; }else{ sql = "SELECT 消息名称,十进制值,十六进制值,说明 FROM winconstant"; } // 查询数据并更新虚表 showmess(sql) } /**************************************** * 搜索按钮点击 ****************************************/ mainForm.button.oncommand = function(id,event){ //获取编辑框文本 var searchKey = mainForm.edit.text; //获取下拉选项的选中的值 var selectValue = mainForm.combobox_searchType.selText; // 拼接sql语句 var query; var whereQuery; if(string.len(searchKey) and selectValue){ whereQuery = " WHERE "+ selectValue + " LIKE '%" + searchKey + "%'"; query = "SELECT 消息名称,十进制值,十六进制值,说明 FROM winconstant " + whereQuery; }else{ query = "SELECT 消息名称,十进制值,十六进制值,说明 FROM winconstant"; } // 查询数据并更新虚表 showmess(query) ; } /* * 根据sql语句查询数据,并将数据显示在虚表上 * sql: 字符串类型 数据库查询语句 */ function showmess(sql){ //清除列表视图中的数据 mainForm.listview.clear(); //mainForm.msgbox(sql); var rs = db.openRecordSet(sql, db.adOpenStatic); // 指定虚表行数 mainForm.listview.count = rs.recordCount; //数据库缓存表 var cacheTable = table.cache( function(row) { rs.Move(row - 1, 1/*_adBookmarkFirst*/); //注意返回的数组是先列后行 return rs.getRows(1,0/*_adBookmarkCurrent*/) } ); //获取虚表项 mainForm.listview.onGetDispItem = function(item,row,col){ return {text=cacheTable[row][col][[1]]}; } // 更新虚表显示 mainForm.listview.update(); } mainForm.show(); return win.loopMessage();
附件下载:
相关回复
-
暂无评论!