剪贴板增强---Kawvin增强剪贴板_V2.0

Kawvin增强剪贴板


by:Kawvin
#Persistent
SetWorkingDir,%A_ScriptDir%      ;设置工作目录
#MaxThreadsPerHotkey 5              ;最大热键数量
#NoEnv
;#Warn
#SingleInstance force                      ;单脚本运行
#WinActivateForce                          ;强制激活窗体
Process Priority,,High                       ;线程,主,高级
CoordMode, Mouse						  ;鼠标相对于屏幕
AutoTrim,on                                     ;自动省略首尾的空格和Tab
SetBatchLines -1                              ;让脚本无休眠地执行(换句话说,也就是让脚本全速运行)
ComObjError(0)                               ;禁用  COM 错误通告
Menu, Tray, UseErrorLevel               ;阻止显示对话框和终止线程
; #NoTrayIcon

Label_DefVar:
	global MyAppVer:="Kawvin增强剪贴板v2.0(Q285781427)"
	global MyClipBoard_ini:= "MyClipBoard.ini"
	
	global All_Modes:="一次复制多次粘贴|多次复制一次粘贴|同时使用2个剪贴板|临时记事本|禁用"
	global Sel_Mode:=						;当前模式
	global EnableSound:=				;启用声音
	global CopyHotKey:=					;复制热键
	global PasteHotKey:=					;粘贴热键
	global BackHotKey:=					;多次向前
	global PrevHotKey:=					;多次向后
	global MenuHotKey:=				;菜单热键
	global ListWinHotKey:=				;列表窗体热键
	global LCopyHotKey:=				;用于显示-复制热键
	global LPasteHotKey:=				;用于显示-粘贴热键
	global LBackHotKey:=				;用于显示-多次向前
	global LPrevHotKey:=					;用于显示-多次向后
	global LMenuHotKey:=				;用于显示-菜单热键
	global LListWinHotKey:=			;用于显示-列表窗体热键

	global MyClipMenu:=			;定义剪贴板菜单
	global CurWin_Title:=			;当前鼠标下的窗体标题
	
	global MyUseTongPei :=0		;设置是否启用通配符
	global MyPasteLine :=0		;定义目前将要粘贴的行数
	global MyClipArray:={}		;定义剪贴板历史记录
	global MyMaxID:=0			;最大序号
	global MySel:=					;定义临时存放变量
	global MySelRich:=				;定义临时存放变量
	global MyAutoEnter :=		;定义是否自动回车
	global MyFirText:=				;第一剪贴板内容
	global MySecText:=			;第二剪贴板内容
	global MyWS:=					;位数
	global MyStart:=				;起始序号
	global MyEnd:=					;终止序号
	global MySpace:=				;间距

Label_Start:
	iniRead,Sel_Mode,%MyClipBoard_ini%,通用设置,当前模式
	iniRead,EnableSound,%MyClipBoard_ini%,通用设置,启用声音
	iniRead,CopyHotKey,%MyClipBoard_ini%,通用设置,复制热键
	iniRead,PasteHotKey,%MyClipBoard_ini%,通用设置,粘贴热键
	iniRead,BackHotKey,%MyClipBoard_ini%,通用设置,多次向前
	iniRead,PrevHotKey,%MyClipBoard_ini%,通用设置,多次向后
	iniRead,MenuHotKey,%MyClipBoard_ini%,通用设置,菜单热键
	iniRead,ListWinHotKey,%MyClipBoard_ini%,通用设置,窗体热键

	;替换热键到正常键
	LCopyHotKey:=MyFun_RetrunKeys(CopyHotKey)
	LPasteHotKey:=MyFun_RetrunKeys(PasteHotKey)
	LBackHotKey:=MyFun_RetrunKeys(BackHotKey)
	LPrevHotKey:=MyFun_RetrunKeys(PrevHotKey)
	LMenuHotKey:=MyFun_RetrunKeys(MenuHotKey)
	LListWinHotKey:=MyFun_RetrunKeys(ListWinHotKey)
	SkSub_CreatTrayMenu()


