#Requires AutoHotkey v1.1.36
Menu, Tray, Icon, %A_ScriptDir%\Lib\0\Library.ico  ; 自定义托盘图标
Menu, Tray, Tip, Ahk1.1                                    ; 托盘提示

#NoEnv                                                             ; 不使用旧环境变量
#SingleInstance Force                                      ; 防止重复运行
SendMode Input                                              ; 更快的发送方式
#WinActivateForce                                           ; 强制激活窗口
#ClipboardTimeout -1                                      ; 剪贴板永不超时
SetWorkingDir, %A_ScriptDir%                        ; 以脚本目录为工作目录
SetTitleMatchMode, 2                                      ; 设置窗口标题匹配为“包含”
DetectHiddenWindows, On                             ; 可以操作隐藏窗口

; 以下性能优化设置请根据需求决定是否保留
;SetBatchLines, 10ms                                        ; -1 为最大性能(高CPU)
;Process, Priority,, High                                     ; 设置脚本为高优先级
#HotkeyModifierTimeout 0                             ; 修饰键粘滞问题修复(可选)

#Persistent                                                       ; 让脚本保持常驻
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 1-19

#include *i %A_ScriptDir%\Lib\ImagePut.ahk%A_TrayMenu%.ahk
#Include *i %A_ScriptDir%\Lib\ImagePut.ahk
#Include *i %A_ScriptDir%\Lib\BTT.ahk
#Include *i %A_ScriptDir%\Lib\Gdip_All.ahk
#Include *i %A_ScriptDir%\Lib\NonNull.ahk
#Include *i %A_ScriptDir%\Lib\TrayIcon.ahk
#Include *i %A_ScriptDir%\Lib\StdOutToVar.ahk
#Include *i %A_ScriptDir%\Lib\ahk777.ahk
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 2-29

#SingleInstance Off
;MsgBox, 4096,, % A_Now
return

	OnlyOne(flag="") 
  {
  	static init:=OnlyOne("001")
  	DetectHiddenWindows, % (bak:=A_DetectHiddenWindows) ? "On":"On"
  	mypid:=DllCall("GetCurrentProcessId")
  	flag:="Ahk_OnlyOne_Ahk<<" . flag . ">>"
  	Gui, Ahk_OnlyOne_Ahk: Show, Hide, %flag%
  	WinGet, list, List, %flag% ahk_class AutoHotkeyGUI
  	Loop, % list
  	IfWinExist, % "ahk_id " . list%A_Index%
  {
    	WinGet, pid, PID
    	IfEqual, pid, %mypid%, Continue
   	 WinClose, ahk_pid %pid% ahk_class AutoHotkey,, 3
    	IfWinNotExist,,, Continue
    	Process, Close, %pid%
    	WinWaitClose
  }

  	WinGet, list, List, %flag% ahk_class AutoHotkeyGUI
  	IfNotEqual, list, 1, ExitApp
  	DetectHiddenWindows, %bak%
  }

;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ   限制单进程运行    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 3-63

;🎫🎫🎫🎫🎫🎫🎫🎫🎫🎫    基本   设置   🎫🎫🎫🎫🎫🎫🎫🎫🎫🎫🎫
;🍁🍁🍁🍁🍁🍁🍁🍁🍁🍁    复制   粘贴   🍁🍁🍁🍁🍁🍁🍁🍁🍁🍁🍁
global MyClipData
global page
Tab & q:: 批量复制粘贴工具()
	#IfWinExist, 批量复制粘贴工具 ahk_class AutoHotkeyGUI
$^c::
	Clipboard:=""
	Send ^c{Ctrl Up}
	ClipWait, 3
	s:=Clipboard
	if (s="")
	ToolTip,
else
	批量复制粘贴工具(s)
	return
1::
	nume:=1
	Gosub copytt(nume)
	return
2::
	nume:=2
	Gosub copytt(nume)
	return
3::
	nume:=3
	Gosub copytt(nume)
	return
4::
	nume:=4
	Gosub copytt(nume)
	return
5::
	nume:=5
	Gosub copytt(nume)
	return
6::
	nume:=6
	Gosub copytt(nume)
	return
7::
	nume:=7
	Gosub copytt(nume)
	return
8::
	nume:=8
	Gosub copytt(nume)
	return
9::
	nume:=9
	Gosub copytt(nume)
	return
copytt(nume):
{
	i:=nume
	Clipboard:=MyClipData[i:=(page-1)*10+i]
	Send ^v
	return
}
0::
	nume1:=0
	Gosub copytt(nume1)
	return
copytt(nume1):
{
	i:=nume1
	Clipboard:=MyClipData[i:=(page-1)*10+10+i]
	Send ^v
	return
}
#IfWinExist
;-------- 下面是函数 --------
批量复制粘贴工具(s:="", Cmd:="")
{
static
  	if (Cmd="Move")
{
	if (A_GuiControl="")
	SendMessage, 0xA1, 2
	return
}
else if (Cmd="Click")
{
    	i:=SubStr(A_GuiControl, 3)
    	if (i>=1 and i<=10)
{
      	s:=MyClipData[i:=(page-1)*10+i]
      	if (s="")
        	return
      	if (!clear)
{
       	; Gui, MyClip: Hide
        	; Gui, MyClip: Show, NA
        	Clipboard:=s
        	Send ^v
        	Sleep, 200
        	return
}
      	MyClipData.RemoveAt(i)
      	if (MyClipData.length()<(page-1)*10+1)
        	page--
}
else if (i=11 and page>1)
	page--
else if (i=13 and MyClipData.length()>page*10)
	page++
else if (i=12)
      	clear:=!clear
}
else if (Cmd="" and s!="")
{
    	MyClipData.InsertAt(1,s), page:=1, clear:=0
}
 	 if !IsObject(MyClipData)
{
    MyClipData:=[], page:=1, clear:=0
    Run:=Func(A_ThisFunc).Bind("","Click")
    Gui, MyClip: Destroy
    Gui, MyClip: +AlwaysOnTop +ToolWindow +E0x08000000
    Gui, MyClip: Margin, 10, 10
    Gui, MyClip: Color, f39bdc8
    Gui, MyClip: Font, s11,c364f6b
    Loop, 13
    {
      i:=A_Index, v:=(i=11 ? "<<" : i=13 ? ">>" : "")
      j:=(i=1 ? "w250 Left" : i=11 ? "xm w75"
        : i=12 ? "x+0 w100" : i=13 ? "x+0 w75" : "y+0 wp Left")
      Gui, MyClip: Add, Button, %j% vbt%i% Hwndid -Wrap, %v%
      GuiControl, MyClip: +g, %id%, % Run
    }
    Gui, MyClip: Show, NA, %A_ThisFunc%
    OnMessage(0x201, Func(A_ThisFunc).Bind("","Move"))
    v:=Func(A_ThisFunc).Bind("","")
    Menu, Tray, Add
    Menu, Tray, Add, %A_ThisFunc%, %v%
    Menu, Tray, Default, %A_ThisFunc%
    Menu, Tray, Click, 1
  }
  Loop, 10
  {    Menu, Tray, Click, 1

    i:=A_Index, v:=MyClipData[(page-1)*10+i]
    v:=(v="" ? v : "[" StrLen(v) "] " SubStr(v,1,50))
    v:=RegExReplace(v, "s+", " ")
    GuiControl, MyClip: , bt%i%, %v%
  }
  GuiControl, MyClip: , bt12, % clear ? "点选条目":"+删除条目+"
  Gui, MyClip: Show, NA
}
return

