智能跳转---TC资源管理器

智能跳转---TC资源管理器

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;作者:天甜;QQ:105224583
;一花一世界,一叶一枯荣,心无挂碍,无挂碍故,无有恐怖,远离颠倒梦想,究竟涅盘。
;更新于:2016-10-10-20-36
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Process, Priority,,high			;脚本高优先级
#NoTrayIcon 						;隐藏托盘图标
#NoEnv								;不检查空变量是否为环境变量
#Persistent						;让脚本持久运行(关闭或ExitApp)
#SingleInstance Force				;跳过对话框并自动替换旧实例
#WinActivateForce					;强制激活窗口
#MaxHotkeysPerInterval 200		;时间内按热键最大次数
SetBatchLines -1					;脚本全速执行
SetControlDelay 0					;控件修改命令自动延时
CoordMode Menu Window				;坐标相对活动窗口
SendMode Input						;更速度和可靠方式发送键盘点击
SetTitleMatchMode 2				;窗口标题模糊匹配
;SetTitleMatchMode,RegEx
DetectHiddenWindows On				;显示隐藏窗口
SetWorkingDir %A_ScriptDir%		;当前脚本所在目录的绝对路径.不包含最后的反斜线(根目录同样如此);A_ScriptDir指的是D:\zxh\QuickZ\Apps

;另存为|保存|复制|新建|打开|图形另存为|文件打开|保存副本|上传|选择文件 ahk_class #32770
GroupAdd,Window32770,另存为 ahk_class #32770
GroupAdd,Window32770,保存 ahk_class #32770
GroupAdd,Window32770,复制 ahk_class #32770
GroupAdd,Window32770,新建 ahk_class #32770
GroupAdd,Window32770,打开 ahk_class #32770
GroupAdd,Window32770,图形另存为 ahk_class #32770
GroupAdd,Window32770,文件打开 ahk_class #32770
GroupAdd,Window32770,打开文件 ahk_class #32770
GroupAdd,Window32770,保存副本 ahk_class #32770
GroupAdd,Window32770,上传 ahk_class #32770
GroupAdd,Window32770,选择文件 ahk_class #32770
GroupAdd,Window32770,插入图片 ahk_class #32770
GroupAdd,Window32770,导入 ahk_class #32770

global this_title=
global zParam
;~ OnMessage(0x5555, "MsgMonitor")

;在某些程序中自动切换中文,某些英文			注册个窗口钩子然后监听系统消息
Gui +LastFound +hwndhwndshellwindow
DllCall( "RegisterShellHookWindow", "UInt",hwndshellwindow )
OnMessage( DllCall( "RegisterWindowMessage", "Str", "SHELLHOOK" ), "SwitchMessage" )
return
;~ MsgMonitor(wParam, lParam, msg)
;~ {
    ;~ zParam = %wParam%
;~ }
^+!1::zParam := 1
^+!0::zParam := 0

SwitchMessage( wParam,lParam ) 	;{
{
	If ( wParam != 1 )		;新开窗口
	{
	If WinActive("ahk_class TTOTAL_CMD")
		{
		WinWaitNotActive ahk_class TTOTAL_CMD
		SendMessage 1074, 21, 0, , ahk_class TTOTAL_CMD
		ControlGetText, varPathInTC, , ahk_id %ErrorLevel%
		StringReplace, this_title, varPathInTC, >, \
		IfWinExist ahk_group Window32770
			{
			WinWaitActive ahk_group Window32770, , 2
			if !ErrorLevel
			;IfWinActive ahk_group Window32770
				{
				ControlClick, Edit1, A
				Sleep, 100
				ControlSetText, Edit1, %this_title%, A
				Sleep, 50
				ControlSend, Edit1, {Enter}, A
				}
			else
				return
			}
		else
			return
		return
		}
	If WinActive("ahk_class CabinetWClass")
		{
		WinWaitNotActive ahk_class CabinetWClass
		WinGetTitle, this_title, ahk_class CabinetWClass	;“文件夹选项”,“查看”,“在标题栏显示完整路径”,“确定”,显示完整路径
		if this_title=桌面
			this_title=%A_Desktop%
		;if this_title=库\文档
			;this_title=%A_MyDocuments%
		IfWinExist ahk_group Window32770
			{
			WinWaitActive ahk_group Window32770, , 2
			if !ErrorLevel
			;IfWinActive ahk_group Window32770
				{
				ControlClick, Edit1, A
				Sleep, 100
				ControlSetText, Edit1, %this_title%, A
				Sleep, 50
				ControlSend, Edit1, {Enter}, A
				}
			else
				return
			}
		else
			return
		return
		}
	If WinActive("ahk_class SciTEWindow")
		{
		if zParam = 1
			{
			OCR_IBEAM			=32513
			hbeam := DllCall("LoadCursorFromFile","Str","D:\zxh\QuickZ\User\Icons\zzx.cur")
			DllCall( "SetSystemCursor", Uint,hbeam, Int,OCR_IBEAM )
			}
		if zParam = 0
			{
			SPI_SETCURSORS := 0x57
			DllCall("SystemParametersInfo", "UInt", SPI_SETCURSORS, "UInt", 0, "UInt", 0, "UInt", 0)
			}
		WinWaitNotActive ahk_class SciTEWindow
			{
			SPI_SETCURSORS := 0x57
			DllCall("SystemParametersInfo", "UInt", SPI_SETCURSORS, "UInt", 0, "UInt", 0, "UInt", 0)
			}
		return
		}
	}
}			;}