Label_RegHotKey:
	CopyHotKey=$%CopyHotKey%
	PasteHotKey=$%PasteHotKey%
	BackHotKey=$%BackHotKey%
	PrevHotKey=$%PrevHotKey%
	MenuHotKey=$%MenuHotKey%
	ListWinHotKey=$%ListWinHotKey%
	if (Sel_Mode!="禁用")
	{
		hotkey,%CopyHotKey%,Label_Copy
		hotkey,%PasteHotKey%,Label_Paste
		hotkey,%BackHotKey%,Label_PasteBack
		hotkey,%PrevHotKey%,Label_PastePrev
		hotkey,%MenuHotKey%,TrayHandle_ShowMyClipArrayMenu
		hotkey,%ListWinHotKey%,TrayHandle_ShowListWin
	}

Label_DrawGUI:
	gui Destroy
	if Sel_Mode=一次复制多次粘贴
	{
		gui Main:+AlwaysOnTop
		Gui Font, w700 cRed
		Gui, Add, Text, x10 y5  h20 , 复制/添加:%LCopyHotKey%,1次粘贴:%LPasteHotKey%,②多次向:前%LBackHotKey%/后%LPrevHotKey%
		Gui Font
		Gui, Add, Edit, vMyFirText x12 y22 w360 h330 ,
		Gui Font, w700 cRed
		Gui, Add, CheckBox, Checked vMyAutoEnter gLabel_AutoEnter x230 y360 w210 h20 , 粘贴后自动回车
		Gui Font
		Gui, Add, Button, gLabel_GetData x20 y360 w80 h35 , ①数据确认
		Gui, Add, Button, gLabel_Clear x102 y360 w80 h35 , 清空重置
		Gui Font, s10 w700 cRed
		gui,Add,Text,x195 y382 h20,当前模式:%Sel_Mode%
		Gui Font
		Gui, Show, x127 y87 h402 w385, %MyAppVer%
	} 
	if Sel_Mode=多次复制一次粘贴
	{
		gui Main:+AlwaysOnTop
		Gui Font, w700 cRed
		Gui, Add, Text, x10 y5  h20 ,复制/添加:%LCopyHotKey%,粘贴:%LPasteHotKey%
		Gui Font
		Gui, Add, Edit, vMyFirText x12 y22 w360 h330 ,
		Gui Font, w700 cRed
		Gui, Add, CheckBox, Checked vMyAutoEnter gLabel_AutoEnter x230 y360 w210 h20 , 粘贴后自动回车
		Gui Font
		;Gui, Add, Button, gLabel_GetData x20 y360 w80 h35 , 数据确认
		Gui, Add, Button, gLabel_Clear x102 y360 w80 h35 , 清空重置
		Gui Font, s10 w700 cRed
		gui,Add,Text,x195 y382 h20,当前模式:%Sel_Mode%
		Gui Font
		Gui, Show, x127 y87 h402 w385, %MyAppVer%
	} 
	if Sel_Mode=同时使用2个剪贴板
	{
		gui Main:+AlwaysOnTop
		Gui Font, w700 cRed
		Gui, Add, Text, x10 y5  h20 , 第1剪切板(复制:Alt+F11,粘贴:%LBackHotKey%)
		Gui Font
		Gui, Add, Edit, vMyFirText x12 y22 w360 h185 ,
		Gui Font, w700 cRed
		Gui, Add, Text, x12 y213 h20 , 第2剪切板(复制:Alt+F12,粘贴:%LPrevHotKey%)
		Gui, Add, CheckBox, vMyUseTongPei gLabel_EnabledTongPei x273 y210 w120 h20 , 启用通配符(*)
		Gui Font
		Gui, Add, Edit, vMySecText x12 y230 w360 h90 ,
		Gui, Add, Text, x12 y334 w30 h20 , 位数
		Gui, Add, Edit, vMyWS x38 y330 w50 h20 ,
		Gui, Add, UpDown, range1-9 x82 y330 w20 h20 , 1
		Gui, Add, Text, x108 y334 w30 h20 , 起始
		Gui, Add, Edit, vMyStart x134 y330 w50 h20 , 1
		Gui, Add, UpDown, range1-999 x162 y330 w20 h20 , 1
		Gui, Add, Text, x204 y334 w30 h20 , 终止
		Gui, Add, Edit, vMyEnd x230 y330 w50 h20 ,
		Gui, Add, UpDown, range1-999 x212 y330 w20 h20 , 99
		Gui, Add, Text, x295 y334 w30 h20 , 间距
		Gui, Add, Edit, vMySpace x322 y330 w50 h20 ,
		Gui, Add, UpDown, range1-999 x352 y330 w20 h20 , 1
		Gui Font, w700 cRed
		Gui, Add, CheckBox, Checked vMyAutoEnter gLabel_AutoEnter x230 y360 w210 h20 , 粘贴后自动回车
		Gui Font
		;Gui, Add, Button, gLabel_GetData x20 y360 w80 h35 , 数据确认
		Gui, Add, Button, gLabel_Clear x102 y360 w80 h35 , 清空重置
		Gui Font, s10 w700 cRed
		gui,Add,Text,x195 y382 h20,当前模式:%Sel_Mode%
		Gui Font
		Gui, Show, x127 y87 h402 w385, %MyAppVer%
	} 
	if Sel_Mode=临时记事本
	{
		gui Main:+AlwaysOnTop
		Gui Font, w700 cRed
		Gui, Add, Text, x10 y5  h20 , 复制/添加:%LCopyHotKey%,1次粘贴:%LPasteHotKey%,②多次向:前%LBackHotKey%/后%LPrevHotKey%
		Gui Font
		Gui, Add, Edit, vMyFirText x12 y22 w360 h330 ,
		Gui Font, w700 cRed
		Gui, Add, CheckBox, Checked vMyAutoEnter gLabel_AutoEnter x230 y360 w210 h20 , 粘贴后自动回车
		Gui Font
		Gui, Add, Button, gLabel_GetData x20 y360 w80 h35 , ①数据确认
		Gui, Add, Button, gLabel_Clear x102 y360 w80 h35 , 清空重置
		Gui Font, s10 w700 cRed
		gui,Add,Text,x195 y382 h20,当前模式:%Sel_Mode%
		Gui Font
		Gui, Show, x127 y87 h402 w385, %MyAppVer%
	} 
	WinGet, MyID, ID, A   ; 获取 窗体ID.
	WinGetPos,,, MyWindowWidth, MyWindowHeight, A

	;---- 放置屏幕键盘在屏幕的底部(考虑到任务栏的位置):
	SysGet, MyWorkArea, MonitorWorkArea, %MyMonitor%

	; 计算用户窗体X坐标:
	MyWindowX = %MyWorkAreaRight%
	MyWindowX -= %MyWorkAreaLeft%  ; 现在 MyWindowX 包含了显示器的宽度.
	MyWindowX -= %MyWindowWidth%
	MyWindowX += %MyWorkAreaWidth%  ; 计算水平靠右的位置.
	; 以下操作是为了防止窗体不是主显示器,或者任务栏停靠在屏幕左侧:
	MyWindowX += %MyWorkAreaLeft%

	; 计算用户窗体Y坐标:
	MyWindowY = %MyWorkAreaBottom%
	MyWindowY -= %MyWindowHeight%

	WinMove, A,, %MyWindowX%, %MyWindowY%
	WinSet, AlwaysOnTop, On, ahMyid %MyID%
	;WinSet, TransColor, %TransColor% 220, ahMyid %MyID%