;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ Tab+q 批量复制粘贴   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 4-216

;#Persistent
	Copy(clipboardID) 
{
	global 
	local oldClipboard := ClipboardAll ; Save the (real) clipboard

	Clipboard := "" 
	SendInput {Ctrl Down}c{Ctrl Up}
	ClipWait, 2, 1 
if ErrorLevel 
{
	Clipboard := oldClipboard ; Restore old (real) clipboard
	return
}
	ClipboardData%clipboardID% := Clipboard
	Clipboard := oldClipboard ; Restore old (real) clipboard
}
Cut(clipboardID) 
{
	global ; All variables are global by default
	local oldClipboard := ClipboardAll ; Save the (real) clipboard
	Clipboard := "" ; Erase the clipboard first, or else ClipWait does nothing
	SendInput {Ctrl Down}x{Ctrl Up}
	ClipWait, 2, 1 ; Wait 1s until the clipboard contains any kind of data
if ErrorLevel 
{
	Clipboard := oldClipboard ; Restore old (real) clipboard
	return
}
	ClipboardData%clipboardID% := Clipboard
	Clipboard := oldClipboard ; Restore old (real) clipboard
}
Paste(clipboardID) 
{
	global
	local oldClipboard := ClipboardAll ; Save the (real) clipboard
	Clipboard := "" ; Erase the clipboard first, or else ClipWait does nothing
	Clipboard := ClipboardData%clipboardID%
	ClipWait, 2, 1 ; Wait 1s until the clipboard contains any kind of data
	SendRaw, % Clipboard ; Was having an issue with ^v
	Clipboard := oldClipboard ; Restore old (real) clipboard
}
	return
;---------------------------------------------------------------------------   copy
Tab & 2::Copy(1)
Tab & 3::Copy(2)
Tab & 4::Copy(3)
Tab & 5::Copy(4)
Tab & 6::Copy(5)
Tab & s::Copy(6)
Tab & d::Copy(7)
 ;---------------------------------------------------------------------------   paste
Tab & w::Paste(1)
Tab & e::Paste(2)
Tab & r::Paste(3)
Tab & t::Paste(4)
Tab & y::Paste(5)
Tab & x::Paste(6)
Tab & c::Paste(7)
;-----------------------------------------------------------------------------   cut
Tab & f::Cut(1)
;---------------------------------------------------------------------------   paste
Tab & v::Paste(1)                                 ;-------------->Tab &  s  剪切   Tab &  x 粘贴
;-----------------------------------------------------------------------------------
return
;ΞΞΞΞΞΞΞΞΞΞ   Tab &  2345678复制  wertyui 粘贴 sd剪 xc粘 ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 05-295

;➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿➿

NumpadEnter::
	KeyList := "Shift|Ctrl|Alt|CapsLock|space|Appskey|win|F1|F2|F3|F4|F5|F6|F7|F8|F9" 
Loop, Parse, KeyList, |
      {
    	If GetKeystate(A_Loopfield, "P")   ; 如果你觉得某些按键像是“卡住了”,释放以上修饰键
        	Send % "{" A_Loopfield " Up}"
      }
; 如果你修改了桌面快捷方式或图标但图标没刷新 ⇒ 可能需要 ie4uinit.exe -ClearIconCache
Run *RunAs C:\Windows\System32\ie4uinit.exe -ClearIconCache  

sleep,1000
	reload                   ; 如果你只是修改了脚本内容,想让新内容生效 ⇒ 只要 reload
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  NumpadEnter 重启脚本 ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 000005-330

;🍁🍁🍁🍁🍁🍁🍁🍁🍁🍁    复制   操作   🍁🍁🍁🍁🍁🍁🍁🍁🍁🍁🍁
;🎆🎆🎆🎆🎆🎆🎆🎆🎆🎆    截图   操作   🎆🎆🎆🎆🎆🎆🎆🎆🎆🎆🎆

Appskey & 5::                                ;---- 后台截图 4000 为间隔4秒  共运行3 次 
run, nircmd  loop 3 4000 savescreenshot "C:\Users\z\Desktop\a\~$currtime.HHmm_ss$ ~$loopcount$.png"
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ Appskey & 5  后台间隔截图 全屏  ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 008-353
 
b100(timeout = 400, keyOverride := "")              ; keyOverride 作用是调用函数时,能指定一个按键,而不是总是使用 A_ThisHotKey 来获取当前热键
{
    tout := timeout / 1000
    key := keyOverride ? keyOverride : RegExReplace(A_ThisHotKey, "[\*\~\$\#\+\!\^]")
    Loop 
{
        t := A_TickCount
        KeyWait %key%
        Pattern .= A_TickCount - t > timeout
        KeyWait %key%, DT%tout%
        If (ErrorLevel)
            Return Pattern
    }
}
;-----------------------------------------------------------------------------------

+Esc:: 
    p := b100()
    If (p = "0")                  ; 用户触发 b106(), 开始检测当前热键的按键模式
    {
        Run, c:\3\9 FSCapture97\FSCapture.exe, , min
        Sleep, 800
        SendInput, !+x ; 开始截图
        ; 等待编辑器窗口打开
        WinWait, ahk_class TMainWin.UnicodeClass, , 20 ; 等待 5 秒,超时则跳过
        IfWinExist, ahk_class TMainWin.UnicodeClass
        {
            WinActivate ; 激活编辑器窗口
            Sleep, 500  ; 确保窗口完全激活
            SendInput, <^s
        }
    }
    If (p = "00")
    {
        Process, Close, FSCapture.exe
    }
return

;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  +Esc::  单击FSCapture双击退出   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 006-452

$<^Esc::     
	run "D:\ahk1.0\Lib\0 tool\ScreenCapture\ScreenCapture.exe"
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  <^Esc  截图    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 21-408

$+#s::                                        ;-------------------系统自带加了一个保存在桌面
	clipboard =
	clipboard = clipboardALL
	Send, {PrintScreen}
