Python » Страница 714

-

Программирование на Python



JOIN_ME


репутация:
на сайте с 1970 года
сообщений:

7131

В демоне невозможно работать с задачами, доступна работа с процессами.

dyomash


репутация: 12
на сайте с 2007 года
сообщений: 153

Xiaomi M2S

харьков

Возраст - 52

7132

Здравствуйте.Такая проблема: хочу в скрипт вставить функцию паузы с возможностью досрочного выхода из этой паузы, по нажатию горячих клавишь.
Желаемый результат: по нажатию на "С"- пауза в работе скрипта 100 сек. Досрочный выход из паузы , с возобновлением работы скрипта - зеленая клавиша.Вот этот кусок кода:

Внимание! У вас нет прав для просмотра скрытого текста.

На деле получается: если во время работы скрипта нажать только "С", то после 100 сек. скрипт продолжает работать.Но если до истечения 100 сек. нажать зеленую, таймер , возможно, и прекращает отсчет , но скрипт работу не возобновляет. В чем моя ошибка? Помогите , пожалуйста.

Прикрепленный файл #1: 667_primer.txt (388 b)

-------------
добавлено в 02.13:

Taganrog


репутация:
на сайте с 1970 года
сообщений:

7133

JOIN_ME,
Теперь понятно . Действительно поменял код на
miso.kill_process(u'CorePlayer*', 0)
И в фоне стало все ок. Подскажи пожалуйста ссылку на описание всех ограничений для фоновых процессов.

dimy44


репутация: 537
на сайте с 2006 года
сообщений: 2540

HTC One S

Евпатория

Возраст - 55

7134

dyomash, как-то давно тоже с этим столкнулся. Если в after не указать вторым аргументом вызываемую функцию, то cancel() просто "вешает" программу, при указании же вызываемой функции after становится асинхронной и не останавливает дальнейшее выполнение кода на время спячки. Могу предложить сделать аналог "пробку":
def start_pause(time=100):
. . global flag
. . flag = time
. . pause()
def pause():
. . global flag
. . while flag:
. . . . e32.ao_sleep(1)
. . . . flag -= 1
def stop_pause():
. . global flag
. . flag = 0
типа того.
Да, и зачем 2 экземпляра класса для KeyCapturer?..

dyomash


репутация: 12
на сайте с 2007 года
сообщений: 153

Xiaomi M2S

харьков

Возраст - 52

7135

Спасибо за ответ.А что такое flag и global flag ? Ну или где можно об этом прочитать ?

dimy44


репутация: 537
на сайте с 2006 года
сообщений: 2540

HTC One S

Евпатория

Возраст - 55

7136

flag - имя переменной. Можно любое дать. Инструкцией global переменная объявляется глобальной. Проще говоря, изменившись внутри функции stop_pause, она прекратит цикл while в другой функции, т.к. переменная глобальна. В любом учебнике есть, это азы.

dyomash


репутация: 12
на сайте с 2007 года
сообщений: 153

Xiaomi M2S

харьков

Возраст - 52

7137

Может я где-то напорол, но результат тот-же : при попытке досрочно вывести из "спячки" -скрипт зависает

timer = e32.Ao_timer()
def sleep(sec):
. . e32.ao_sleep(sec)
def start_pause(time=100):
. . global flag
. . flag = time
. . pause()
def pause():
. . global flag
. . while flag:
. . . . e32.ao_sleep(1)
. . . . flag -= 1
def stop_pause():
. . global flag
. . flag = 0
def stop(key):
. . if (key == 8):
. . . . start_pause()
def go(key):
. . if (key == 63586):
. . . . stop_pause()
import keycapture
capturer1 = keycapture.KeyCapturer(stop)
capturer3 = keycapture.KeyCapturer(go)
capturer1.forwarding = 1
capturer3.forwarding = 0
capturer1.keys = [8]
capturer3.keys = [63586]
capturer1.start()
capturer3.start()

JOIN_ME


репутация:
на сайте с 1970 года
сообщений:

7138

И всетаки может объяснишь для чего тебе две кейкапчи?

Armen-82.08


репутация: 256
на сайте с 2006 года
сообщений: 2854

Sony Xperia TX LT29i

Батуми

Возраст - 44

7139

Всем привет!Как перевести этот бред на нормальный язык?Žá®§­ ­¨¥ á¨á⥬ë,это после запаковки в иксе любого файла с русским названием..

dyomash


репутация: 12
на сайте с 2007 года
сообщений: 153

Xiaomi M2S

харьков

Возраст - 52

7140

JOIN_ME,я понял ,что не "эстетично".Если-б знал ,как правильно - написал-бы smile Главное -работает.