Syslistview32+Systreeview32系统操作动态链接库和实际的商业化
Syslistview32和Systreeview32
是兩個極其常用的系統控件,一個是列表控件,一個是樹形框,只要能隨意操控這兩個控件就能夠從外部控制住大多應用到這兩個控件的軟件。
?
一開始是想要控制VS平臺的列表框來操作自動進房間,但是苦于沒有這樣的插件,只要自己動手做。
?
其實我本人是很不喜歡C++這樣的語言的,但是礙于效率又沒辦法,只好稍微觸及一點,可能我現在寫完以后連自己寫的是什么都不知道了
?
每次都需要自己手動操作內存啊什么的 真的很麻煩
?
這里給一段我寫的返回選定列表個數的C++代碼
BSTR CQMPlugin::ReturnSelectedText(long hwnds, long col) {CString strResult;HWND hwnd;hwnd=(HWND)hwnds;int iItem=0;LVITEM lvitem, *plvitem;//char ItemBuf[512],*pItem; iItem=::SendMessage(hwnd,LVM_GETNEXTITEM,-1,LVNI_SELECTED);GetWindowThreadProcessId(hwnd, &PID);hProcess=OpenProcess(PROCESS_ALL_ACCESS,false,PID);if(plvitemtemp==NULL){plvitemtemp=(LVITEM*)VirtualAllocEx(hProcess, NULL, sizeof(LVITEM),MEM_COMMIT, PAGE_READWRITE);}plvitem=plvitemtemp;if(pItemtemp==NULL){pItemtemp=(char*)VirtualAllocEx(hProcess, NULL, 512, MEM_COMMIT, PAGE_READWRITE);}pItem=pItemtemp;lvitem.cchTextMax=512;lvitem.iSubItem=col; //選定行的列lvitem.pszText=pItem;WriteProcessMemory(hProcess, plvitem, &lvitem, sizeof(LVITEM), NULL);::SendMessage(hwnd, LVM_GETITEMTEXT, (WPARAM)iItem, (LPARAM)plvitem);ReadProcessMemory(hProcess, pItem, ItemBuf, 512, NULL);//VirtualFreeEx(hProcess, plvitem, 0, MEM_RELEASE);//釋放內存strResult= ItemBuf;CloseHandle(hProcess);return strResult.AllocSysString(); }其實當初寫的時候饒了好大個彎,特別是去MSDN找資料的時候,整個腦子都亂了,程序還是會經常崩潰,不過現在大體解決了,基本上按照我上面的類推,大家都可以寫出外部操作其他
程序的列表框,如發生雙擊到某一行,獲取某一行的名稱等等,這對自動化設計是非常有幫助的。
?
?
相比起列表框了,樹形框要難得多
下面給出展開某個節點的代碼
void CQMPlugin::Expand(long hwnds, long node) {HWND hwnd;hwnd=(HWND)hwnds;TVITEM tvitem, *ptvitem;LPSTR pItem;GetWindowThreadProcessId(hwnd, &PID);hProcess=OpenProcess(PROCESS_ALL_ACCESS,false,PID);ptvitem=(TVITEM *)VirtualAllocEx (hProcess, 0, sizeof(tvitem), MEM_COMMIT, PAGE_READWRITE);pItem = (LPSTR)VirtualAllocEx(hProcess, NULL, 512, MEM_COMMIT, PAGE_READWRITE);HTREEITEM Child1 = TreeView_GetFirstVisible(hwnd);for(int i=0;i<(int)node;i++){Child1 = TreeView_GetNextVisible(hwnd,Child1); }tvitem.mask=TVIF_TEXT;tvitem.cchTextMax=512;tvitem.pszText=pItem;tvitem.hItem=Child1;// 獲取到根節點 WriteProcessMemory(hProcess, ptvitem, &tvitem, sizeof(tvitem), NULL); //插入結構到指定進程 ::SendMessage(hwnd, TVM_SELECTITEM,TVGN_CARET, (long)tvitem.hItem);//選中狀態 ::SendMessage(hwnd, TVM_EXPAND,TVE_EXPAND, (long)tvitem.hItem);ReadProcessMemory(hProcess, pItem, ItemBuf, 512, NULL);VirtualFreeEx(hProcess,ptvitem, 0, MEM_RELEASE);//釋放內存 }?
在寫雙擊到特定節點的時候,真心想破頭都一直出錯,但是最終還是解決了,然后用這兩個給按鍵精靈寫了幾個自動化腳本,掛到淘寶賣了
淘寶地址:http://item.taobao.com/item.htm?id=14813896324
? ? ? ? ? ? ? http://item.taobao.com/item.htm?id=12209949832
? ? ? ? ? ? ? http://item.taobao.com/item.htm?id=10201223499
?
不過最近沒什么時間管理 所以都沒怎么賣了,以前賣的情況還算ok 擠房器大概賣了1000個左右,VS廣告器賣了45個,11的賣了10個左右
不過大部分是我故意設檻 沒時間賣 沒辦法。
轉載于:https://www.cnblogs.com/maybreath/archive/2012/08/04/2623032.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Syslistview32+Systreeview32系统操作动态链接库和实际的商业化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 花呗的24期利息计算器_花呗分期利息怎么
- 下一篇: 【UnityDragonBone】2D像