sleep,5000
	file := ImagePutFile(clip, "C:\oneD\OneDrive\desktop\" )
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  +#s  截图  剪贴板 desktop   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 011-507

 CoordMode, Mouse, Client  ; 设置坐标模式为客户端
F1 & c::
	Run "C:\Program Files\Google\Chrome\Application\chrome.exe" ; --new-window, , max
	WinWait, ahk_exe chrome.exe, , 5         ;---------------- 最多等待 5 秒
	;Run, C:\3\v2rayN-With-Core\v2rayN.exe , , min
	;Run, D:\ahk1.0\Lib\0 tool\karing_1.0.39.527_windows_x64\karing.exe , , min
/*
Send, ^t
Sleep, 300
Send, ^+{Del}                                                       ; 执行 Ctrl + Shift + Delete
Sleep, 1000

; 定义点击次数和位置
clickCount := 1  ; 设置需要点击的次数
xPos := 978      ; 点击的 X 坐标(根据 Client 坐标调整)
yPos := 617       ; 点击的 Y 坐标(根据 Client 坐标调整)

; 循环执行 ControlClick
Loop, %clickCount%
{
    ControlClick, x%xPos% y%yPos%, ahk_class Chrome_WidgetWin_1
    Sleep, 300  ; 每次点击后暂停300毫秒,确保应用程序有时间处理请求
}
send, ^w
*/
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F1 & C  打开 chrome     ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00011-969

#SingleInstance force                                                          ; 强制加载新的脚本
isRunning := false                  ; 状态变量: isRunning 用于跟踪脚本是否正在运行
F1 & v::
    Process, Exist, v2rayN.exe                                      ; 检查程序是否已经在运行
    if (ErrorLevel)                 ;根据 ErrorLevel 的值来决定是关闭程序还是启动程序
    {
                                                                            ; 如果程序正在运行,则关闭它
        Process, Close, v2rayN.exe
        isRunning := false                                                        ; 更新状态为未运行
    } 
    else 
    {
                                                                        ; 如果程序没有在运行,则启动它
        Run, D:\ahk1.0\Lib\0 tool\v2rayN-With-Core\v2rayN.exe , , min 
        isRunning := true                                                     ; 更新状态为正在运行
    }
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ    F1 & v 打开 v2rayN.exe ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00007-894

#esc::	                                                               ;   框选OCR
send, !j
sleep, 10
send, ^]
sleep, 9000
send, !u
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ #esc  关闭Vpn Ocr 再打开Vpn ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 14-305

;#SingleInstance Force
;#NoEnv
displayNum := 0
visibleState := true

F9 & 9::
	pasteToScreen(){
	if DllCall("IsClipboardFormatAvailable", "UInt", 1)
	displayText(Clipboard)
	If DllCall("IsClipboardFormatAvailable", "UInt", 2)
{
	if DllCall("OpenClipboard", "uint", 0) 
{
	hBitmap := DllCall("GetClipboardData", "uint", 2)
	DllCall("CloseClipboard")
}
	displayImg(hBitmap)
}
	if DllCall("IsClipboardFormatAvailable", "UInt", 15){
	imgFile := Clipboard
	if(hBitmap := LoadPicture(imgFile))
	displayImg(hBitmap)
}
}
	displayText(text)
{
	global
Gui, New, +hwndpasteText%displayNum% -Caption +AlwaysOnTop +ToolWindow -DPIScale
	local textHnd := pasteText%displayNum%
	Gui, Margin, 10, 10
	Gui, Font, s16
	Gui, Add, Text,, % text
	OnMessage(0x201, "move_Win")
	OnMessage(0x203, "close_Win")
	Gui, Show,, pasteToScreen_text
	transparency%textHnd% := 100
	displayNum++
}
	displayImg(hBitmap)
{
	global
Gui, New, +hwndpasteImg%displayNum% -Caption +AlwaysOnTop +ToolWindow -DPIScale
	local imgHnd := pasteImg%displayNum%
	Gui, Margin, 0, 0
	Gui, Add, Picture, Hwndimg%imgHnd%, % "HBITMAP:*" hBitmap
	OnMessage(0x201, "move_Win")
	OnMessage(0x203, "close_Win")
	Gui, Show,, pasteToScreen_img
	local img := img%imgHnd%
ControlGetPos,,, width%imgHnd%, height%imgHnd%,, ahk_id %img%
	scale%imgHnd% := 100
	transparency%imgHnd% := 100
	displayNum++
}
	move_Win()
{
	PostMessage, 0xA1, 2
}
	close_Win()
{
	id := WinExist("A")
	transparency%id% := ""
	scale%id% := ""
	width%id% := ""
	height%id% := ""
	Gui, Destroy
}

return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ    F9+9 贴图   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 013-588
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ    Shift+鼠标滚动   改变粘贴的透明度   ΞΞΞΞΞΞΞΞΞΞ 014-588
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ    鼠标滚轮改变贴图大小 双击关闭   ΞΞΞΞΞΞΞΞΞΞΞΞΞ015-588

F9 & 0::
	toggleVisibleState()
{
	global visibleState
	if(visibleState){
	WinGet, id, List, pasteToScreen
	Loop, %id%
{
	this_id := id%A_Index%
	WinHide, ahk_id %this_id%
}
	visibleState := false
} 
	else 
{
	DetectHiddenWindows, On
	WinGet, id, List, pasteToScreen
	Loop, %id%
{
	this_id := id%A_Index%
	WinShow, ahk_id %this_id%
}
	DetectHiddenWindows, Off
	visibleState := true
}
}
	return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ    F9+0 隐藏或显示所有粘贴    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 016-619

F9 & -::
	destroyAllPaste()
{
	WinGet, id, List, pasteToScreen
	Loop, %id%
{
	this_id := id%A_Index%
	SendMessage, 0x203,,,, ahk_id %this_id%
}
}
	return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ    F9+- 关闭贴图    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 017-632

F9 & =::
	FileSelectFile, imgFile, 3, C:\oneD\OneDrive\desktop\
	hBitmap := LoadPicture(imgFile)
	displayImg(hBitmap)
	return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ    F9+= 打开图并设置为贴图   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 018-639

F9 & 8::
	Imageshow({image: %clipboardAll%, scale: ["auto", 600]})  ;长自动,宽600
	;Imageshow({image: %clipboardAll%, scale: 2.25})   ; 放大到2.25倍
	return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F9 & 8 剪贴板贴图 放大到1.25倍   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 019-645

;🎆🎆🎆🎆🎆🎆🎆🎆🎆🎆    截图   操作   🎆🎆🎆🎆🎆🎆🎆🎆🎆🎆🎆
;🎟🎟🎟🎟🎟🎟🎟🎟🎟🎟    显隐   操作   🎟🎟🎟🎟🎟🎟🎟🎟🎟🎟🎟

