(ตามคำขอ OP ฉันย้ายคำตอบจากความคิดเห็นที่นี่)
หากคุณต้องการลองใช้โปรแกรมของบุคคลที่สามคุณสามารถลองAutoHotKey (ให้ใช้ตัวย่อ AHK เพิ่มเติม)
มันเป็นโครงการเปิดที่มีอายุการใช้งานยาวนานซึ่งอนุญาตให้กำหนด "ฮอตคีย์" ในรูปแบบต่าง ๆ ให้กับโปรแกรมใด ๆ รวมถึงระบบปฏิบัติการ มันไม่ได้ จำกัด อยู่ที่การรวมกันของ Ctrl + ทั่วไป แต่ยังช่วยให้การสร้างวลีเป็นสตริงสำหรับระบบอัตโนมัติต่างๆ มันอาจจะเป็นเพียงแค่มอบฉันทะคีย์ร้อนหรืออัตโนมัติคุณสมบัติเต็มรูปแบบสคริปต์ง่ายและมีประสิทธิภาพที่อาจนำมาใช้ในทางปฏิบัติแทนbat
, cmd
, vbs
, ps
สคริปต์
กรณีการใช้งานที่ง่ายที่สุดตามที่ OP ถาม - อาจเป็นเพียงสตริงเดียวในสคริปต์ AHK ที่มีลักษณะดังนี้:
F4::WinActivate, ahk_exe /full/path/to/program_that_need_to_be_activated
โดยที่F4
- แป้นลัด (แป้นทำงานบนแป้นพิมพ์) แต่สามารถใช้งานได้จริงการรวมกันของแป้นและแม้แต่สายอักขระ
มันอาจเป็นไปโดยอัตโนมัติต่อไปตัวอย่างเช่น - โดยการกดF4
เปิดใช้งานโปรแกรมที่ต้องการและถ้ามันไม่ได้ทำงานอยู่ให้เริ่มและเปิดใช้งาน (ตั้งโฟกัสและนำไปไว้ข้างหน้าดัชนีชุด aka Z) สคริปต์นี้จะมีลักษณะดังนี้:
F4:: ; Comment: Use F4 key to activate or start firefox
{
if WinExist("ahk_exe firefox.exe")
WinActivate, ahk_exe firefox.exe
else
Run, firefox.exe
}
Return
; next is hot key for another program
; We assigning here Windows key + z to activate Notepad++
#z::
{
np = C:\Program Files (x86)\Notepad++\notepad++.exe
if WinExist("ahk_exe %np%")
WinActivate, ahk_exe "%np%"
else
Run, "%np%"
}
Return
; Find and activate Firefox by Windows class by WinKey+x
DetectHiddenWindows, On
#x::
{
fp = C:\Program Files\Mozilla Firefox\firefox.exe
if WinExist("ahk_class MozillaWindowClass")
WinActivate, ahk_class MozillaWindowClass
else
Run, "%fp%"
}
Return
AHK นั้นค่อนข้างง่ายในการติดตั้งและมาพร้อมกับchm
ไฟล์มากมาย(วิธีใช้) ที่ครอบคลุมกรณีผู้ใช้จำนวนมากที่มีตัวอย่างจากวิธีการตั้งค่าอินเทอร์เฟซ AHK GUI และการใช้วัตถุ COM สำหรับระบบอัตโนมัติ สคริปต์ AHK สามารถรวมกันในไฟล์สคริปต์เดียวหรืออาจเป็นหลายไฟล์ที่สามารถเริ่มได้ตามต้องการ
AHK สนับสนุนการรวบรวมสคริปต์ที่ทำให้การแจกจ่ายง่ายขึ้นเป็นโปรแกรมที่รวบรวมซึ่งทำเช่นเดียวกับการตั้งค่า AHK แบบสแตนด์อโลน
PS
ด้านล่างเป็นโซลูชัน AHK สำหรับFirefox
ส่วนขยายพร้อมMinTrayR (ที่ซ่อน firefox ในถาดระบบ)
ฉันพยายามหาวิธีแก้ปัญหาที่หรูหรากว่า แต่หลังจากดูที่ซอร์สโค้ดของMinTrayRฉันพบว่ามันไม่ได้ใช้WM_USER
ข้อความ windows และยอมรับเฉพาะข้อความ OS มาตรฐานที่ต้องใช้ความพยายามเป็นอย่างมากในการค้นหาปุ่ม firefox ที่ถูกต้องในถาดระบบโดยทางโปรแกรม ในขณะที่ฉันเชื่อว่ามันยังคงเป็นไปได้ฉันใช้กลยุทธ์อื่นด้านล่าง: สคริปต์ AHK ค้นหารูปภาพเฉพาะ (ไอคอนของ firefox ในถาดระบบ) บนหน้าจอและคลิกสองครั้งเมื่อกดปุ่มฮอตคีย์
ในขณะที่ใช้งานง่ายมันจะต้องมีขั้นตอนเริ่มต้นในด้านของผู้ใช้:
- ย่อเล็กสุด Firefox (FF เพิ่มเติม) ตรวจสอบให้แน่ใจว่าไอคอน FF ปรากฏใน sys.tray
(ในControl Panel\All Control Panel Items\Notification Area Icons
สถานะตั้งค่า Firefox เป็นShow icon and notification
)
- กดPrintScreenในขณะที่ไอคอน FF มองเห็นได้ในซิสเต็มเทรย์ (นี่เป็นภาพหน้าจอบนคลิปบอร์ด)
Paint
เปิดโปรแกรมการประมวลผลภาพเช่น
- วางเนื้อหาของคลิปบอร์ด (นั่นคือภาพหน้าจอ)
- เลือกภูมิภาคที่ไม่เปลี่ยนแปลงและเป็นเอกลักษณ์ของไอคอน Firefox ในซิสเต็มเทรย์ (เลือกให้ใกล้ที่สุดเพื่อจับเฉพาะลูกโลกที่มีสุนัขจิ้งจอกอยู่นั้นใช้การซูมเพื่อเลือกพื้นที่ของไอคอนอย่างแม่นยำ)
Crop
พื้นที่ที่เลือกและบันทึกเป็น C:\Users\Public\Pictures\ff.png
หลังจากนั้นคุณสามารถเริ่มใช้สคริปต์ AHK ต่อไปนี้เพื่อเพิ่ม Firefox จากถาดระบบหรือเริ่มอินสแตนซ์ใหม่ของ Firefox หากไม่ได้ทำงานโดยกดWinKey+ vแป้นลัด
(หากคุณใช้ Firefox รุ่น 32 บิตให้แทนที่สตริง
C:\Program Files\Mozilla Firefox\firefox.exe
ด้วย
C:\Program Files (x86)\Mozilla Firefox\firefox.exe
)
#NoEnv
#v::
{
ffIconFile = C:\Users\Public\Pictures\ff.png
fp = C:\Program Files\Mozilla Firefox\firefox.exe
Processname=firefox.exe
Process, Exist, %Processname%
If !ErrorLevel
{
MsgBox, % "Process " Processname " does not exist. Going to start a new one"
Run, "%fp%"
Return
}
pid := ErrorLevel
IfWinNotActive, % "ahk_pid " pid
{
CoordMode Pixel
ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, %ffIconFile%
if ErrorLevel = 2
MsgBox Could not conduct the search (icon file path ?).
else if ErrorLevel = 1
MsgBox Firefox icon could not be found on the screen.
else
{ ; MsgBox The icon was found at %FoundX%x%FoundY%.
x := FoundX + 10
y := FoundY + 10
Click %x%, %y%, 0
Click 2
}
}
}
Return