VBSによる簡易クリップボード履歴保存
客先常駐など、自由にソフトウェアをインストールできないときに、
メモ帳にクリップボード履歴を保存し、呼び出すための簡易スクリプトです。
これをスタートメニューで自動起動しておきます。
履歴を保存するファイル、clipbord.txt を、ショートカットキーで起動できるようにしておけば、
ショートカットキーからいつでもクリップボード履歴を呼び出せます。
基本動作は、以下の通りです。
- 3秒毎にクリップボードを監視し、値を取得
- 取得した値が、保存用のclipbord.txtに存在するか確認
- 存在しなかったらclipbord.txtの一番下に追記
phrase.txt に、固定文書をあらかじめ保存、登録しておくことで、
定型文としてすぐに呼び出すことができます。
clipbord.txt
phrase.txt
この二つのファイルは、同じフォルダに配置する必要があります。
Dim GetClipboardText Dim objHTML Dim objFSO ' FileSystemObject Dim objFile ' ファイル書き込み用 Dim objFilepath Dim objTemp On Error Resume Next Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") Set objFilepath = WScript.CreateObject("Scripting.FileSystemObject") objFilepath = objFilepath.GetFile(WScript.ScriptFullName).ParentFolder.Path objFSO.DeleteFile "clipbord.txt" Set objFile = objFSO.OpenTextFile( objFilepath & "\phrase.txt", 1) objTemp = objFile.ReadAll Set objFile = Nothing Set objFile = objFso.OpenTextFile(objFilepath & "\clipbord.txt" , 2 , True) objFile.WriteLine "20" & date objFile.WriteLine objTemp Set objFile = Nothing do Set objFile = objFSO.OpenTextFile( objFilepath & "\clipbord.txt", 1) Set objHTML = CreateObject("htmlfile") GetClipboardTextOld = objHTML.ParentWindow.ClipboardData.GetData("text") objTemp = objFile.ReadAll I = InStr( objTemp, GetClipboardTextOld ) If I > 0 then objFile.Close Else objFile.Close Set objFile = objFSO.OpenTextFile( objFilepath & "\clipbord.txt", 8) objFile.WriteLine(GetClipboardTextOld) objFile.Close end If WScript.Sleep 3000 Set objFile = Nothing Set objHTML = Nothing loop Set objFSO = Nothing