Как автоматически запустить приложение при завершении работы Windows 7
При закрытии Windows 7, как заставить приложение автоматически запускаться и кратковременно запускаться, а затем закрываться?
Я хочу, чтобы приложение кратко показывало на экране или кратко говорило на динамиках мое напоминание себе: "Отключите USB-накопитель, выключите нагреватель, прежде чем покинуть комнату". После этого Win 7 выключается.
2 ответа
Используйте запланированное задание Windows для этого. добавить триггер "при выходе пользователя из системы" (может быть вызван по-другому, я сейчас не на английских окнах).
Если вы хотите воспроизвести звук, вы должны сначала записать его, а затем запустить музыкальный проигрыватель favourit с записанным звуковым файлом в качестве параметра командной строки. у большинства игроков есть параметры командной строки на их веб-сайте, или просто Google.
если вы хотите показать сообщение, вы должны использовать файл windows *.bat.
Каран прав: нет никаких гарантий, что задача сможет быть выполнена в полном объеме. Я протестировал метод групповой политики на своей машине, но с твердотельным накопителем, респектабельным процессором и 12-гигабайтной памятью небольшой аудиоплеер, который я пытался запустить, даже не получил возможности запустить!
Сложное решение - если оно существует - будет означать подключение к процессу выключения и временную приостановку его тем или иным способом, чтобы дать время для загрузки вашего аудиофайла, прежде чем продолжить процедуру.
Решение с меньшим перерасходом (соответственно, убийством?) Будет означать написание пакетного файла или файла сценария, который запускает ваш аудиофайл, возможно, с таймером, установленным в соответствии с длиной аудиофайла (плюс немного для загрузки программы аудиоплеера в память) или каким-либо другим способом определения того, что аудиопроцесс завершен, и затем запускает процесс выключения. Затем вы выполняете этот пакетный файл или файл сценария вместо выполнения выключения обычными средствами (например, через меню "Пуск").
К счастью для вас, я нашел время написать такой сценарий. Сохраните это в текстовом редакторе и дайте ему расширение ".vbs". Присвойте ему ярлык, поместите его в меню "Пуск" или на рабочем столе и установите соответствующий значок. (Примечание: я был в странном настроении, когда назвал свои переменные и функции, но это работает.)
Option Explicit
Dim dudeWeNeedAWindow, beMyWordsYo, whatTheCrapDoWeCallIt, thereOnceWasADefaultNamedOne, imAChooseStuffIsThatAlright, imJustGoingToTellYouRightNowThatWasALowBall, dontMockMeIWasFeatherDustedAsAChild, thisIsWhereThePartyHappensSucka, thisCrapNeedsToShutItselfDown, bringItHonkyIllJustStartAllOverAgain, imSorryButYouNeedToSettleDownAndHibernateRightNow
beMyWordsYo = "How would you like to proceed?" & vbcr & vbcr & _
"1) Shutdown" & vbcr & _
"2) Restart" & vbcr & _
"3) Hibernate"
dontMockMeIWasFeatherDustedAsAChild = "Nonsense! What are you trying to pull?"
thisIsWhereThePartyHappensSucka = """C:\Program Files\MPC-HC\mpc-hc64.exe"" %USERPROFILE%\Music\Vermillion.mp3"
whatTheCrapDoWeCallIt = "Shutdown"
thereOnceWasADefaultNamedOne = "1"
thisCrapNeedsToShutItselfDown = """shutdown.exe"" /s /t 00"
bringItHonkyIllJustStartAllOverAgain = """shutdown.exe"" /r /t 00"
imSorryButYouNeedToSettleDownAndHibernateRightNow = """shutdown.exe"" /h"
Sub ShutdownThisGoober
imAChooseStuffIsThatAlright = InputBox(beMyWordsYo,whatTheCrapDoWeCallIt,thereOnceWasADefaultNamedOne)
Set dudeWeNeedAWindow = WScript.CreateObject("WScript.Shell")
If imAChooseStuffIsThatAlright = "1" Then
dudeWeNeedAWindow.Run(thisIsWhereThePartyHappensSucka)
dudeWeNeedAWindow.Run(thisCrapNeedsToShutItselfDown)
WScript.Quit
ElseIf imAChooseStuffIsThatAlright = "2" Then
dudeWeNeedAWindow.Run(thisIsWhereThePartyHappensSucka)
dudeWeNeedAWindow.Run(bringItHonkyIllJustStartAllOverAgain)
WScript.Quit
ElseIf imAChooseStuffIsThatAlright = "3" Then
dudeWeNeedAWindow.Run(thisIsWhereThePartyHappensSucka)
dudeWeNeedAWindow.Run(imSorryButYouNeedToSettleDownAndHibernateRightNow)
WScript.Quit
ElseIf imAChooseStuffIsThatAlright = "0" Or imAChooseStuffIsThatAlright = "" Then
WScript.Quit
Else
imJustGoingToTellYouRightNowThatWasALowBall = MsgBox(dontMockMeIWasFeatherDustedAsAChild,16)
Set dudeWeNeedAWindow = Nothing
ShutdownThisGoober
End If
Set dudeWeNeedAWindow = Nothing
End Sub
ShutdownThisGoober