Autohotkey Fallback หากไม่มีโปรแกรม


0

ฉันพยายามที่จะมี cygwin ของฉัน ดวลจุดโทษ โปรแกรมเปิดเมื่อฉันกด Windows Key + R (นี่อาจใช้กับการรวมคีย์อื่น ๆ ได้อย่างง่ายดาย) แต่ฉันรู้ว่าคอมพิวเตอร์ทั้งหมดของฉันอาจไม่ได้ติดตั้ง cygwin ในกรณีที่คอมพิวเตอร์ของฉันไม่มี cygwin ฉันต้องการเปิด Windows Command Prompt

ฉันจะตั้งค่าตามเงื่อนไขได้อย่างไร #r (Win + R) การทำแผนที่เพื่อบรรลุสิ่งนี้?


Windows Key + R ได้รับการแมปแล้วเพื่อเรียกใช้พรอมต์เรียกใช้ อาจเป็นการง่ายกว่าสำหรับการรวมคีย์ที่ไม่มีการอ้างสิทธิ์กว่าการเขียนระบบใหม่
SpecKK

@SpecKK: ไม่; มันค่อนข้างง่ายสำหรับฉันที่จะเขียนทับพฤติกรรมนั้น ฉันทำแผนที่ Win + R ไปแล้ว cmd ชั่วขณะหนึ่งแล้ว
palswim

คำตอบ:


3

สิ่งนี้ยังไม่ได้ทดสอบ แต่คุณควรเริ่มต้น:

#r::
Run sh
WinWait,sh,,1
if ErrorLevel
{
   ;it timed out waiting for sh (1 sec)
   Run cmd
}
return

มันพยายามที่จะเรียกใช้ sh คำสั่ง cygwin ใช้ WinWait ฟังก์ชั่นมันจะตรวจสอบเพื่อดูว่ามันถูกสร้างขึ้น (ใช้ชื่อหน้าต่างของ "sh" ที่อาจต้องเปลี่ยน) ถ้าไม่มันกลับไปที่ run cmd.

ตัวเลือกอื่นถ้าคุณรู้เส้นทางที่แน่นอนของ sh.exeคุณสามารถใช้ FileExist วิธี.

#r::
if FileExist("c:\cygwin\sh.exe")
   Run sh
else
   Run cmd
return

1

คำตอบของ @ yhw42 เริ่มต้นให้ฉัน แต่ฉันพบวิธีแก้ไขที่สะอาดกว่าแล้ว:

WinR := "sh"
RunWait, where sh
if ErrorLevel
    WinR := "cmd"

#r::Run %WinR%

สิ่งนี้ใช้ Windows WHERE คำสั่งและ ตัวแปร AutoHotkey .


น่าเสียดายนี่ใช้งานได้กับ Windows Server 2003 หรือใหม่กว่าเท่านั้น (ไม่ใช่ Windows XP)
palswim

มันดีกว่า! (เช่นตรวจสอบหนึ่งครั้งเมื่อโหลดสคริปต์)
yhw42
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.