>!o::
	Send, ^o
	WinWaitActive ahk_class #32770
	ControlFocus, Edit1, A
	send,{Backspace}
	sleep 100
	ControlSetText, Edit1, %this_title%, A
	Sleep, 50
	ControlSend, Edit1, {Enter}, A
	return
>!l::
	Send, ^+s
	WinWaitActive ahk_class #32770
	ControlFocus, Edit1, A
	send,{Backspace}
	sleep 100
	ControlSetText, Edit1, %this_title%, A
	Sleep, 50
	ControlSend, Edit1, {Enter}, A
	return
>!n::
	Send, ^n
	WinWaitActive ahk_class #32770
	ControlFocus, Edit1, A
	send,{Backspace}
	sleep 100
	ControlSetText, Edit1, %this_title%, A
	Sleep, 50
	ControlSend, Edit1, {Enter}, A
	return
;~ ^+s::
	;~ Send ^+s
    ;~ WinWaitActive ahk_class #32770
	;~ ControlFocus, Edit1, A
	;~ send,{Backspace}
	;~ sleep 100
	;~ ControlSetText, Edit1, %this_title%, A
	;~ Sleep, 50
	;~ ControlSend, Edit1, {Enter}, A
	;~ return
	
#IfWinActive, ahk_class #32770
^g::		;发送最后 TC or 资管 路径到32770
	ControlClick, Edit1, A
	Sleep, 100
	ControlSetText, Edit1, %this_title%, A
	Sleep, 100
	ControlSend, Edit1, {Enter}, A
return

^e:: GoSub,Sub_SendCurDiagPath2Exp		;在系统资管中打开对话框的路径
^t:: GoSub,Sub_SendCurDiagPath2Tc		;在TC中打开对话框的路径
;~ Space & t:: GoSub,Sub_SendCurDiagPath2Tc
#If

;将Explorer中路径发送到对话框
Sub_SendExpCurPath2Diag:
{
	WinActivate ahk_class CabinetWClass
	WinGetTitle, Title, ahk_class CabinetWClass	;打开“文件夹选项”,切换到“查看”选项卡,在高级设置列表框中勾选“在标题栏显示完整路径”,单击“确定”按钮使设置生效,现在访问文件夹路径时就会在左上角的标题栏显示完整路径
	if Title=桌面
		Title=%A_Desktop%
	Send !{Tab}
	ControlFocus, Edit1, A
	send,{Backspace}
	sleep 100
	ControlSetText, Edit1, %Title%,A
	send,{enter}
return
}
;将tc中路径发送到对话框
Sub_SendTcCurPath2Diag:
{
	clipraw:=Clipboard
	Clipboard =
	PostMessage, 1075, 2029,0,, ahk_class TTOTAL_CMD
	ClipWait, 1
	srcDIR := Clipboard
	Clipboard:=clipraw

	;再发送剪贴板路径到控件
	ControlFocus, Edit1, A
	send,{Backspace}
	sleep 100
	ControlSetText, Edit1, %srcDIR%,A
	send,{enter}
return
}
;将tc中路径发送到对话框-备份
Sub_SendTcCurPath2Diag2:
{
	;将剪贴板中内容作为文件名
    B_Clip2Name := false
	B_ChangeDiagSize := true

	;先获取TC中当前路径
	clip:=Clipboard
	Clipboard =
    ;TC_Msg := 1075,cm_CopySrcPathToClip 2029
	PostMessage, 1075, 2029,0,, ahk_class TTOTAL_CMD
	ClipWait, 1
	srcDIR := Clipboard
	Clipboard:=clip

	;再发送剪贴板路径到控件
	ControlFocus, Edit1, A
	send,{Backspace}
	sleep 100
	ControlSetText, Edit1, %srcDIR%,A
	send,{enter}
	;msgbox %clip%
	if(B_Clip2Name){
		Sleep 100
		ControlSetText, Edit1, %clip%,A
	}
	;ControlSetText, Edit1, %text%,A
	if(B_ChangeDiagSize){
		;WinGetPos, xTB, yTB,lengthTB,hightTB, ahk_class Shell_TrayWnd
		;改变对话框大小,省事就直接移动到100,100的位置,然后85%屏幕大小,否则就要详细结算任务栏在上下左右的位置
		WinMove, A,,80,80, A_ScreenWidth * 0.85, A_ScreenHeight * 0.85
	}
return
}
;在TC中打开对话框的路径
Sub_SendCurDiagPath2Tc:
{
	WinGetText, CurWinAllText
	Loop, parse, CurWinAllText, `n, `r
	{
		If RegExMatch(A_LoopField, "^地址: "){
			curDiagPath := SubStr(A_LoopField,4)
			break
		}
	}
	{
	DiagPath := % curDiagPath
	WinActivate ahk_class TTOTAL_CMD
	PostMessage 1075, 3001, 0, , AHK_CLASS TTOTAL_CMD
	ControlSetText, Edit1, cd %DiagPath%, ahk_class TTOTAL_CMD
	Sleep 400
	ControlSend, Edit1, {Enter}, ahk_class TTOTAL_CMD
	}
return
}
;在系统资管中打开对话框的路径
Sub_SendCurDiagPath2Exp:
{
	WinGetText, CurWinAllText
	Loop, parse, CurWinAllText, `n, `r
	{
		If RegExMatch(A_LoopField, "^地址: "){
			curDiagPath := SubStr(A_LoopField,4)
			break
		}
	}
	{
	DiagPath := % curDiagPath
	run explorer.exe %DiagPath%
	}
return
}


^F12::Reload
^F11::ExitApp



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值