কমান্ড লাইন (উইন্ডোজ) থেকে প্রোগ্রামগুলি বন্ধ করুন


49

উইন্ডোটির কোণায় "এক্স" বন্ধ বোতাম টিপানোর অনুরূপ কমান্ড লাইন থেকে প্রোগ্রামগুলি বন্ধ / প্রস্থান করার উপযুক্ত উপায় কী?

আমি উইন্ডোজের 3 টি বিভিন্ন সংস্করণের অধীনে ক্রোমটি বন্ধ করার চেষ্টা করছি: উইন 7 চূড়ান্ত, উইন 7 হোম, উইনএক্সপি

চূড়ান্ত এবং এক্সপির অধীনে: TSKILL chrome

হোম আন্ডার TASKKILL /IM chrome.exe


TSKILL chrome:

(এটি ক্রোম বন্ধ করে দেয়, কোনও সেন্টিমিডি ত্রুটি হয় না,
তবে ক্রোম ত্রুটি এটি পুনরায় চালু করার সময় পুনরুদ্ধার করে)


TASKKILL /IM chrome.exe:

(এটি ক্রোম বন্ধ করে দেয়, পুনরায় চালু করার সময় কোনও ক্রোম ত্রুটি থাকে না,
তবে সেমিডির ত্রুটিগুলি: "শিশু প্রসেসগুলি সমাপ্ত করা অসম্ভব (প্রায় 4-5), কেবল জোর করে /F")


যদি পুনরায় লঞ্চ করা ক্রোম আমাকে কোনও ত্রুটি না দেখায় তবে আমি কি সেন্টিমিডি সন্তানের ত্রুটিগুলি উপেক্ষা করব? ?


@ মোশেকাটজ: আপনি কি আমাকে প্রস্থান কোডের কিছু উদাহরণ দেখাতে পারেন? আমি এক্স বোতামটি চাপলে কী হয় তা আমি জানতে চাই ..
নিওদেব

6
টাস্কিল প্রোগ্রামটিকে নিজেরাই পরিষ্কার করার সুযোগ না দেওয়ার জন্য WM_CLOSE বার্তা প্রেরণ করে যতক্ষণ / F ​​(জোরপূর্বক সমাপ্তি) নির্দিষ্ট না করা থাকে। এটি নোটপ্যাডের সাহায্যে পরীক্ষা করুন - একটি নোটপ্যাড খুলুন এবং সেখানে কিছু টাইপ করুন এবং "টাস্ককিল / ইম নোটপ্যাড.এক্সই" প্রবেশ করুন। আপনি ডেটা সংরক্ষণ করার জন্য একটি প্রম্পট দেখতে পাবেন।
স্কট রাহে

@ স্কটরহে: আমি ইতিমধ্যে এফ / এফ ছাড়াই এটি চালানোর চেষ্টা করেছি, তবে মনে হচ্ছে এটি অপ্রয়োজনীয় কাছের ... আমি কি ভুল করছি?
নিওদেব

@ স্কটরি: আমিও ক্রোম দিয়ে চেষ্টা করছি! কখনও কখনও, যখন আমি পুনরায় লঞ্চ করি তখন এটি URL এর মতো একটি হলুদ লাইনে "ট্যাবগুলি পুনরুদ্ধার করুন" বলে: backroom.bostonproductions.com/wp-content/uploads/2012/07/…
নিওদেব

@ রোজার এটি অদ্ভুত যেহেতু আমি এই বার্তাটি টাস্ককিল / আইএম ক্রোম.এক্সের সাথে পাই না। যাইহোক, আমি বিশ্বাস করি আপনি সঠিক কাজটি করেছেন। আমি নীচে একটি উত্তর লিখেছি তাই দয়া করে পরিবর্তে চেষ্টা করুন।
স্কট রাহে 11'14

উত্তর:


43

কোনও প্রোগ্রাম বন্ধ / প্রস্থান করার সঠিক উপায়টি শেষ পর্যন্ত সফ্টওয়্যারটির উপর নির্ভর করে। যাইহোক, উইন্ডোজ প্রোগ্রামগুলি যখনই ডাব্লুএম_সিএলএএসএস বার্তা পান তখন বন্ধ করার জন্য সাধারণত সর্বোত্তম অনুশীলন। সঠিকভাবে মেমরি ছেড়ে এবং হ্যান্ডলগুলি বন্ধ করে দেয়। অন্যান্য বার্তা রয়েছে যা অ্যাপ্লিকেশনটি বন্ধের সংকেত দিতে পারে তবে প্রতিটি বার্তা কীভাবে পরিচালনা করা হয় তা সফ্টওয়্যারটির লেখকের উপর নির্ভর করে।