return

;=========================
;我的过程
SkSub_CreatTrayMenu()
{
	Menu,Tray,DeleteAll
	Menu, Tray, NoStandard        ;自定义菜单放在标准菜单上面
	iniRead,Sel_Mode,%MyClipBoard_ini%,通用设置,当前模式
	if Sel_Mode=禁用
		menu,tray,icon,ICONS\KCx.ico
	else
		menu,tray,icon,ICONS\KC.ico
	loop,parse,All_Modes,`|
	{
		if A_LoopField!=
		{
			Menu, tray, add,%A_LoopField%,TrayHandle_ModeChange
			if (A_LoopField=Sel_Mode)
				menu,tray,Check ,%A_LoopField%
		}
	}
	Menu,tray, add ; 分隔符
	menu,tray,add,清空剪贴板,TrayHandle_ClearCllipBoard
	Menu, tray, add ,剪贴板序列菜单,TrayHandle_ShowMyClipArrayMenu
	Menu, tray, add ,显示剪贴板列表窗体,TrayHandle_ShowListWin
	Menu, tray, add ; 分隔符
	Menu,tray, add,参数设置,TrayHandle_EditSetting
	Menu,tray, add ; 分隔符
	Menu, tray, add ,退出,TrayHandle_Exit
	Menu, Tray, Default, 剪贴板序列菜单
	Menu, Tray, Click, 1 
}
return

SkSub_CreatMyClipArrayMenu()
{
	if MyClipArray.Length()<=1
		return
	Menu,MyClipMenu,DeleteAll
	loop % MyClipArray.Length()
	{
		MyClipItem:=
		if strlen(MyClipArray[A_Index])>20
		{
			MyClipItem:=substr(MyClipArray[A_Index],1,20) . "......" 
		} else {
			MyClipItem:=% MyClipArray[A_Index]
		}
		menu,MyClipMenu,add,%MyClipItem%,MenuHandle_SetMenuItemToClipBoard
		menu,MyClipMenu,Icon,%MyClipItem%,ICONS\%A_Index%.ico
	}
	menu,MyClipMenu,add
	menu,MyClipMenu,add,清空历史记录,MenuHandle_ClearMenuItem
	;Menu, MyClipMenu, Show 
}
return

TrayHandle_ShowMyClipArrayMenu:
{
	;MouseGetPos,Menu_X, Menu_Y
	MouseGetPos,,,CurWin_id         ;当前鼠标下的进程ID
	WinGet, CurWin_Fullpath,ProcessPath,Ahk_ID %CurWin_id%    ;当前进程的路径
	WinGetTitle, CurWin_Title,Ahk_ID %CurWin_id%    ;当前进程的标题
	Menu, MyClipMenu, Show
}
return

MenuHandle_SetMenuItemToClipBoard:
	MyPasteLine:=A_ThisMenuItemPos
	ClipBoard:=MyClipArray[MyPasteLine]
	ClipWait,0.5
	send,^{vk56}
return

MenuHandle_ClearMenuItem:
	MyClipArray:={}
	Clipboard:=
	Menu,MyClipMenu,DeleteAll
return

TrayHandle_ShowListWin:
	gosub ,Label_GetData
	GuiControlGet,MyFirText,,MyFirText
	MouseGetPos,,,CurWin_id         ;当前鼠标下的进程ID
	WinGet, CurWin_Fullpath,ProcessPath,Ahk_ID %CurWin_id%    ;当前进程的路径
	WinGetTitle, CurWin_Title,Ahk_ID %CurWin_id%    ;当前进程的标题
	Gui MyListWin:New
	Gui MyListWin:+AlwaysOnTop
	Gui MyListWin:Font, s12
	Gui MyListWin:Add,Text, x5 y13  h21,指定的程序:
	Gui,MyListWin:Add, DropDownList,x100 y10 w300 vactivewindow, 
	Gui MyListWin:Add,Button,x405 y9 w70 gMySub_RefreshList,刷新
	MySub_RefreshList()
	MyListItems:=
	if MyClipArray.Length()=0
		return
	loop % MyClipArray.Length()
	{
		if (A_Index=1)
			MyListItems:=MyClipArray[A_Index]
		else
			MyListItems:=MyListItems . "|" . MyClipArray[A_Index]
	}
	
	Gui MyListWin:Add,ListBox,  x5  w470 h465 vMyListItem gMySub_PastMyListItem, %MyListItems%
	Gui MyListWin:Font
	Gui MyListWin:Show, w480 h500, 剪贴板列表
return

TrayHandle_ClearCllipBoard:
	Clipboard:=
return

TrayHandle_ModeChange:
	Sel_Mode:=A_ThisMenuItem
	iniwrite,%Sel_Mode%,%MyClipBoard_ini%,通用设置,当前模式
	Reload
return
	
TrayHandle_EditSetting:
	;gui Destroy
	gui MySetWin:New
	;Gui MySetWin:+OwnerMain
	gui MySetWin:+AlwaysOnTop
	Gui MySetWin:Font, s12
	Gui MySetWin:Add, GroupBox, x11 y6 w315 h185, 热键指定:通用
	Gui MySetWin:Font
	Gui MySetWin:Font, s11
	Gui MySetWin:Add, Text, x25 y35 w105 h23 +0x200 Right, 复制:
	Gui MySetWin:Add, Edit, x145 y35 w165 h21
	Gui MySetWin:Add, Text, x25 y65 w105 h23 +0x200 Right, 一次性粘贴:
	Gui MySetWin:Add, Edit, x145 y65 w165 h21
	Gui MySetWin:Add, Text, x25 y95 w105 h23 +0x200 Right, 向前粘贴:
	Gui MySetWin:Add, Edit, x145 y95 w165 h21
	Gui MySetWin:Add, Text, x25 y125 w105 h23 +0x200 Right, 向后粘贴:
	Gui MySetWin:Add, Edit, x145 y125 w165 h21
	Gui MySetWin:Add, Text, x25 y155 w105 h23 +0x200 Right, 弹出菜单:
	Gui MySetWin:Add, Edit, x145 y155 w165 h21
	Gui MySetWin:Add, Button, x65 y205 w75 h30, 确认
	Gui MySetWin:Add, Button, gWinSetButtonCancel x200 y205 w75 h30, 取消
	Gui MySetWin:Font
	Gui MySetWin:Show, w340 h250, 参数设置
return

MySub_RefreshList()
{
	droplist:=
	GuiControl,MyListWin:,activewindow,|
	WinGet, id, list,,, Program Manager
	Loop, %id%
	{
		this_id := id%A_Index%
		WinGetTitle, this_title, ahk_id %this_id%
		if this_title=
			continue
		if (this_title=CurWin_Title)
			droplist=%droplist%%this_title%||
		else
			droplist=%droplist%%this_title%|
	}
	GuiControl,MyListWin:,activewindow, %droplist%
	;Gui, MyListWin:Add, DropDownList,x100 y5 w370 vactivewindow, %droplist%
}

MySub_PastMyListItem()
{
	GuiControlget,activewindow,MyListWin:
	;MsgBox % activewindow
	if A_GuiEvent =DoubleClick
	{
		ClipBoard:=MyClipArray[A_EventInfo]
		sleep 100
		;WinWaitActive, %CurWin_Title% ,,5
		WinActivate, %activewindow%
		send,^{vk56}
	}
}

WinSetButtonCancel:
{
	Gui MySetWin:Destroy
	return
}

MySetWin确认:
{
	Gui MySetWin:Destroy
	return
}

Label_Copy:
	if (Sel_Mode="一次复制多次粘贴" or Sel_Mode="多次复制一次粘贴" or Sel_Mode="临时记事本")
	{
		Clipboard =
		Send, ^{vk43}
		ClipWait,0.5
		if ( ErrorLevel  )          ;如果没有选择到什么东西,则退出
			Return
		if MyFirText=
			MyFirText=%Clipboard%
		else
			MyFirText=%MyFirText%`n%Clipboard%
		Clipboard =
		GuiControl,,MyFirText,%MyFirText%
	} 
