Я работал над небольшим сценарием, который должен запускаться на фоне моего компьютера. У меня уже есть скрипт, который работает, и все, кроме одного, что часы поиска и поиска Google не нашли ответа.Windows startup с файлом pyw не закрывается cmd
Файл имеет .pyw расширение, и когда я запустить его из командной строки:
pythonw File.pyw
окно CMD будет продолжаться и дать мне еще один запрос, не запуская простаивает, как это было бы с регулярным. py файл.
Когда я дважды щелкаю файл, окно cmd открывается и закрывается без проблем, как и предполагалось. Это все идеально для меня.
Однако я пытался сделать небольшой командный файл:
cd C:\Users\(my name)\Desktop
pythonw File.pyw
и я застрял, что в папке автозагрузки окон. Однако, когда я перезапустил свой компьютер, чтобы проверить, будет ли он работать, он откроет окно cmd, но не закрывает его. Я не могу понять, почему. Я пробовал все, что я могу думать, в том числе наклеивания File.pyw непосредственно в папке автозагрузки, и пытается поставить команду на выход прямо в пакетном файле, как так:
cd C:\Users\(my name)\Desktop
pythonw File.pyw
exit
Но, как вы можете, вероятно, догадаться, что не удалось. Я пытался поставить команду непосредственно в моем коде, так прямо до конца, это была линия
os.system("exit")
, но после того, как реализовать это не будет работать, я просто взял его. (Важная деталь: последняя строка кода установлена так, чтобы зацикливать ее до тех пор, пока программа не закроется. Вот почему я пытаюсь использовать расширение pyw, поэтому консоль может закрыться до завершения файла)
Далее я сократил командный файл должен быть только одной строкой:
pythonw.exe C:\Users\(my name)\Desktop\File.pyw
но это все еще не сработает. Когда командный файл запущен, я получаю открытое окно cmd с введенной командой, но он работает как обычный .py-файл, а не закрывает окно cmd.
Может ли кто-нибудь помочь мне разобраться, почему консоль не закрывается, когда команда запускается из файла .batch, но будет ли она выполняться непосредственно из командной строки?
UPDATE:
скрипт предназначен, чтобы добавить быстрое сочетание клавиш, чтобы закрыть задачу, в частности Google Chrome, когда я нажимаю «+» в два раза быстрее. Вот мой полный код (минус некоторые личные данные)
import os
import sys
import pyHook, pythoncom
setting key to be '+' to avoid accidental usage.
def OnKeyBoardEvent(event):
global prevPlus, escPushed
if event.Ascii == 43:
if prevPlus == None:
prevPlus = event.Time
else:
if event.Time - prevPlus <= 1000:
os.system("taskkill /IM chrome.exe")
prevPlus = event.Time
else:
prevPlus = event.Time
elif event.Ascii == 27:
if escPushed == None:
escPushed = event.Time
else:
if event.Time - escPushed <= 1000:
sys.exit()
else:
escPushed = event.Time
getter = pyHook.HookManager()
getter.KeyDown = OnKeyBoardEvent
getter.HookKeyboard()
prevPlus = None
escPushed = None
pythoncom.PumpMessages()
Это все прекрасно работает, когда я бегу его от PyCharm, или из ЦМД, но когда я положил его в C: \ Users (мое имя) \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup, а затем попробуйте, ничего не происходит. Я предполагаю, что это потому, что окна запускают файл и выходят из него раньше, чем что-либо происходит, но я действительно не уверен. Мне просто нужно решение, которое запускает его при запуске и вводит мой ключ, пока я не выключится.
http://serverfault.com/questions/9038/run-a-bat-file-in-a-scheduled-task-without-a-window – Bender
Я попытался с помощью VBS файл для отправки команд, но консоль все еще не работает. Есть ли способ сделать эквивалент двойного щелчка на файле из командной строки? – JustDucky
вы можете выйти, если вы вызываете свой скрипт из командного файла. Http://ss64.com/nt/exit.html – Bender