F5 & r::
	HideShowTaskbar()
{
   	static SW_HIDE := 0, SW_SHOWNA := 8, SPI_SETWORKAREA := 0x2F
   	DetectHiddenWindows, On
   	hTB := WinExist("ahk_class Shell_TrayWnd")
   	WinGetPos,,,, H
hBT := WinExist("ahk_class Button ahk_exe Explorer.EXE")  ; for Windows 7
   	b := DllCall("IsWindowVisible", "Ptr", hTB)
   	for k, v in [hTB, hBT]
( v && DllCall("ShowWindow", "Ptr", v, "Int", b ? SW_HIDE : SW_SHOWNA) )
   	VarSetCapacity(RECT, 16, 0)
   	NumPut(A_ScreenWidth, RECT, 8)
   	NumPut(A_ScreenHeight - !b*H, RECT, 12, "UInt")
DllCall("SystemParametersInfo", "UInt", SPI_SETWORKAREA, "UInt", 0, "Ptr", &RECT, "UInt", 0)
   	WinGet, List, List
	Loop % List
{
	WinGet, res, MinMax, % "ahk_id" . List%A_Index%
	if (res = 1)
WinMove, % "ahk_id" . List%A_Index%,, 0, 0, A_ScreenWidth, A_ScreenHeight - !b*H
}
}
	return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ    F5 & r  隐藏任务栏   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 0002-679

F5 & y::          ;;隐藏文件
RegRead,value,HKEY_CURRENT_USER,Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\, Hidden
	If(value=1)
	value = 2
	Else
	value = 1
RegWrite, REG_DWORD, HKEY_CURRENT_USER,Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\, Hidden, %Value%
RegWrite, REG_DWORD, HKEY_CURRENT_USER,Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\, ShowSuperHidden, %Value%-1
	PostMessage,0x111,0x7103,0,SHELLDLL_DefView1,A
	return

F5 & k::           ;;显示文件扩展名
RegRead,Value,HKEY_CURRENT_USER,Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\,HideFileExt
	If(value=0)
	value = 1
	Else
	value = 0
RegWrite, REG_DWORD,HKEY_CURRENT_USER,Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\,HideFileExt, %Value%
	PostMessage,0x111,0x7103,0,SHELLDLL_DefView1,A
	return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ   F5 & k 显示扩展名 F5 & y 显隐文件   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 0005-728

F5 & s::
; 设置注册表路径和值名称
regPath := "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
valueName := "IconsOnly"

; 读取当前的 IconsOnly 值
RegRead, currentValue, %regPath%, %valueName%

; 如果读取失败(值不存在),则将值初始化为 0
if (ErrorLevel)
    currentValue := 0

; 切换值:如果当前值是 0 则设置为 1,否则设置为 0
newValue := (currentValue = 0) ? 1 : 0

; 写入新值到注册表
RegWrite, REG_DWORD, %regPath%, %valueName%, %newValue%

 ; 刷新资源管理器以应用更改
;send, ^r
; 使用 COM 对象刷新桌面和文件资源管理器窗口
for window in ComObjCreate("Shell.Application").Windows
{
    if (window.FullName != "")  ; 检查是否是有效的资源管理器窗口
        window.Refresh()
}
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F5 & s  缩略图   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 0006-757

F5 & c::
Send, <!p
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ F5 & c 显示预览窗格  ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 0007-762

F5 & 6::
	WinGetActiveTitle, Title
	Title := StrReplace(Title, "Ξ置顶 Ξ")
	ID := WinExist("A")
	WinGet, ExStyle, ExStyle, ahk_id %ID%
	If (ExStyle & 0x8)
{
	WinSet,TopMost,,A
	WinSetTitle, , ,Ξ OFF Ξ
 	SoundPlay, D:\ahk1.0\Lib\0\y2253.mp3
}
	Else
{
	WinSet,TopMost,,A
	WinSetTitle, , ,Ξ 置顶 Ξ
   	SoundPlay, D:\ahk1.0\Lib\0\2.mp3
}
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ    F5 & 6  窗口置顶    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 0008-782

;🍁🍁🍁🍁🍁🍁🍁🍁🍁🍁    显隐   操作   🍁🍁🍁🍁🍁🍁🍁🍁🍁🍁🍁
;🎆🎆🎆🎆🎆🎆🎆🎆🎆🎆    打开   操作   🎆🎆🎆🎆🎆🎆🎆🎆🎆🎆🎆

F5 & 9::
	Imageshow("D:\ahk1.0\1\1.png")
	return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F5 & 9  快捷键目录   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00002-801

F5 & 0::
	Imageshow("D:\ahk1.0\1\2.png")
	return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F5 & 0  快捷键目录   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00003-806
 
F5 & -::
	Imageshow("D:\ahk1.0\1\7.png")
	return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F5 & 0  快捷键目录   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00003-806
 
F5 & +::
	Imageshow("D:\ahk1.0\1\5.png")
	return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F5 & 0  五笔键图示   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00003-806

F5 & 8::
	o=D:\ahk1.0\Lib\0 tool\EmEditor-24.5.3-x64\EmEditor.exe

	1=D:\ahk1.0\Lib\0 tool\picgo-croe\config.toml
	2=C:\Users\z\.picgo\config.json
	3=D:\ahk1.0\Lib\ahk777.ahk
	4=D:\ahk1.0\Ahk1.1.ahk

	Run,%o% "%1%" "%2%" "%3%" "%4%"
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ   F5 & 8    EmEditor 打开4文件   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00006-856

^+z:: 
	WinGet, processID, PID, A                      ;--获取当前活动窗口的进程ID
WinGet, exePath, ProcessPath, ahk_pid %processID%    ; 获取可执行文件路径 
	SplitPath, exePath, , fileDir            ; 提取文件夹路径
	Run, %fileDir%            ; 打开文件夹
 	return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  ^+z 打开当前软件的文件夹   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00005-846

CoordMode, Mouse, Window
Rctrl & 4::
WeChat:="ahk_class WeChatMainWndForPC"
WeChat_path:="C:\Program Files\Tencent\WeChat\WeChat.exe" ,max

if ProcessExist("WeChat.exe")=0
{
	Run, %WeChat_path%
WinWait, ahk_class WeChatLoginWndForPC
}
else
{
	WinGet,wxhwnd,ID,%WeChat%
	if strlen(wxhwnd)=0
	{
		winshow,%WeChat%
		winactivate,%WeChat%
	}
	else
	{
		winhide,%WeChat%
	}
}
return

ProcessExist(exe){		   ;一个自定义函数,根据自定义函数的返回值作为#if成立依据原GetPID
	Process, Exist,% exe
	return ErrorLevel
}
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  Rctrl & 4  打开 微信    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00014-1062

;#Persistent                     ;确保脚本常驻:保证脚本不因长时间未使用而自动退出。
Rctrl & 5::
    KeyWait, Rctrl, D  ; 确保释放 Rctrl 键后再执行操作

    ; 检查 EmEditor.exe 是否已存在
    IfWinNotExist, ahk_exe EmEditor.exe
    {
        Run "D:\ahk1.0\Lib\0 tool\EmEditor-24.5.3-x64\EmEditor.exe"
        ;Run "C:\0  tool\EmEditor\EmEditor.exe"
        WinWait, ahk_exe EmEditor.exe, , 5  ; 最多等待 5 秒
    }
    Else IfWinNotActive, ahk_exe EmEditor.exe
    {
        WinActivate  ; 激活窗口
    }
    Else
    {
        ; 检查窗口是否已最小化
        IfWinExist, ahk_exe EmEditor.exe
        {
            WinGet, MinimizedState, MinMax, ahk_exe EmEditor.exe
            if (MinimizedState = -1)  ; 如果窗口已最小化
                WinRestore  ; 还原窗口
            else
                WinMinimize  ; 否则最小化窗口
        }
    }
