ที่ บริษัท ของฉันเรามีเวิร์คสเตชั่ขนาดเล็ก ~ 13 นิ้วพร้อมหน้าจอสัมผัส
ระบบปฏิบัติการคือ: Microsoft Windows Embedded Standard 6.1.7601 Service Pack 1 Build 7601
เวิร์กสเตชันมี 5 ปุ่มที่สามารถแมปสำหรับการรวมคีย์ใด ๆ (ตัวอย่างctrl+alt+shift+[any key on the keyboard]
)
มีโปรแกรมสองโปรแกรมที่ต้องทำงานกับโปรแกรมเพื่อให้พนักงานสามารถทำงานได้ บางครั้งคนงานปิดโปรแกรมหนึ่งโดยไม่ตั้งใจดังนั้นฉันจึงตัดสินใจแก้ปัญหานี้เนื่องจากพวกเขาไม่สามารถเริ่มโปรแกรมได้ด้วยตนเอง
ดังนั้นฉันมี:
- สร้างไฟล์แบทช์ว่าเมื่อเริ่มต้นมันจะตรวจสอบว่าโปรแกรมกำลังทำงานอยู่ถ้าไม่มันจะเริ่มพวกเขา;
- สร้างทางลัดของไฟล์แบตช์ ( %appdata%\Microsoft\Windows\Start Menu\Programs
ตามที่แนะนำที่นี่ );
- เพิ่มคีย์ลัด (ctrl + alt + s);
- กำหนดหนึ่งในปุ่มบนเวิร์กสเตชันให้กับการเชื่อมโยงคีย์
ดูเหมือนว่าเป็นความคิดที่ดีในทางทฤษฎี แต่ในทางปฏิบัติแล้วการเชื่อมคีย์ลัดไม่ทำงานอย่างถูกต้อง
หลังจากการแก้ไขปัญหาฉันรู้ว่าหนึ่งในโปรแกรมนั้นเป็นสาเหตุของปัญหา
ให้เรียกโปรแกรมและA
B
เมื่อB
หรือเดสก์ท็อปอยู่ด้านหน้าชุดคีย์จะทำงานอย่างถูกต้องและเปิดไฟล์แบตช์ A
ใช้งานได้เต็มหน้าจอ ดังนั้นเมื่อมีการกดคีย์ผสมในขณะที่A
อยู่ด้านหน้ามันจะไม่ทำงาน
ดังนั้นฉันจึงกำหนดalt + tab
คีย์ผสมสำหรับปุ่มอื่น แต่นี่คือปัญหาที่เกิดขึ้น
หากก่อนหน้านี้ฉันกดctrl + alt + S
คีย์ผสมในขณะที่A
อยู่ข้างหน้ามันจะไม่ทำงานหลังจากนั้นแม้ว่าฉันจะเปลี่ยนไปใช้B
หรือไปยังเดสก์ท็อปก็ตาม
สิ่งที่ทำให้มันน่าสนใจกว่าคือถ้าฉันสร้างคีย์ลัดอีกอันในไฟล์ทางลัดอื่นให้พูดctrl + alt + D
และเรียกใช้หลังจากctrl + alt + S
หยุดทำงานมันจะแก้ไขและctrl + alt + S
เริ่มทำงานอีกครั้งในขณะB
ที่เดสก์ท็อปโฟกัส
พยายามนี้ไม่ทำงาน
สีแดงนี้ฟอรั่ม ไม่มีทางออก
ฉันกำลังมองหาวิธีแก้ปัญหา / วิธีแก้ปัญหา / วิธีอื่นในการแก้ปัญหานี้
ฉันไม่ต้องการติดตั้งโปรแกรมบุคคลที่สามใด ๆ อย่างไรก็ตามฉันสามารถแก้ไขการตั้งค่าและรีจิสทรีได้หากจำเป็น
แก้ไข:
ไฟล์แบตช์
echo off
tasklist /FI "IMAGENAME eq progB.exe" 2>NUL | find /I /N "progB.exe">NUL
if "%ERRORLEVEL%"=="1" (
cd C:\<progB path>
start /MAX progB.exe
)
tasklist /FI "IMAGENAME eq progA.exe" 2>NUL | find /I /N "progA.exe">NUL
if "%ERRORLEVEL%"=="1" C:\<progA path>
exit
WMIC process get Caption | find /i /n "prog.exe
อาจจะเร็วขึ้น: นอกจากนี้ยังมี Powershell Get-Process และ Powershell ผ่าน WMI: Get-WMIObject Win32_Process