taskkill /IM process.exe

টাস্কিল WM_CLOSE বার্তা প্রেরণ করে এবং সঠিকভাবে বন্ধ করতে হবে কিনা তা অ্যাপ্লিকেশনটির উপর নির্ভর করে। আপনি /Tশিশু প্রক্রিয়াগুলি সিগন্যাল করতে বিকল্পটিও ব্যবহার করতে চাইতে পারেন ।

/Fআপনি যদি প্রক্রিয়াটি সমাপ্ত করার জন্য জোর করতে চান তবে কেবলমাত্র বিকল্পটি ব্যবহার করুন ।

অন্যান্য বিকল্পগুলির মধ্যে পাওয়ার + শেল বা তৃতীয় পক্ষের অ্যাপ্লিকেশন ব্যবহার করে Alt + F4 কীগুলি প্রেরণ অন্তর্ভুক্ত থাকবে।

আপডেট হওয়া প্রশ্নে আপডেট

ত্রুটিগুলি উপেক্ষা করুন। ক্রোম অনেকগুলি প্রক্রিয়া উত্পন্ন করে। তাসকিল প্রেরিত WM_CLOSE বার্তাটি কোনও প্রক্রিয়া স্বীকৃতি না দিলে ত্রুটিগুলি ঘটে। কেবলমাত্র একটি বার্তা লুপ সহ প্রক্রিয়াগুলি বার্তাটি গ্রহণ করতে সক্ষম হবে, সুতরাং, যে প্রক্রিয়াগুলিতে একটি বার্তা লুপ নেই সেগুলি ত্রুটি তৈরি করবে। সম্ভবত, এই প্রক্রিয়াগুলি ক্রোম এক্সটেনশন এবং প্লাগইন।

ত্রুটিগুলি আড়াল করতে আউটপুট ক্যাপচার করে

taskkill /IM chrome.exe >nul

সংক্ষিপ্তসার: তার ডাব্লুএম_সিএলএসই বাস্তবায়ন এবং মাইক্রোসফ্ট কেবির প্রতি প্রয়োগগুলি বন্ধ করার জন্য কমান্ড লাইনের মাধ্যমে TASKKILL হ'ল সঠিক উপায় ।


আমি আমার প্রশ্ন আপডেট করেছি, দয়া করে এটি দেখুন
নিওদেব

@ রোজার আমার উত্তর আপডেট করেছে।
ডেভিড রুহমান

এর অর্থ কী> নুল?
নিওদেব

10
>এটি cmd.exe এর জন্য পুনঃনির্দেশিত অপারেটর এবং nulস্থানটি শূন্য যেখানে জিনিসগুলি আর কখনও শোনা যায় না।
ডেভিড রুহমান

9

ব্যবহার করে দেখুন NirCmd (ডাউনলোড: এক্স 86 x64 )

এটিতে "ক্লোজপ্রসেস" কমান্ড রয়েছে যা প্রক্রিয়াগুলি নিখুঁতভাবে বন্ধ করার জন্য ডিজাইন করা হয়েছে। এর দস্তাবেজ অনুসারে, এটি অ্যাপ্লিকেশনগুলি শেষ করে না WM_CLOSEতবে লক্ষ্য প্রক্রিয়াটির সমস্ত শীর্ষ-স্তরের উইন্ডোতে প্রেরণ করে।

ব্যবহারের উদাহরণ:

nircmd ক্লোজপ্রসেস chrome.exe

যদি এটি কাজ না করে, আমি বাজি ধরছি আপনার আবেদনের একটি অস্বাভাবিক সাফ পদ্ধতি আছে procedure আমি ভিতরে কী ঘটে তা দেখতে চাই তাই আপনার লক্ষ্য প্রয়োগটি কী তা দয়া করে আমাকে জানান।


আমি আমার প্রশ্ন আপডেট করেছি, দয়া করে এটি দেখুন
নিওদেব

