WGestures 鼠標(biāo)手勢(shì)開(kāi)源工具本是Win擴(kuò)展利器;經(jīng)過(guò)一段時(shí)間的折騰,我發(fā)現(xiàn)簡(jiǎn)直是交易軟件的擴(kuò)展神器; 因沒(méi)什么普及文章,大多數(shù)股民朋友并不知道怎么用;為了群策群力發(fā)展更多的交易軟件擴(kuò)展功能,我就先在這里寫(xiě)些 WGestures 工具的精通要點(diǎn)與功能實(shí)現(xiàn); WGestures 官方下載 一、WGestures 設(shè)快捷漲跌停買(mǎi)賣(mài)按鍵序列; 鼠標(biāo)右鍵+滾輪向下=漲停閃買(mǎi),按鍵序列代碼:.{sleep 300}{+}.{enter} 鼠標(biāo)右鍵+滾輪向上=跌停閃賣(mài),按鍵序列代碼:.{sleep 300}{-}.{enter} (圖1.1) 二、復(fù)制股名,自動(dòng)轉(zhuǎn)股碼并在通達(dá)信、同花順里模擬鍵盤(pán)敲擊; 本功能需要 兩個(gè)文件「xxxxxx.vbs」和「A股.txt」 先貼「xxxxxx.vbs」 腳本源碼,本人原創(chuàng)首發(fā); Dim ClipText Dim Shell Dim objHTML Dim regEx, SKtext Dim dir0, SkALL, StockN, StockX, StockNAME, StockSC, xxxxxx '股票名稱代碼變量 dir0 = left(wscript.scriptfullname,instrrev(wscript.scriptfullname,"\")-1) & "\A股.txt" '當(dāng)前目錄路徑 Set Shell = WScript.CreateObject("Wscript.Shell") '調(diào)用鍵盤(pán) Set objHTML = CreateObject("htmlfile") '取剪貼板內(nèi)容 On Error Resume Next ClipText = objHTML.ParentWindow.ClipboardData.GetData("text") '取剪貼板內(nèi)容 wscript.sleep 10 Set regEx = CreateObject("VBScript.regexp") '正則表達(dá)式 regEx.Global = True regEx.Pattern = "[^a-zA-Z\d\u4e00-\u9fa5]" '匹配非英文數(shù)字中文 SKtext = Left(regEx.Replace(ClipText, ""),13) '任意長(zhǎng)文只截取前13個(gè)字符 regEx.Pattern = "\D+" '匹配非數(shù)字 StockX = Left(regEx.Replace(SKtext, ""),6) '替換非數(shù)字,只識(shí)別13個(gè)字符的前六位數(shù)字 If Len(StockX) = 6 And isnumeric(StockX) Then '必須判斷字符有六位 xxxxxx = StockX Else: regEx.Pattern = "[^a-zA-Z\u4e00-\u9fa5]" '匹配非中文 StockN = Left(regEx.Replace(SKtext, ""),4) '替換非中文后,只識(shí)別前4個(gè)漢字是否為股名 set SkALL = createobject("scripting.filesystemobject").opentextfile(dir0) '取本地A股.txt內(nèi)容 SkALL = SkALL.readall '取本地A股.txt內(nèi)容 StockNAME = Mid(SkALL, InStr(SkALL, StockN), Len(StockN)) '調(diào)用剪貼板的股名 If StockNAME <> StockN Then StockNAME = Left(StockN,3) '股名長(zhǎng)度 xxxxxx = Mid(SkALL, InStr(SkALL, StockNAME)-7,6) '股名轉(zhuǎn)代碼 End If wscript.sleep 10 If Len(xxxxxx) = 6 And isnumeric(xxxxxx) Then '判斷股票代碼,必須再判斷字符有六位 Shell.SendKeys left(xxxxxx,1) '鍵入第一位股碼" wscript.sleep 300 '暫停300毫秒" Shell.SendKeys right(xxxxxx,5) '鍵入后五位股碼" Shell.SendKeys"{Enter}" End If Set dir0 = Nothing Set ClipText = Nothing Set Shell = Nothing Set objHTML = Nothing Set Times = Nothing Set StockN = Nothing Set StockNAME = Nothing Set StockX = Nothing Set xxxxxx = Nothing Set regEx = Nothing Set SKtext = Nothing Set SkALL = Nothing 請(qǐng)將以上源碼用記事本另存為「xxxxxx.vbs」 然后在通達(dá)信里可獲得所需的另一個(gè)全目錄股名代碼的文本「A股.txt」 打開(kāi)通達(dá)信點(diǎn)擊「A股」,按鍵34打開(kāi)「數(shù)據(jù)導(dǎo)出」,選「報(bào)表中所有數(shù)據(jù)」,「Excel 文件」導(dǎo)出; 然后打開(kāi) Excel 文件,全選B列進(jìn)行三步替換: 1、將雙字符「A」全替換為單字符「A」 2、將 「空格符」全替換去掉; 3、將「*ST」全替換為「ST」 最后將AB兩列復(fù)制到記事本另存為 A股.txt (圖2.1) 兩個(gè)文件必須放在一起建議路徑設(shè)為 D:\Program Files\VBS,然后就可以根據(jù)下圖設(shè)置 WGestures測(cè)試操作; (圖2.2) 那如何將通達(dá)信與同花順用 WGestures 聯(lián)動(dòng)呢?文末再講這個(gè)問(wèn)題。 先說(shuō)些 WGestures 的具體概念,究竟什么是鼠標(biāo)手勢(shì)操作?你可以想象成用鼠標(biāo)右鍵在屏幕上寫(xiě)字,所寫(xiě)橫豎撇捺折的每一筆劃均可觸發(fā)你設(shè)定的一個(gè)指令。比如上圖2.2的功能,你寫(xiě)了一橫后便觸發(fā)你設(shè)定的功能執(zhí)行了「xxxxxx.vbs」。 漢字 「米」如果從中心點(diǎn)向外寫(xiě)的話共有八筆對(duì)應(yīng)八個(gè)方向,在 WGestures 中就可設(shè)置為八種手勢(shì)指令; 一筆劃可以定義為一級(jí)手勢(shì) 二筆組合則定義為二級(jí)手勢(shì) 三筆以上就定義為三級(jí)手勢(shì) 相對(duì)于其他軟件,在 WGestures 中鼠標(biāo)按鍵可組合成特級(jí)快捷鍵,無(wú)需手勢(shì)配合;比如開(kāi)頭我們?cè)O(shè)定的漲停閃買(mǎi)「鼠標(biāo)右鍵+滾輪向下」; WGestures 中還有個(gè)特性就是可選擇設(shè)定手勢(shì)為「全局通用」或「僅對(duì)某個(gè)軟件單設(shè)」。 一二三級(jí)手勢(shì)可以對(duì)應(yīng)PC操作動(dòng)作頻繁度來(lái)區(qū)分,比如 WGestures 的原生手勢(shì)設(shè)定:右鍵向上為「復(fù)制」,右鍵向下為「粘貼」。 除了頻繁度還可以用邏輯聯(lián)想來(lái)設(shè)定,比如劃分屏幕米字中心: 點(diǎn)擊右斜下角觸發(fā)了所有程序最小化到桌面,我們可以對(duì)應(yīng)「右斜下」手勢(shì)設(shè)定快捷鍵「Win+D」,反方向「左斜上」的手勢(shì)則可聯(lián)想設(shè)定為程序任務(wù)切換「Alt+Tab」。 同理左下角對(duì)應(yīng)開(kāi)始屏幕,我們就把「左斜下」手勢(shì)設(shè)定為觸發(fā)「Win」鍵,反方向「右斜上」設(shè)定為 窗口控制 窗口操作 「最大化/復(fù)原」;為什么不設(shè)定關(guān)閉窗口呢?因?yàn)橐患?jí)手勢(shì)誤觸率高。 對(duì)容錯(cuò)率低的指令一般要設(shè)置為三級(jí)手勢(shì)。如果我們用 Clean up (清除) 第一個(gè)字母 C的手寫(xiě)過(guò)程設(shè)為手勢(shì)然后觸發(fā)「Delete」鍵,反寫(xiě)C的手勢(shì)就可以設(shè)定為組合鍵「Ctrl+Z」來(lái)撤消PC誤操作。 一些重要設(shè)定… 在全局下:請(qǐng)將鼠標(biāo)「右鍵+左鍵」設(shè)為觸發(fā)「Ctrl+C」,「右鍵+滾輪中鍵」設(shè)為觸發(fā)「Ctrl+V」;同時(shí)也請(qǐng)保留 WGestures 里復(fù)制粘貼的原生設(shè)定; 在全局下:請(qǐng)將「鼠標(biāo)右鍵+滾輪向下」設(shè)為向下翻頁(yè)「PGDN」,及「鼠標(biāo)右鍵+滾輪向上」向上翻頁(yè)設(shè)為「PAUP」;請(qǐng)放心并不影響通達(dá)信漲停閃買(mǎi)、跌停閃賣(mài)的手勢(shì)設(shè)定,因?yàn)閳D1.1里我們僅對(duì)通達(dá)信單獨(dú)設(shè)定; 一些經(jīng)歷時(shí)間很久才有的經(jīng)驗(yàn)… 對(duì)于不同品牌瀏覽器、或文字閱讀窗口、或Win資源管理器雖然組合鍵命令有所不同,但請(qǐng)盡量用相同手勢(shì)實(shí)現(xiàn)統(tǒng)一的操作結(jié)果。瀏覽器的鼠標(biāo)手勢(shì)「傲游瀏覽器」好像是第一原創(chuàng)首發(fā),建議請(qǐng)以「傲游瀏覽器」的手勢(shì)為藍(lán)本統(tǒng)一操作不同品牌瀏覽器,再柔合其他閱讀軟件。 三、WGestures任意文本劃詞搜索/劃詞翻譯,任意位置屏幕取色; (圖3.1) WGestures 除了右鍵可以劃手勢(shì),也可同時(shí)用滾輪中鍵劃手勢(shì)執(zhí)行指令; 比如上圖3.1中我用滾輪中鍵手勢(shì)「右斜下」執(zhí)行劃詞搜索,用滾輪中鍵手勢(shì)「右斜下+滾輪向下」執(zhí)行劃詞劃詞翻譯。 下面講的屏幕取色功能,我則是用「滾輪中鍵+滾輪向上」手勢(shì)執(zhí)行指令;屏幕取色值是十六進(jìn)制顏色碼,會(huì)自動(dòng)生成拷貝到剪切板; 十六進(jìn)制顏色碼如果用于通達(dá)信公式,請(qǐng)將數(shù)位12位與56位的數(shù)字互換! 以下是屏幕取色 Lua 腳本代碼,源碼來(lái)源于 WGestures 的軟件作者! -- 初始化 源碼----------------- luanet.load_assembly('System.Windows.Forms'); luanet.load_assembly('System'); luanet.load_assembly('System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'); import('System.Drawing'); import('System.Drawing.Imaging'); import('System.Diagnostics'); Screen = luanet.import_type('System.Windows.Forms.Screen'); -- 執(zhí)行 源碼----------------------- local scrBounds = Screen.PrimaryScreen.Bounds; local bmp = Bitmap(scrBounds.Width,scrBounds.Height,PixelFormat.Format32bppArgb); local g = Graphics.FromImage(bmp); g:CopyFromScreen(scrBounds.X,scrBounds.Y,0,0,scrBounds.Size,CopyPixelOperation.SourceCopy); -- 拷貝到剪貼板 local color = bmp:GetPixel(Context.StartPoint.X, Context.StartPoint.Y); local psi = ProcessStartInfo("cmd", "/K echo " .. ColorTranslator.ToHtml(color) .. "| clip && exit"); psi.CreateNoWindow = true; psi.UseShellExecute = false; Process.Start(psi):Dispose(); -- hack -- cleanup if g then g:Dispose(); end; if bmp then bmp:Dispose(); end; (圖3.2) 軟件作者說(shuō):屏幕取色涉及到好幾個(gè)API的調(diào)用,WGestures 使用的是 NLua 腳本 (//),幾乎可以調(diào)用任何 .Net 的方法; 四、通達(dá)信 to 同花順,用 WGestures 聯(lián)動(dòng); ( WGestures 虛擬按鍵 代碼參考表) 在通達(dá)信里有個(gè)功能是標(biāo)記文字(Ctrl+Q),只要標(biāo)記里面最前的文字有股名或股碼,我們便可以設(shè)置鼠標(biāo)「右鍵+左鍵」手勢(shì)執(zhí)行自動(dòng)打開(kāi)關(guān)閉標(biāo)記并復(fù)制標(biāo)記文本。 鼠標(biāo)右鍵+鼠標(biāo)左鍵=標(biāo)記復(fù)制,按鍵序列代碼:^q{sleep 300}^a^c%{F4} (圖4.1) 「標(biāo)記復(fù)制」再配合「xxxxxx.vbs」便可實(shí)現(xiàn)簡(jiǎn)單的個(gè)股聯(lián)動(dòng)。通達(dá)信里的的標(biāo)記文件是mark.dat,在文件夾T0002里。mark.dat里面的格式有規(guī)律,如果你想要標(biāo)記全部的個(gè)股代碼,可以用 Excel 生成所需文本。 上圖的通達(dá)信聯(lián)動(dòng)到同花順功能并不完美,但如果能直接讀取通達(dá)信行情內(nèi)存讀取個(gè)股代碼,就不必多個(gè)標(biāo)記復(fù)制步驟。如果能讀取同花順行情內(nèi)存,就能反過(guò)來(lái)跟通達(dá)信互動(dòng)。非程序員的我只會(huì)編寫(xiě)一點(diǎn)點(diǎn)VBA/VBS且不會(huì)API的調(diào)用,目前實(shí)現(xiàn)不了。WGestures作者寫(xiě)了另一個(gè)Lua腳本 稍作修改可以判斷Win進(jìn)程打開(kāi)通達(dá)信或同花順,但網(wǎng)上NLua教程幾乎沒(méi)有,我還是寫(xiě)不了WGestures里L(fēng)ua腳本的按鍵調(diào)用。 寫(xiě)此文希望能群策群力,如果你開(kāi)發(fā)出更騷的操作請(qǐng)多多留言或分享! (有時(shí)間再開(kāi)貼講講 「通達(dá)信標(biāo)記 + 印象筆記 + WGesture 手勢(shì)」 這三者組合是如何變成超級(jí)復(fù)盤(pán)利器。通達(dá)信里手勢(shì)指令可以一步直接呼出印象筆記并搜索打開(kāi)相關(guān)個(gè)股筆記。在印象筆記里編排固定格式批量復(fù)制生成個(gè)股筆記頁(yè),再將「板塊筆記頁(yè)」與「?jìng)€(gè)股筆記頁(yè)」軟件內(nèi)互建超鏈。然后個(gè)股復(fù)盤(pán)記要點(diǎn)再?gòu)?fù)制到通達(dá)信標(biāo)記里面,就可以達(dá)到圖中通達(dá)信的標(biāo)記效果) [ 本帖最后由 憶城- 于 2018-5-3 01:15 編輯 ] |
|
來(lái)自: 辭源牧馬 > 《待分類(lèi)》