Return

;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  Rctrl & 5   打开 EmEditor  ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00012-999

Rctrl & 6::
    KeyWait, Rctrl, D  ; 确保释放 Rctrl 键后再执行操作

    IfWinNotExist, ahk_class CabinetWClass
    {
        Run, "C:\Windows\explorer.exe"
        WinWait, ahk_class CabinetWClass, , 5  ; 最多等待 5 秒
        If !ErrorLevel  ; 确保窗口确实已存在
        {
            Sleep, 100  ; 短暂延时确保稳定
            WinActivate
        }
    }
    Else IfWinNotActive, ahk_class CabinetWClass
    {
        WinActivate
    }
    Else
    {
        WinMinimize
    }
Return

;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  Rctrl & 6  打开 资源处理器   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00013-1026

;🎆🎆🎆🎆🎆🎆🎆🎆🎆🎆    打开   操作   🎆🎆🎆🎆🎆🎆🎆🎆🎆🎆🎆
; 💢⭐💢⭐💢⭐💢⭐💢⭐💢⭐    杂类   操作   ⭐💢⭐💢⭐💢⭐💢⭐💢⭐💢⭐💢

F6 & d::
	Clip(Format("{:" GetNextCaseFormat() "}", Clip()), true)
	GetNextCaseFormat()
{
   	static i := 0, Formats := ["U", "L", "T"]
   	return Formats[++i > 3 ? i := 1 : i]
}
	Clip(Text="", Reselect="")
{
	Static BackUpClip, Stored, LastClip
If (A_ThisLabel = A_ThisFunc) 
{
	If (Clipboard == LastClip)
	Clipboard := BackUpClip
	BackUpClip := LastClip := Stored := ""
} 
	Else 
{
If !Stored {
	Stored := True
	BackUpClip := ClipboardAll ; ClipboardAll must be on its own line
} 
	Else
	SetTimer, %A_ThisFunc%, Off
	LongCopy := A_TickCount, Clipboard := "", LongCopy -= A_TickCount ; LongCopy gauges the amount of time it takes to empty the clipboard which can predict how long the subsequent clipwait will need
	If (Text = "") 
{
	SendInput, ^c
	ClipWait, LongCopy ? 0.6 : 0.2, True
} 
	Else 
{
	Clipboard := LastClip := Text
	ClipWait, 10
	SendInput, ^v
}
	SetTimer, %A_ThisFunc%, -700
Sleep 20 ; Short sleep in case Clip() is followed by more keystrokes such as {Enter}
If (Text = "")
	Return LastClip := Clipboard
	Else If ReSelect and ((ReSelect = True) or (StrLen(Text) < 3000))
	SendInput, % "{Shift Down}{Left " StrLen(StrReplace(Text, "`r")) "}{Shift Up}"
}
	Return
	Clip:
	Return Clip()
}
	return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F6 & d 大小写 首字母大写  ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 000002-1124

<^!z::
send, ^y
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  <^!z   撤消    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 000007-1192

;#NoEnv
   ;SendMode Input
   ;SetWorkingDir %A_ScriptDir%
	MoveCycle(Add)
{
	static StepsInCycle = 2                        ;--------------在2种状态间切换
	static SizeCycle = 0
	SizeCycle := Mod(SizeCycle + Add, StepsInCycle)
	if (SizeCycle < 0)
	{
		SizeCycle := SizeCycle + StepsInCycle
	}
	if (Add = 111) {
		SizeCycle = 1
	}
	else if (Add = 222) {
		SizeCycle = 2
	}
	else if (Add = 333) {
		SizeCycle = 3
	}

	if (SizeCycle = 0) {
		MoveWindow(50, 50)
	}
	else if (SizeCycle = 1) {
		MoveWindow(0, 50)
	}
	else if (SizeCycle = 2) {
		MoveWindow(0, 100)
	}
	else if (SizeCycle = 3) {
		MoveWindow(15, 70)

	}
	else if (SizeCycle = 4) {
		MoveWindow(20, 80)
	}
else if (SizeCycle = 5)
	{
		MoveWindow(10, 80)
	}
}

MoveWindow(XP, WP)
{
	; Get current Window
	WinGetActiveTitle, WinTitle
	WinGetPos, X, Y, WinWidth, WinHeight, %WinTitle%

	; Get Taskbar height
	WinGetPos,,, tbW, tbH, ahk_class Shell_TrayWnd

	; Calculate new position and size
	XNew := (A_ScreenWidth * XP / 100)
	WNew := (A_ScreenWidth * WP / 100)
	HNew := (A_ScreenHeight - tbH)
	TopNew := 2

	; MsgBox, %XNew% - %WNew% ; DEBUG
	WinRestore, %WinTitle%
	WinMove, %WinTitle%,, %XNew%, %TopNew%, %WNew%, %HNew%
}

<!z::
	MoveCycle(-1)
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ <!z  窗口左半,右半切换   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 000008-1261

F5 & 7::
run D:\ahk1.0\Lib\二维码.ahk
send, ^c
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F5 & 7  二维码  ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 000010-1320

!LButton::    ;-- 【Win+鼠标左键】任意移动窗口位置
#LButton::    ;-- 【Win+鼠标右键】任意调整窗口大小
Critical
CoordMode, Mouse
MouseGetPos, x1, y1, id
IfWinNotExist, ahk_id %id%
  return
WinGet, flag, MinMax    ;-- 不操作最大化的窗口
if flag=1
  return
SetWinDelay, 20
WinGetPos, x2, y2, w2, h2
While GetKeyState(SubStr(A_ThisLabel,2),"P")
{
  MouseGetPos, x3, y3
  if A_ThisLabel = !LButton
    WinMove, x3-x1+x2, y3-y1+y2
  else
    WinMove,,,,, x3-x1+w2, y3-y1+h2
}
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  !+左键 移窗口 #+左键 调窗口大小   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 000011-1363


+F12::
   p := b100()

          If (p = "0")
	Run ms-settings:network-proxy            ;------------------------- 代理 1

   Else If (p = "00")
	Run control.exe sysdm.cpl`,`,3               ;---------------------环境变量 2

   Else If (p = "000")
	;Run compMgmtLauncher
              

	run devmgmt.msc                                  ;------------------ 设备管理器 4
		
   Else If (p = "1") 
