昨天凌晨想到希望能在 PowerDesigner 的 RQM 裡,讓使用者可以選取某一字串並把它傳到 Clipboard 裡,VBS 在到 Clipboard 裡取出,然後建立 Glossary 或 Class
當 User 選取字串後,按右鍵點選選單上的功能,透過 SendKeys("^{c}") 可以模擬 copy 的動作,並將該字串送到 Clipboard 裡,但發現VBS 並不支援 Clipboard 物件,且執行完SendKeys("^{c}") 馬上去進行讀取動作,好像 SendKeys("^{c}") 也有問題,一定要有延遲的指令才可以,但 VBS 也無Sleep 指令
經過一整天的測試和尋找資料,終於找到解決的方法,方法如下
‘選取字串後執行
Dim WshShell,objHTM, ClipboardText ,strClipboard
set WshShell= CreateObject("WScript.Shell")
WshShell.SendKeys("^{c}") ‘將選取的字串送到 Clipboard
WshShell.Run " ",0 '一定要執行,資料才會真的寫到Clipboard 裡,延遲時間,利用空字串,就不會一定執行一個程式
'確實可以取得 Clipboard 裡的資料,因為vbs 沒支援使用 Clipboard 物件,所以利用htmlfile 來間接取得Clipboard 的資料
Set objHTM = CreateObject("htmlfile")
strClipboard = objHTM.ParentWindow.ClipboardData.GetData("Text")
ClipboardText="【"+strClipboard+"】"
msgbox ClipboardText
set WshShell=Nothing
set objHTM=Nothing
經過二十四小時馬拉松式的測試,終於找到的解法方法,真是大快人心
沒有留言:
張貼留言