return

Label_Paste:
	Critical, On
	GuiControlget, MyAutoEnter
	GuiControlget, MyFirText
	if (Sel_Mode="一次复制多次粘贴" or Sel_Mode="多次复制一次粘贴" or Sel_Mode="临时记事本")
	{
		if MyFirText=
			return
		else
		{
			if MyClipArray.Length()=0
				Clipboard:=MyFirText
			sleep 100
			if (MyAutoEnter=1)		;如果自动回车
			{
				send,^{vk56}
				send,{Enter}
			} else {
				send,^{vk56}
			}
			Clipboard:=
		}
	} 
return

!F11::
	Critical, On
	if Sel_Mode=同时使用2个剪贴板
	{
		GuiControl,,MyFirText,
		Clipboard =
		Send, ^{vk43}
		ClipWait,0.5
		if ( ErrorLevel  )          ;如果没有选择到什么东西,则退出
			Return
		GuiControl,,MyFirText,%Clipboard%
		Clipboard =
	} 
return

!F12::
	Critical, On
	if Sel_Mode=同时使用2个剪贴板
	{
		GuiControl,,MySecText,
		Clipboard =
		Send, ^{vk43}
		ClipWait,0.5
		if ( ErrorLevel  )          ;如果没有选择到什么东西,则退出
			Return
		GuiControl,,MySecText,%Clipboard%
		Clipboard =
	} 