;Run, C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Task Scheduler.lnk
Run, C:\3\Windows11Manager\App\MyTask.exe ;------------------- 计划任务  5

   Else
{
	;Run dcomcnfg                                    ;------------------------组件服务 6  次数5次以上
	Run mmc 
}
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ   F12  代理 变量 管理 控制台 组件服务    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 000015-1571
+F11::
   p := b100()

          If (p = "0")
	Run control                                            ;---------------------控制面板 1
	;Run control.exe  main.cpl`,`,2
	;Run control.exe sysdm.cpl`,`,2
	;Run control.exe  intl.cpl`,`,0
	;Run  intl.cpl
	;Run control.exe ncpa.cpl 
   Else If (p = "00")
Run, %A_ComSpec% /k ipconfig  ; 打开 CMD 并直接运行 ipconfig   ; ipconfig 2  C:\Windows\system32\cmd.exe
		
   Else If (p = "000")  
	Run gpedit.msc                                      ;-----------------------组策略 3

   Else If (p = "0000")
	;Run ncpa.cpl                                          ;---------------------网络连接 4
	;Run shell:::{8E908FC9-BECC-40f6-915B-F4CA0E70D03D}
	Run control.exe /name Microsoft.NetworkAndSharingCenter

   Else If (p = "1")  
{
               Run compmgmt.msc                             ;------------------ 计算机管理 3
	;Run shrpubw
	;Run fsmgmt.msc                                    ;-------------------共享文件夹   长按
;Run C:\Windows\System32\net1.exe
;Run C:\Windows\System32\net.exe
}
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ F11 控制面板 IP 组策略 网络连接 共享  ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 000016-1593

; 💢⭐💢⭐💢⭐💢⭐💢⭐💢⭐    杂类   操作   ⭐💢⭐💢⭐💢⭐💢⭐💢⭐💢⭐💢
; ➰➰➰➰➰➰➰➰➰➰   选行   选段   ➰➰➰➰➰➰➰➰➰➰➰

<!1::
send, {home}{shiftdown}{end}{shiftup}^c
Return
<!q::
Send +{Home}^c
Return
<!a::
Send {shift down}{End down}{End up}{shift up}^c
Return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  <!1 复整行 <!q 到行首  <!a 到行尾   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 0000002-1679

<!2::
send, {home}{shiftdown}{end}{shiftup}^v
Return
<!w::
Send +{Home}^v
Return
<!s::
Send {shift down}{End down}{End up}{shift up}^v
Return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  <!2 粘整行  <!w 光标前 <!s 光标后     ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 0000003-1690

<!3::
send, {home}{shiftdown}{end}{shiftup}^x
Return
<!e::
Send +{Home}^x
Return
<!d::
Send {shift down}{End down}{End up}{shift up}^x
Return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  <!3 剪整行  <!e 光标前   <!d 光标后    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 0000004-1701

<#1::
send, {home}{shift down}{end}{shift up}
Return
<#q::
Send +{Home}
Return
<#a::
Send {shift down}{End down}{End up}{shift up}
Return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  <#1选整行 <#q到行首 <#a到行尾    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 0000005-1712

<#3::
send !{End}+!{home}
Return
<#w::
Send +{Home}{delete}
Return
<#s::
Send {shift down}{End down}{End up}{shift up}{delete}
Return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  <#3 选整段  <#w光标前 <#s光标后    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 0000006-1723

<#2::
send, {home}{shiftdown}{end}{shiftup}{delete}
Return
#If (WinActive("ahk_class XLMAIN") or WinActive("ahk_class OpusApp") or WinActive("ahk_exe Notepad3.exe") or WinActive("ahk_exe EmEditor.exe") or WinActive("ahk_class Chrome_WidgetWin_1"))
<#e::
Send ^+{home}
Return
#IfWinActive
<#d::
Send ^+{End}
Return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  <#2 删整行 <#e 光标前 <#d 光标后   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 0000007-1736

; ➰➰➰➰➰➰➰➰➰➰   选行   选段   ➰➰➰➰➰➰➰➰➰➰➰
; 🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵   滚动   速度   🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵

; Process: 这是 AutoHotkey 的另一个命令,用于处理与进程相关的操作。
; WaitClose: 这是 Process 命令的一个子命令,表示等待指定进程关闭。
; %pid%: 这里引用了上一步存储在 pid 变量中的进程 ID。% 是 AHK 中用于表示变量内容的语法。
; 30: 这是等待的时间(以秒为单位)。如果进程提前关闭,脚本会立即继续,而无需等待满 30 秒。
Lwin::return
#t::
;Run, "C:\3\9金山截图王\kscrcap.exe", , , pid
;Run, "D:\ahk1.0\Lib\0 tool\SGScreencapture\screencapture.exe", , , pid
Run, "D:\ahk1.0\Lib\0 tool\ScreenCapture\ScreenCapture.exe", , , pid
Process, WaitClose, %pid%, 10

; 确认是否上传
MsgBox, 4,, 请在完成截图和编辑后点击“是”确认上传图片。
IfMsgBox, No
    return

; 上传图片
RunWait, D:\ahk1.0\Lib\0 tool\picgo-croe\upgit.exe :clipboard -o clipboard -f ccc, , hide
/*
; 替换剪贴板中多余的路径
ClipWait, 4
clipboard := StrReplace(clipboard, "/zb9678/node-1/main/", "/")

*/
return

;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ     #T  上传截图到github/img       ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  000001-1984

#y::

    ; 获取选中文件的路径
    	FilePath := ""
    	Send, ^c                                                 ; 复制选中文件路径到剪贴板
    	Sleep, 200
    	FilePath := Clipboard
    	if (FilePath = "")
    {
        	MsgBox, 请先选中一个文件!
        	return
    }

    ; 提取目录和扩展名
    	SplitPath, FilePath, , Dir, Ext, Name
    	NewFileName := "up111." . Ext
    	NewFilePath := Dir . "\" . NewFileName
    ; 重命名文件(避免中文名)
    	FileMove, %FilePath%, %NewFilePath%, 1
    	if (ErrorLevel)
    {
        	MsgBox, 文件重命名失败!
        	return
    }

    ; 上传文件, 将文件的下载地址或直链复制到剪贴板中  txt,png为直链,ahk为下载地址
    	RunWait, "upgit.exe" "%NewFilePath%" --output-type clipboard, , hide   

    ; 恢复原文件名
    	FileMove, %NewFilePath%, %FilePath%, 1
    return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ   #y  上传剪贴板中的文件   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  000006-2067

;#Persistent
#u::

	clipboard := "" 
	Send, ^c
	Sleep, 100  ; 等待剪贴板更新

	filePath := Clipboard  ; 获取剪贴板内容
	if (!FileExist(filePath))
       {
   	 MsgBox, 16, 错误, 剪贴板内容无效,请复制文件后再试。
    	return
      }

	RunWait, cmd /c picgo u "%filePath%", , Hide
	MsgBox, 文件上传完成!
    return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ   #u  上传剪贴板中的文件   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  000005-2051