আমি এটি আরও ভাল কাজ করতে পেয়েছি: nircmd "আমার প্রক্রিয়া শিরোনাম" কাছাকাছি শিরোনাম
ব্যবহারকারী 1495323

4
What is the proper way to close/exit programs from command line,
similar to pressing the "X" close button in the corner of the window?

এই প্রশ্নের উত্তর পাওয়া যাবে here( মাইক্রোসফ্ট লিঙ্ক )।

আপনি WM_CLOSEযে কোনও উইন্ডোটি বন্ধ করতে চান তাতে বার্তা পাঠাতে পারেন । অনেক উইন্ডো হ্যান্ডেল WM_CLOSEব্যবহারকারীকে নথি সংরক্ষণ করতে অনুরোধ জানায় handle

একটি সরঞ্জাম যা এটি সঠিকভাবে করে @Kill। এছাড়াও দেখুন SendMsg


ব্যাচে এটি কীভাবে করা যায় তা আমি জানি না তবে আপনি এটির জন্য vbscript ব্যবহার করতে পারেন। Simulating Alt+ + F4কি-সংকলন (সংকেত সমান WM_CLOSE)।

চালান এবং নীচে এই স্ক্রিপ্ট আচরণ দেখুন।

Set WshShell = WScript.CreateObject("WScript.Shell")

' Start Notepad.exe
WshShell.Run "%windir%\notepad.exe"

' Select, or bring Focus to a window named `Notepad`
WshShell.AppActivate "Notepad"

' Wait for 4 seconds
WScript.Sleep 4000

WshShell.SendKeys "Foo"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "Bar"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "{CAPSLOCK}"
WshShell.SendKeys "baz"
WshShell.SendKeys "%{F4}"

Here সেন্ডকিসের তালিকার মূল নাম।

আপনি যখন স্ক্রিপ্টটি চালান, নোটপ্যাড খোলা থাকে, কিছু শব্দ লেখা হয় এবং তারপরে প্রোগ্রামটি বন্ধ করার সংকেত সরবরাহ করা হয়, নীচের ছবিটি দেখুন।


অতিরিক্ত প্রশ্নাবলী

আমি কি কোনও প্রোগ্রামকে ছোট করে বা vbscript দিয়ে ব্যাকগ্রাউন্ড শুরু করতে পারি?

হ্যাঁ. নিম্নলিখিত কোড ব্যবহার করুন:

WshShell.Run "%windir%\notepad.exe", 2

আরও তথ্যের জন্য পরীক্ষা করুন Run Method

ক্রোম কি কিছু ইউএসএল এ VBScript এ যেতে পারে?

Dim iURL  
Dim objShell iURL = "www.google.com"
set objShell = CreateObject("Shell.Application") 
objShell.ShellExecute "chrome.exe", iURL, "", "", 1

যদি ক্রোম ডিফল্ট হয় তবে ব্যবহার করুন:

set objShell = CreateObject("WScript.Shell")
objShell.run(iURL)

Source

নির্দিষ্ট অ্যাপ্লিকেশন ( chrome.exe ) এ ফোকাস আনার কি কোনও উপায় আছে ?

Here একটি উদাহরণে।

আমি কেবলমাত্র উইন্ডো + এফ 4 ক্রোমে প্রেরণ করতে চাই, স্বাধীনভাবে আমি অন্যান্য উইন্ডো দিয়ে যাচ্ছি।

নিম্নলিখিত কোডটি উইন্ডোজ 8 এ কাজ করে ।

Dim objShell

iURL = "www.google.com.br"

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run(iURL)

' Select, or bring Focus to Google Chrome
WshShell.AppActivate "Google Chrome"

' Wait for 5 seconds
WScript.Sleep 5000

WshShell.SendKeys "%{F4}"

আমি কি কোনও প্রোগ্রামকে ছোট করে বা vbscript দিয়ে ব্যাকগ্রাউন্ড শুরু করতে পারি?
নিওদেব

1
@ রোগার যদি আগ্রহী হন তবে ব্যাচ + জেএসক্রিপ্টকে কীভাবে একটি একক ফাইলে একত্রিত করবেন সে সম্পর্কে আমার উত্তরটি এখানে দেখুন । জেএসক্রিপ্ট ভিবিএস স্ক্রিপ্ট বেশিরভাগ কিছুই করতে পারে এবং আরও কাঠামোগত সি স্টাইলে।
ডেভিড রুহমান