return

Label_PasteBack:
	Critical, On
	GuiControlget, MyAutoEnter
	if (Sel_Mode="一次复制多次粘贴" or  Sel_Mode="临时记事本")
	{
		if (MyPasteLine=-1)	;粘贴行数-1时,退出
			Return
		MyPasteLine -=1
		if (MyPasteLine <1)	;粘贴行数大于最大行数,不粘贴
		{
			MyPasteLine:=0
			return
		}
		Clipboard:=MyClipArray[MyPasteLine]
		sleep 100
		if (MyAutoEnter=1)		;如果自动回车
		{
			send,^{vk56}
			send,{Enter}
		} else {
			send,^{vk56}
		}
		Clipboard:=
	} 
	if (Sel_Mode="同时使用2个剪贴板")
	{
		GuiControlGet, MyFirText
		if MyFirText=
			return
		else
		{
			Clipboard:=MyFirText
			sleep 100
			if (MyAutoEnter=1)		;如果自动回车
			{
				send,^{vk56}
				send,{Enter}
			} else {
				send,^{vk56}
			}
			Clipboard:=
		}
	} 
return

Label_PastePrev:
	Critical, On
	GuiControlget, MyAutoEnter
	if (Sel_Mode="一次复制多次粘贴" or  Sel_Mode="临时记事本")
	{
		if (MyPasteLine=-1)	;粘贴行数-1时,退出
			Return
		MyPasteLine +=1
		if (MyPasteLine > MyMaxID)	;粘贴行数大于最大行数,不粘贴
		{
			MyPasteLine:=MyMaxID+1
			return
		}
		Clipboard:=MyClipArray[MyPasteLine]
		sleep 100
		if (MyAutoEnter=1)		;如果自动回车
		{
			send,^{vk56}
			send,{Enter}
		} else {
			send,^{vk56}
		}
		Clipboard:=
	} 
	if (Sel_Mode="同时使用2个剪贴板")
	{
		GuiControlGet, MySecText
		GuiControlGet, MyWS
		GuiControlGet, MyStart
		GuiControlGet, MyEnd
		GuiControlGet, MySpace
		GuiControlGet, MyUseTongPei
		if MySecText=		;第二剪贴板为空,退出
			Return
		if (MyUseTongPei=0)	;不启用通配符
		{
			Clipboard:=MySecText
			sleep 100
			if (MyAutoEnter=1)	;如果自动回车
			{
				send,^{vk56}
				send,{Enter}
			} else {
				send,^{vk56}
			}
			Clipboard:=
		}
		if (MyUseTongPei=1)	;启用通配符
		{
			if (MyStart<MyEnd+1)	;如果起始值小于终止值
			{
				MyTemStr:=MySecText
				;MyPiPei:=MyFun_MakeN0(MyStart,MyWS)
				MyPiPei:=substr("000000000" . MyStart,1-MyWS)
				stringreplace,MyTemStr,MyTemStr,(*),%MyPiPei%,all
				MyStart:=MyStart+MySpace
				GuiControl,,MyStart,%MyStart%
				Clipboard:=MyTemStr
				sleep 100
				if (MyAutoEnter=1)	;如果自动回车
				{
					send,^{vk56}
					send,{Enter}
				} else {
					send,^{vk56}
				}
				Clipboard:=
			}
		}
	} 
