Как автоматически запустить приложение при завершении работы 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
Другие вопросы по тегам