ไม่เป็นไร ฉันเห็นสิ่งนี้ใน stackoverflow และคิดว่ามันเป็นคำถามที่ท้าทาย Soooo ฉันเพิ่งใช้เวลา 2 ชั่วโมงสุดท้ายในการเขียนโค้ด และนี่คือ ....
หลังจากทำตามขั้นตอนด้านล่างคุณสามารถพิมพ์ "TaskClose notepad.exe" หลังจากกดปุ่ม "Start" และจะบันทึกไฟล์แผ่นจดบันทึกที่ไม่มีเอกสารทั้งหมดลงในเดสก์ท็อปโดยอัตโนมัติ มันจะปิด chrome.exe อัตโนมัติและบันทึกการตั้งค่าการคืนค่า
คุณสามารถเพิ่มและลบการตั้งค่าเพิ่มเติมสำหรับแอปพลิเคชันอื่น ๆ ภายใต้เงื่อนไข if ตัวอย่างเช่น
If InStr(SINGLECLOSEAPPS, WScript.arguments(0)) Then
SmartSendKeys strOutput,"bypass","%{F4}"
ElseIf InStr(AUTOCLOSEAPPS, WScript.arguments(0)) Then
SmartSendKeys strOutput,"","%{F4}|%s|{autoname}.txt|%s"
'Example 1: =============================================
ElseIf InStr(WScript.arguments(0), "outlook") Then
SmartSendKeys strOutput,"","%{F4}" 'Activate Alt+4
'========================================================
'Example 2: =============================================
ElseIf InStr(WScript.arguments(0), "notepad") Then 'I know, already in my autoapps
SmartSendKeys strOutput,"","%{F4}|%s|{autosave}.txt" 'Activate Alt+4 + Save File + {AutoSave} = autoincrement filename
'========================================================
Else
SmartSendKeys strOutput,"bypass","%{F4}"
End If
vbs และแบตช์ไฟล์ดำเนินการตามขั้นตอนต่อไปนี้:
- รวบรวมปฏิบัติการ
- เคียวรีชื่อแอ็พพลิเคชันที่รันได้จากรายการงาน
- ดำเนินการตามขั้นตอน "Alt + TAB (x)" จนกว่าจะยืนยันว่าหน้าต่างนั้นเปิดอยู่
- จากนั้นเรียกใช้งานคำสั่งการหมุนไม่ว่าจะเป็น "Alt + F4" หรือแม้กระทั่งในกรณีที่รุนแรง
- Alt + F4
- เปิดใช้งานบันทึก
- ชื่อไฟล์ AutoIncrememnt
- ออกจากแอปพลิเคชัน
ReturnAppList.bat: ติดตั้งใน "C: \ windows \ system32 \"
for /f "tokens=10 delims=," %%F in ('tasklist /v /fi "imagename eq %1" /fo csv') do @echo %%~F >>result.txt
TaskClose.bat: ติดตั้งใน "C: \ windows \ system32 \" และ "C: \ Users \ YourUserName \"
C:\windows\system32\wscript.exe c:\windows\system32\taskclose.vbs %1
TaskClose.vbs: ติดตั้งใน "C: \ windows \ system32 \"
Set WshShell = CreateObject("WScript.Shell")
Const SINGLECLOSEAPPS = "chrome.exe|iexplore.exe|firefox.exe"
Dim DEFAULTSAVELOCATION : DEFAULTSAVELOCATION = wshshell.SpecialFolders("Desktop")
Const AUTOCLOSEAPPS = "notepad.exe"
Const WshFinished = 1
Const WshFailed = 2
strCommand = "returnapplist.bat "
Set WshShellExec = WshShell.Exec(strCommand & WScript.Arguments(0))
WScript.sleep 2000
Select Case WshShellExec.Status
Case WshFinished
strOutput = LoadStringFromFile("result.txt")
Case WshFailed
strOutput = LoadStringFromFile("result.txt")
End Select
'SmartSendKeys(application_name_array, bypassclause, additionalcommands)
'========================
If InStr(SINGLECLOSEAPPS, WScript.arguments(0)) Then
SmartSendKeys strOutput,"bypass","%{F4}"
ElseIf InStr(AUTOCLOSEAPPS, WScript.arguments(0)) Then
SmartSendKeys strOutput,"","%{F4}|%s|{autoname}.txt|%s"
Else
SmartSendKeys strOutput,"bypass","%{F4}"
End If
'SmartSendKeys(application_name_array, bypassclause, additionalcommands)
'========================
Function SmartSendkeys(fArr, LoopCount, RollCommands)
Dim x
Dim splt : splt = Split(farr, vbCrLf)
If loopcount = "bypass" Then
x = 0
Else
x = UBound(splt)
End If
a = 0
For s=0 To x
If Len(splt(s)) > 1 Then
Set objShell = WScript.CreateObject("WScript.Shell")
c = 1 : tabs = ""
Success = False
Do Until Success = True
Success = objShell.AppActivate(Trim(splt(s)))
If success <> True Then
If c = 1 Then
tabs = "{TAB}"
Else
tabs = "{TAB " & c & "}"
End If
'wscript.echo "Activating: " & "%" & tabs
WshShell.SendKeys "%" & tabs
WScript.Sleep 5000
c = c + 1
If c = 100 Then
WScript.echo "App not found"
Exit Function
End If
End If
Loop
Dim cmds : cmds = Split(rollcommands, "|")
For Each cm In cmds
If InStr(cm, "{autoname}") Then
Dim file_ext : file_ext = Split(cm, ".")
cm = DEFAULTSAVELOCATION & "autosave" & a & "." & file_ext(1)
a = a + 1
End If
WshShell.SendKeys cm
WScript.sleep 500
Next
End If
Next
End Function
Function LoadStringFromFile(filename)
Const fsoForReading = 1
Const fsoForWriting = 2
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(filename, fsoForReading)
Dim fulltext : fulltext = f.ReadAll
LoadStringFromFile = fulltext
f.Close
fso.DeleteFile(filename)
End Function
มันสนุกมากที่จะเขียนและฉันมีความสุขมากกว่าที่จะเขียนให้จบมากกว่าการแสดงคำตอบ ขอให้มีความสุขในสัปดาห์นี้!