#i::
; 如果上传后,剪贴板中显示有链接,但链接却打开失败,要修改CF的worker.js中第12行的Token
; https://dash.cloudflare.com/67409d2d85f857acbae76bd86edbe9fc/workers/services/edit/billowing-morning-node123/production
; 如果上传后,剪贴板中无内容,要修改config.json的第24行的Token
; C:\Users\z\.picgo\config.json

    	;Run, "D:\ahk1.0\Lib\0 tool\SGScreencapture\screencapture.exe", , , pid
	Run, "D:\ahk1.0\Lib\0 tool\ScreenCapture\ScreenCapture.exe", , , pid
    	Process, WaitClose, %pid%, 30  ; 等待进程关闭,最长 30 秒

; 确认是否上传
    	MsgBox, 4,, 请在完成截图和编辑后点击“是”确认上传图片。

    	IfMsgBox, No                                         ;---------------选择“否”则退出
        	return             

; 上传图片
    	RunWait, cmd /c "picgo u",, hide
    return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ   #i  上传截图到github/img   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  000002-2000

; 🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧  上传   图库    🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧
; 🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞  光标   操作    🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞

CapsLock & q:: Send, {Backspace}
CapsLock & e:: Send, {Delete}
CapsLock & f:: Send, {Enter}
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ    q 退格 e 删除 f 回车    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 0000002-2081

CapsLock & g::
	Send {End}
	Send {Enter}
	Return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ    AppsKey & g 任意位置回     ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 0000003-2087

; 🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞  光标 鼠标  🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞
; 🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞 快捷  搜索  🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞

F1 & 1::
send,{ctrl down}c{ctrl up}
sleep,200
ClipWait

  	Run, "C:\3\Everything-1.5.0.1356a.x64\Everything64.exe"  -s "%clipboard%"

return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F1 & 1 用Evething搜索选中的文字    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00000001-2102

#If (WinActive("ahk_exe chrome.exe") or WinActive("ahk_exe EmEditor.exe"))
F1::return  ; 禁用 F1 的单独功能
F1 & 2:: 
Click, 1400,170  , Right
	Click Right
	Send {T}{enter}
Click, 1400,170
return
#If  ; 结束限制
;如果你的条件比较简单且仅仅是检查窗口,#IfWinActive 完全可以满足需求。
;如果你需要更复杂的条件判断,下面这种  #If 更加灵活且强大。
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ F1 & 2   谷歌翻译  中/ 英   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00000002 -2128

F1 & 3::                                                                
	send, ^c
	KeyWait F1
	if WinExist("ahk_exe 百度翻译.exe")
{
	WinActivate
}
	else
{
    run, "D:\ahk1.0\Lib\0 tool\百度翻译v1.8.0开代理\BaiDuTranslator.exe"
}
	sleep, 2000
	send, ^v
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ   F1 & 3   百度翻译    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00000003-2183

F1 & 4::
	Send, {ctrl down}c{ctrl up}
	KeyWait F1
	Run https://www.baidu.com/s?ie=UTF-8&wd=%clipboard%
	return
 ;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F1 & 4 用百度搜索选中的文字   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00000004-2190

F1 & 5::
  	Send, {ctrl down}c{ctrl up}
	KeyWait F1
	Run http://www.google.com.tw/search?hl=zh-TW&q=%Clipboard%
	return
 ;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F1 & 5 用谷歌搜索选中的文字   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00000005-2197

F1 & 6::
    Send, ^c
    Sleep, 100

    ; 检查程序是否已运行
    IfWinNotExist, ahk_exe 9 MobipocketReader_6.2.exe
    {
        Run, "C:\3\4\9 MobipocketReader_6.2.exe"
        WinWait, ahk_exe 9 MobipocketReader_6.2.exe, , 5 ; 最多等待 5 秒
    }

    ; 激活程序窗口
    WinActivate, ahk_exe 9 MobipocketReader_6.2.exe
    WinWaitActive, ahk_exe 9 MobipocketReader_6.2.exe, , 5 ; 确保窗口激活,最多等待 5 秒

    ; 发送按键操作
    Send, {Up}{Enter}^v{Enter}
Return

;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ   F1 & 6 Mobi    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00000006-2220

F1 & 7::
; 复制当前选中的文字
clipboard := ""          ; 清空剪贴板
Send, ^c
ClipWait, 1              ; 最多等1秒等待剪贴板
if (!clipboard)
{
    MsgBox, 未复制到任何文本,请重试。
    return
}
clipboard := Trim(clipboard)

; 启动或激活 Mobipocket Reader
if WinExist("ahk_class MobiDesktopReader")
{
    WinActivate
}
else
{
    Run, "C:\3\4\9 MobipocketReader_6.2.exe"
    WinWait, ahk_class MobiDesktopReader, , 10
    if ErrorLevel
    {
        MsgBox, Mobipocket Reader 未能在10秒内启动。
        return
    }
}

WinWaitActive, ahk_class MobiDesktopReader, , 2
if ErrorLevel
{
    MsgBox, Mobipocket Reader 窗口未能在2秒内激活。
    return
}

; 聚焦搜索框
ControlFocus, Edit1, ahk_class MobiDesktopReader
Sleep, 100
ControlClick, Edit1, ahk_class MobiDesktopReader
Sleep, 100

; 清空搜索框
SendInput, ^a{Backspace}
Sleep, 100

; 输入剪贴板内容(逐个字符)
Loop, Parse, clipboard
{
    SendInput, %A_LoopField%
    Sleep, 10  ; 可调整打字速度,防止太快丢字
}

Sleep, 100
SendInput, {Enter}
return

;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ   F1 & 0 Mobi    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00000003-2183

F1 & 8::
clipboard := ""
    Send {ctrl down}c{ctrl up}
Run, D:\ahk1.0\Lib\0\1.chm
sleep, 600
SendInput {alt down}s{alt up}
sleep, 50
SendInput {ctrl down}v{ctrl up}{Enter}
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ    F1 & 8  帮助文档    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00001-796

F1 & 9::
	Send, {ctrl down}c{ctrl up}
	KeyWait F1
	sleep,20
  	Run  http://youtube.com/results?q=%clipboard%
	return
 ;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F1 & 9  youtube   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00000008-2235

F1 & 0::
	Send, {ctrl down}c{ctrl up}
		KeyWait F1
	sleep,20
  	Run  https://zh.wikipedia.org/wiki/Special:Search/%clipboard%
	  	return
 ;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ   F1 & 0  wiki    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 00000010-2260

; 🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞 快捷  搜索  🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞🎞
; 🎼🎼🎼🎼🎼🎼🎼🎼🎼🎼 关机  重启  🎼🎼🎼🎼🎼🎼🎼🎼🎼🎼🎼🎼

F5 & E::
Run, nircmd speak text "重启资源管理器" 0 90
sleep, 2000
process,close,explorer.exe
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ    F5 & E 重启资源管理器    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 000000006-2312

