剪贴板_全角数字转半角()

许多实用脚本和封装函数, 可以让您编写脚本更加便捷高效

Moderators: arcticir, tmplinshi

tmplinshi
Posts: 1557
Joined: 01 Oct 2013, 14:57

剪贴板_全角数字转半角()

19 Mar 2015, 08:59

Code: Select all

; F12::剪贴板_全角数字转半角()

剪贴板_全角数字转半角(p*) {

	; 函数内部调用
	If (p.1 = "ToolTip") {
		ToolTip, % p.2
		fn := Func(A_ThisFunc).Bind("Remove_ToolTip")
		SetTimer, %fn%, -2000
		Return
	}
	Else If (p.1 = "Remove_ToolTip") {
		ToolTip
		Return
	}

	If (Clipboard = "")
		Return %A_ThisFunc%("ToolTip", "剪贴板内容为空")
	If !A_IsUnicode
		Return %A_ThisFunc%("ToolTip", "请用 AHK 的 Unicode 版本运行")
	
	data := Clipboard
	For i, v in StrSplit("0123456789")
		StringReplace, data, data, % v, % i-1, All
	Clipboard := data
	%A_ThisFunc%("ToolTip", Clipboard)
}
只是觉得 %A_ThisFunc%()Func.Bind() 很有意思。SetTimer 支持用函数代替标签也很有用(需要AHK版本 1.1.20.00+)。

如果用 OnClipboardChange 复制时自动转换会更方便,只不过觉得有点浪费系统资源,每次剪贴板发生变化都进行检测。
...想了下,加一个按钮等开关来启用/禁用(自动替换剪贴板的全角数字),就行了 :)

Return to “脚本函数”

Who is online

Users browsing this forum: No registered users and 34 guests