1

При закрытии Windows 7, как заставить приложение автоматически запускаться и кратковременно запускаться, а затем закрываться?

Я хочу, чтобы приложение кратко показывало на экране или кратко говорило на динамиках мое напоминание себе: «Отключите USB-накопитель, выключите нагреватель, прежде чем покинуть комнату». После этого Win 7 закрывается.

2 ответа2

2

Используйте запланированное задание Windows для этого. добавить триггер "при выходе пользователя из системы" (может называться по-другому, я сейчас не на английских окнах).

Если вы хотите воспроизвести звук, вы должны сначала записать его, а затем запустить свой музыкальный проигрыватель favourit с записанным звуковым файлом в качестве параметра командной строки. У большинства игроков есть параметры командной строки на их веб-сайте, или просто Google для этого.

если вы хотите показать сообщение, вы должны использовать файл windows * .bat.

1

Каран прав: нет никаких гарантий, что задание сможет выполнить в полном объеме. Я протестировал метод групповой политики на своей машине, но с твердотельным накопителем, респектабельным процессором и 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .