オレは暇で優しいから、腐った某検索用サイトのグダグダなURLをすっきりさせるための超手抜きスクリプトを賃プロ同志の便宜の為に作ったので、公開する事にしよう
動作確認を行ったインタープリターはruby 2.4.2p198 (2017-09-14 revision 59899) [i386-mingw32]でブラウザーは最新のfirefoxだが、自己責任で使って欲しい
尚、俺は優しいから、分からない事があったら何でも聞いて欲しい
require 'win32api'
$OpenClipboard = Win32API.new('user32', 'OpenClipboard', ['I'], 'I')
$CloseClipboard = Win32API.new('user32', 'CloseClipboard', [])
$GetClipboardData = Win32API.new('user32', 'GetClipboardData', ['I'], 'I')
$GlobalLock = Win32API.new('kernel32', 'GlobalLock', ['I'], 'P')
$GlobalUnlock = Win32API.new('kernel32', 'GlobalUnlock', ['I'], 'I')
$GlobalAlloc = Win32API.new('kernel32', 'GlobalAlloc', 'II' ,'I')
$SetClipboardData = Win32API.new('user32', 'SetClipboardData', 'II', 'I')
$EmptyClipboard = Win32API.new('user32', 'EmptyClipboard', [])
$Memcpy = Win32API.new('msvcrt', 'memcpy', 'IPI', 'I')
def getclip
$OpenClipboard.Call(0);
handle=$GetClipboardData.Call(1)
data=$GlobalLock.Call(handle)
$GlobalUnlock.Call(handle)
$CloseClipboard.Call()
data
end
def setclip(data)
$OpenClipboard.Call(0)
$EmptyClipboard.call()
data << "\0"
handle = $GlobalAlloc.call(0x42,data.length)
ptr=$GlobalLock.call(handle)
$Memcpy.call(ptr,data,data.length)
$SetClipboardData.call(1,handle)
$CloseClipboard.Call()
end
setclip(getclip.to_s.sub(/(?<=search\?).+&(?=q=)/,"").sub(/&.*$/,""))