; 🎼🎼🎼🎼🎼🎼🎼🎼🎼🎼 关机  重启  🎼🎼🎼🎼🎼🎼🎼🎼🎼🎼🎼🎼
; 🕸️🕸️🕸️🕸️🕸️🕸️🕸️🕸️🕸️🕸️ 文档  编辑  🕸️🕸️🕸️🕸️🕸️🕸️🕸️🕸️🕸️🕸️🕸️🕸️


:*?:a111::ā
:*?:a222::á
:*?:a333::ǎ
:*?:a444::à

:*?:e111::ē
:*?:e222::é
:*?:e333::ě
:*?:e444::è

:*?:o111::ō
:*?:o222::ó
:*?:o333::ǒ
:*?:o444::ò

:*?:i111::ī
:*?:i222::í
:*?:i333::ǐ
:*?:i444::ì

:*?:u111::ū
:*?:u222::ú
:*?:u333::ǔ
:*?:u444::ù                                                             ;   努 nǔ     路 lù

:*?:v111::ǖ                                                             ;  只用于  n 、l    比如:女(nǚ)和绿(lǜ)
:*?:v222::ǘ
:*?:v333::ǚ
:*?:v444::ǜ
:*?:v555::ü
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  3个12345  aoeiuü    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 01-2354

:*:]\9::[email protected]		         ; f9

:*:]\z::[email protected]                                ; f7
:*:]\k::[email protected]
:*:]\n::[email protected]

:*:]\y::[email protected]		         ; f8
:*:]\7::[email protected]
:*:]\o::[email protected]
:*:]\h::[email protected]

:*:]\1::[email protected]

:*:]\r::[email protected]
:*:]\z::[email protected]
:*:]\2::[email protected]
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ   ]\ z 9 k n y 7 o h   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 03 -2470

; 🕸️🕸️🕸️🕸️🕸️🕸️🕸️🕸️🕸️🕸️ 文档  编辑  🕸️🕸️🕸️🕸️🕸️🕸️🕸️🕸️🕸️🕸️🕸️🕸️
;🎁🎁🎁🎁🎁🎁🎁🎁🎁🎁  颜色  处理  🎁🎁🎁🎁🎁🎁🎁🎁🎁🎁🎁🎁

F6 & 1::
    Clipboard := ""
    Send, ^c
    ClipWait, 2
    Clipboard := RegExReplace(Clipboard, "(\R\s*){2,}", "`r`n`r`n")
    Send, ^v
return
; 当我们使用 "`r`n" 时,它只会将光标移动到下一行的开始,但不会创建一个空行。使用 "`r`n`r`n" 实际上是创建了两个连续的换行符,这就会产生一个空行的效果.
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ F6 & 1  选中 合并多行空行为1行   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 12-2665

F6 & 2::
SetWorkingDir, %A_ScriptDir%  ; 设置工作目录

; 复制内容到剪贴板
Send, ^c
ClipWait, 2
sleep, 200
if ErrorLevel
{
    MsgBox, 复制失败或超时
    return
}

; 处理剪贴板内容
text := Clipboard
text := StrReplace(text, "`r")  ; 移除所有回车符

; 使用数组存储非空行
lines := StrSplit(text, "`n")
output := ""

for index, line in lines
{
    if (line != "") {  ; 忽略空行
        output .= line . "`n"
    }
}

; 移除最后一个换行符
output := RTrim(output, "`n")

; 将结果写回剪贴板
Clipboard := output
Send, ^v

return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ F6 & 2  选中 删除空行   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 13-2706

F6 & 3::
    	Clipboard := ""
    	Send, ^c
    	ClipWait
    	Clipboard := RegExReplace(Clipboard, "\R", "`r`n`r`n")
    	Send, ^v
return                                                                   ;-------回车变换行即增加一行
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F6 & 3 选中 添加空行   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 14-2715
/*
F6 & 4::
	clipboard =
	send, ^c
	sleep, 100
	a = %clipboard%
	stringreplace, out, a, ` , `n, All
	send, %out%
return                                                                   ;-------回车变换行即增加一行.和上面的区别:空格处也变换行 
*/
F6 & 4::
    	Clipboard := ""
    	Send, ^c
    	ClipWait
    	Clipboard := RegExReplace(Clipboard, "\s", "`r`n")
    	Send, ^v
return  
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ F6 & 4  选中 空格及回车 变换行  ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 15-2725

F6 & 5::
    Clipboard := ""  ; 清空剪贴板
    Send, ^c         ; 发送 Ctrl+C 复制选中的文本
    ClipWait, 1     ; 等待最多 1 秒,直到剪贴板有内容
    if (ErrorLevel) {
        MsgBox, 剪贴板没有内容,请确保已选中文本。
        return
    }
    ; 使用更简单的正则表达式来替换换行符
    Clipboard := RegExReplace(Clipboard, "\s*[\r\n]+\s*", "")  ; 替换多个换行符为空格
    Send, ^v         ; 粘贴处理后的内容
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F6 & 5 多行文字合并成一行  ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 16-2739

;🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀  空行  处理  🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀🎀
;🎞️🎞️🎞️🎞️🎞️🎞️🎞️🎞️🎞️🎞️🎞️  空格  处理  🎞️🎞️🎞️🎞️🎞️🎞️🎞️🎞️🎞️🎞️🎞️

F6 & 6::
	Clipboard := ""
	Send, ^c
	ClipWait
	Clipboard := RegExReplace(Clipboard, "[ \R]+", "$1")
sleep, 400
send, ^v
	return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ F6 & 6  选中 删除空格   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 17-2752

F6 & 7::
	Clipboard := ""
	Send, ^c
	ClipWait
	Clipboard := RegExReplace(Clipboard, "[ \R]+", " ")
sleep, 400
send, ^v^a
	return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F6 & 7  选中 多个空格变一个  ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 18-2762

F6 & 8::
	Clipboard := ""
	Send, ^c
	ClipWait
	Clipboard := RegExReplace(Clipboard, "m)^[ \R]+|[ \R]+$", "$1")
	Clipboard := Trim(clipboard)
sleep, 400
send, ^v
	return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F6 & 8  选中  只删除首尾空格  ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 19-2773

F6 & 9::
clipboard =
send, ^c
sleep, 500
Loop
{
StringReplace, clipboard, clipboard, `t ,` , UseErrorLevel                         ;  注意`后有个空格    空格表示法 `
    if ErrorLevel = 0
        break
}
sleep,200
send,^v
return
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F6 & 9 Tab替换成空格    ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 20-2788

;🎞️🎞️🎞️🎞️🎞️🎞️🎞️🎞️🎞️🎞️🎞️  空格  处理  🎞️🎞️🎞️🎞️🎞️🎞️🎞️🎞️🎞️🎞️🎞️
;🛒🛒🛒🛒🛒🛒🛒🛒🛒🛒🛒  马克  文档  🛒🛒🛒🛒🛒🛒🛒🛒🛒🛒🛒

F1 & h::
Run, "D:\ahk1.0\Lib\run_hidden.vbs", , Hide
;ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ  F1 & h  更新Github dns   ΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞ 
Tab::tab




转载请注明出处