return

; 粘贴后自动回车
Label_AutoEnter:
{
	if (MyAutoEnter=1)
		MyAutoEnter:=0
	else 
		MyAutoEnter:=1
return
}

; 清空重置
Label_Clear:
{
	MyPasteLine:=-1
	MyClipArray:={}
	MyMaxID:=0
	MyFirText:=
	MySecText:=
	MyWS:=1
	MyStart:=1
	MyEnd:=99
	MySpace:=1
	GuiControl,,MyFirText,
	GuiControl,,MySecText,
	GuiControl,,MyWS,1
	GuiControl,,MyStart,1
	GuiControl,,MyEnd,99
	GuiControl,,MySpace,1
	;清空菜单
	Clipboard:=
	Menu,MyClipMenu,DeleteAll
Return
}

; 获取数据
Label_GetData:
{
	GuiControlGet, MyFirText
	MyClipArray:={}
	if (Sel_Mode="一次复制多次粘贴" or Sel_Mode="临时记事本")
	{
		;读取内容到数组
		loop,parse,MyFirText,`n`|,`r
		{
			TemStr:=A_LoopField
			if (TemStr="")
				continue
			MyClipArray.push(Temstr)
		}
		MyMaxID:=MyClipArray.Length()
		MyPasteLine:=0
	}
	;创建菜单
	SkSub_CreatMyClipArrayMenu()
return
}

; 启用通配符
Label_EnabledTongPei:
{
	if (MyUseTongPei =0)
	{
		MyUseTongPei :=1
		GuiControlGet,MySecText,,MySecText
		GuiControl,,MySecText,%MySecText%(*)
	}else {
		MyUseTongPei :=0
		GuiControlGet,MySecText,,MySecText
		StringReplace,MySecText,MySecText,(*),,All
		GuiControl,,MySecText,%MySecText%
	}
return
}

MyFun_RetrunKeys(HotKeyString)
{
	StringReplace,HotKeyString,HotKeyString,`+,Shift`+,All
	StringReplace,HotKeyString,HotKeyString,`!,Alt`+,All
	StringReplace,HotKeyString,HotKeyString,`^,Ctrl`+,All
	StringReplace,HotKeyString,HotKeyString,`#,Win`+,All
	return , % HotKeyString
}

GuiClose:
TrayHandle_Exit:
ExitApp





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kawvin一拖即存使用说明 【程序名称】:Kawvin一拖即存 【程序版本】:V1.1Bate 【程序开发】:Kawvin 【程序版权】:版权没有,违者不究 【使用方法】:将要保存为文本文件的内容选中后,拖拽到程序浮动窗口上即可。如果保存成功,浮动窗口会有一个笑脸一闪而过。 【更新说明】: 1.添加了托盘图标功能. 2.添加了开机自动启动功能. 【程序说明】: 1.自动创建INI配置文件; 2.自动记录浮动窗口所在位置; 3.支持两种存盘方式: (1)自动存盘:按如下方式自动存盘并自动重命名(重命名规则见后) 如果已指定TXT保存目录,则自动存盘于指定TXT保存目录; 如果未指定TXT保存目录,则自动存盘于EXE所在目录; 备注:TXT保存目录和EXE所在目录,路径字符串长度不能超过144个字符,否则可能会出错。 (2)手工存盘:每次存盘均需指定保存目录和文件名; 4.支持两种文本保存模式: (1)新建模式:每次存盘均新建文件并重命名; 备注:如果启用了临时添加模式功能键Ctrl或Alt键,则在本模式下,按住Ctrl或Alt键再将内容拖拽到浮动窗口,则将内容添加到上一次保存的文本文件中,仅添加一次。 (2)添加模式:总是将内容添加到上一次保存的文本文件中; 5.文本文件自动重命名规则: (1)跳过没有内容或只有空格的空行; (2)重命名时,删除非空首行内的空格,/,\,:,:,",“,”,?,?,<,>,|; (3)如非空首行内容过多,自动用前20个字符重命名; (4)如存在重复文件,自动以如下格式重命名: XXX.txt XXX-1.txt XXX-2.txt ......
Kawvin一拖即存使用说明 【程序名称】:Kawvin一拖即存 【程序版本】:V1.0Bate 【程序开发】:Kawvin 【程序版权】:版权没有,违者不究 【使用方法】: 将要保存为文本文件的内容选中后,拖拽到程序浮动窗口上即可。如果保存成功,浮动窗口会有一个笑脸一闪而过。 【程序说明】: 1.自动创建INI配置文件; 2.自动记录浮动窗口所在位置; 3.支持两种存盘方式: (1)自动存盘:按如下方式自动存盘并自动重命名(重命名规则见后) 如果已指定TXT保存目录,则自动存盘于指定TXT保存目录; 如果未指定TXT保存目录,则自动存盘于EXE所在目录; 备注:TXT保存目录和EXE所在目录,路径字符串长度不能超过144个字符,否则可能会出错。 (2)手工存盘:每次存盘均需指定保存目录和文件名; 4.支持两种文本保存模式: (1)新建模式:每次存盘均新建文件并重命名; 备注:如果启用了临时添加模式功能键Ctrl或Alt键,则在本模式下,按住Ctrl或Alt键再将内容拖拽到浮动窗口,则将内容添加到上一次保存的文本文件中,仅添加一次。 (2)添加模式:总是将内容添加到上一次保存的文本文件中; 5.文本文件自动重命名规则: (1)跳过没有内容或只有空格的空行; (2)重命名时,删除非空首行内的空格,/,\,:,:,",“,”,?,?,<,>,|; (3)如非空首行内容过多,自动用前20个字符重命名; (4)如存在重复文件,自动以如下格式重命名: XXX.txt XXX-1.txt XXX-2.txt ......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值