এবং ক্রোম কি কিছু ইউএসএল-এ VBScript এ যেতে পারে?
নিওদেব

নির্দিষ্ট অ্যাপ্লিকেশন (chrome.exe) এ ফোকাস আনার কি কোনও উপায় আছে?
নিওদেব

হ্যাঁ আমি এটি দিয়ে চেষ্টা করছি তবে কিছুক্ষণ বিলম্বের পরে যদি (ডাব্লুএসক্রিপশন.স্লাইপ 5000) আমার কাছে থাকে (ডাব্লুশেল। অ্যাপ্লিকেশন "গুগল ক্রোম"), যদি এই সময়ের মধ্যে আমি অন্য কোনও উইন্ডোতে ক্লিক করি, গুগল ক্রোম সামনে না আসে , আমি কেবলমাত্র তার সরঞ্জামদণ্ডে এর ফোকাস দেখতে পাচ্ছি ....
নিওদেব

3

কিছু কমান্ড-লাইন ইউটিলিটি রয়েছে যা একটি প্রোগ্রামের শীর্ষ স্তরের উইন্ডোতে একটি উপযুক্ত WM_SYSCOMMANDবার্তা ( SC_CLOSEকমান্ড হিসাবে) প্রেরণ করতে পারে । আমি নিশ্চিত যে শীঘ্রই অন্তত একটির উল্লেখ করা হবে। (তারপরে কেউ অটোআইটি উল্লেখ করবে Then তারপরে একটি উত্তর আসবে যাতে পাওয়ারশেল এবং কীভাবে এটি করা যায় তা দেখানো হবে CloseMainWindow()))

জেপি সফ্টওয়্যারটির টিসিসিতে বিল্ট-ইন কমান্ড হিসাবে উপস্থিত কমান্ড-লাইন ইউটিলিটি , উইন্ডোজের জন্য একটি কমান্ড ইন্টারপ্রেটার এবং কমান্ড স্ক্রিপ্ট প্রসেসর বলা হয় TASKEND


আমি আমার প্রশ্ন আপডেট করেছি, দয়া করে এটি দেখুন
নিওদেব

2

ঠিক আছে, মিথ্যা বলা যাচ্ছে না। আমি এটি স্ট্যাকওভারফ্লোতে দেখেছি এবং ভেবেছিলাম এটি একটি চ্যালেঞ্জিং প্রশ্ন। Soooo আমি গত 2 ঘন্টা কিছু কোড লিখতে ব্যয় করেছি। এবং এটি এখানে ....

নীচের পদক্ষেপগুলি অনুসরণ করার পরে, আপনি "স্টার্ট" টিপুন পরে "TaskClose notepad.exe" টাইপ করতে পারেন এবং এটি ডেস্কটপে সমস্ত অননুমোদিত নোটপ্যাড ফাইলকে স্বয়ংক্রিয়ভাবে সংরক্ষণ করবে। এটি chrome.exe কে স্বয়ংক্রিয়ভাবে বন্ধ করবে এবং পুনরুদ্ধার সেটিংস সংরক্ষণ করবে।

আপনি যদি শর্তগুলির অধীনে অন্যান্য অ্যাপ্লিকেশনগুলির জন্য অতিরিক্ত সেটিংস যুক্ত করতে এবং সরাতে পারেন। এই ক্ষেত্রে:

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" হোক এমনকি চরম ক্ষেত্রেও হোক
  • অল্টার + F4 চাপুন
  • সক্রিয় সংরক্ষণ করুন
  • অটোআইক্রিমেন্ট ফাইলের নাম
  • অ্যাপ্লিকেশন প্রস্থান করুন।

রিটার্ন অ্যাপলিস্ট.ব্যাট: "সি: \ উইন্ডোজ \ সিস্টেম 32 in" এ ইনস্টল করুন

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: \ ব্যবহারকারীরা \ আপনার ব্যবহারকারী নাম in" এ ইনস্টল করুন

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

এটি লেখার জন্য প্রচুর মজা ছিল এবং আমি উত্তরটি দেখানোর চেয়ে এটি শেষ করে নিয়ে বেশি খুশি। একটি মহান সপ্তাহে!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.