- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正准备为 Windows 用户调整 ANKI SRS 的 music fiddler 插件。Anki 仅运行以 .py 结尾的附加组件,而不是 pyw。有没有办法隐藏运行代码时自动弹出的控制台。
如果没有,有没有办法不取消选择控制台窗口(我基本上每五秒后必须单击主 anki 窗口,因为已经再次关闭的控制台正在选择中)。
我目前使用的打开窗口的命令例如是: os.system('"nircmd.exe changesysvolume"'+ change)
完整代码如下控制台运行 nircmd.exe 和系统声音应更改的音量单位数。是否可以调整代码?
# -*- coding: utf-8 -*-
# Music-Fiddler (a plugin for Anki)
# coded by D_Malik, malik6174@gmail.com
# Version 1
# License: GNU GPL, version 3 or later; http://www.gnu.org/copyleft/gpl.html
"""
A simple plugin that fiddles with music volume to reinforce quick reviewing.
Before using:
- This plugin was made for Linux. It will require modification to work on another OS.
- Ensure that the "amixer" command works on your computer. If it doesn't, you're going to need to modify the code somehow. Don't ask me how.//Amixer has been replaced by nircmd.exe for windows
- Change all lines (in the plugin source) marked with "CHANGEME" according to your preferences.
"""
import os
from aqt import mw
from aqt.utils import showInfo
from os import system
from aqt.qt import *
from anki.hooks import addHook
def resetMusicTimer():
"Boosts volume back up and starts the music timer."
#CHANGEME: The next lines are a python dictionary associating deck names with times (in milliseconds) between volume-decrements.
#Eg, when using the deck "brainscience", volume will decrement every 5 seconds. When using a deck without a listed name, "other" is used.
#Change this according to your decks. Decks with shorter, easier cards need less time.
deckMusicTimes = {
"rocketsurgery" : 3000,
"brainscience" : 5000,
"other" : 5000,
}
if mw.col.decks.current()['name'] in deckMusicTimes:
mw.musicTimeToDecrement = deckMusicTimes[mw.col.decks.current()['name']]
else:
mw.musicTimeToDecrement = deckMusicTimes["other"]
boostMusicVolume()
mw.musicTimer = QTimer(mw)
mw.musicTimer.setSingleShot(True)
mw.musicTimer.start(mw.musicTimeToDecrement)
mw.connect(mw.musicTimer, SIGNAL("timeout()"), decrementMusicVolume)
#showInfo(mw.state)
def changeMusicVolume(change):
"Changes volume according to string; can be either absolute ('40') or change ('2%-')."
os.system('"nircmd.exe changesysvolume"'+ change) #CHANGEME somehow, if amixer doesn't work
def boostMusicVolume():
#showInfo("boosted") #To test changes, you can uncomment this line.
os.system('"nircmd.exe changesysvolume 50000"') #CHANGEME somehow, if amixer doesn't work
#CHANGEME: Set to however high you want your volume to go each time it's boosted back.
#Protip: your music-playing program might have its own "volume multiplier" that you can adjust easily.
def killMusicVolume():
#showInfo("killed") #To test changes, you can uncomment this line.
os.system('"nircmd.exe mutesysvolume 1"') #CHANGEME somehow, if amixer doesn't work
#CHANGEME: Set to how low volume should go when it dies, eg due to undoing a card.
def decrementMusicVolume():
"When reviewing, decrements volume, then sets a timer to call itself. When not reviewing, kills volume and stops timer."
if mw.state == "review":
#showInfo("music volume goes down") #To test changes, you can uncomment this line.
os.system('"nircmd.exe changesysvolume -5000"') #CHANGEME somehow, if amixer doesn't work
mw.musicTimer.start(mw.musicTimeToDecrement) #(start the timer again)
else:
killMusicVolume()
mw.musicTimer = None #(kill the timer if you're not reviewing)
addHook("showQuestion", resetMusicTimer)
最佳答案
似乎使用了 subprocess模块而不是 os.system
将解决您的问题。请看How to avoid console window with .pyw file containing os.system call?和 How do I hide the console when I use os.system() or subprocess.call()? .
关于python - 只有 py 文件时隐藏控制台(没有 pyw)[ANKI 附加组件],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23711016/
我有一个永远不会自动退出的 python 程序。但是,它确实需要在某些时候这样做。它必须在没有控制台的情况下运行,所以我将它保存为 .pyw,但这意味着没有 X 可以单击以关闭它。如何在不重新启动机器
我刚刚开始学习 tkinter,我在这里缺少一些基本知识。当我除了创建一个空白窗口什么都不做时,我得到的结果好坏参半。这是代码: from tkinter import * from tkinter
我有一个 .pyw 脚本,当我双击它等时它会工作并且它会保持打开状态直到我关闭它但是我已经将它添加到注册表以在启动时运行。它确实在启动时运行,但不会像设置的那样保持打开状态。它闪烁 gui,然后关闭。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
问题 我已经创建了一个基本的 python 脚本,使用 Flask 来呈现一个 HTML 页面。在 Windows 10 上,该脚本可以完美地作为 *.py 文件,但是当作为 运行时*.pyw 文件,
所以,我对 Python 非常陌生。我刚刚从 http://webprojects.eecs.qmul.ac.uk/fa303/pgs/tutorial.html 下载了一个文件.它是一个 PYW 文
所以我知道 python 语言有 .py 和 .pyw 扩展名,不同之处在于 .pyw 运行静默并且没有弹出窗口,C++ 中有这样的东西吗?如果没有,是否可以让我的代码静默运行?启动它的替代方法? 最
我有一个脚本,可以将 Google Earth .kml/.kmz 文件转换为 shapefile,并使用用 Tkinter 编写的简单 GUI 界面。 我的问题是它在 .py 扩展名下工作正常,但是
我有一个带有 wxpython GUI 和一些命令行参数的 python 程序。我用 py2exe 生成了一个 Windows 可执行文件。我不想在后台有一个命令行窗口,所以 py2exe 使它成为一
我想使用 .bat 文件来运行 python 脚本而不显示命令提示符。 我读过将脚本保存为 .pyw 应该可以解决问题,但不知何故命令提示符不断出现。 我的 .bat 文件如下所示: @C:\User
有人给了我一个 python 文件来打开并用作资源。唯一的问题是我对Python一无所知,它与我的编码基础知识有很大不同。 该文件不是普通的 .py 文件,而是无控制台的 .pyw 文件。我已经导入了
我试图在没有控制台的情况下将 pyw 文件编译成 pyc。当我尝试用它直接编译时,结果是一个 pywc 文件,但似乎 pythonw.exe 没有将该扩展名注册为它的文件之一,就像 python.ex
如果我将代码文件保存为 .pyw,则不会出现控制台窗口 - 这正是我想要的 - 但如果代码包含对 os.system 的调用,我仍然得到一个讨厌的控制台窗口。我假设它是由对 os.system 的调用
我正在使用 tkinter 制作一个 Python (3) GUI 程序,我正在使用重定向功能将我所有的打印语句定向到一个 GUI 滚动文本框。 这是重定向函数(与 tkinter 窗口在同一个类中)
我正准备为 Windows 用户调整 ANKI SRS 的 music fiddler 插件。Anki 仅运行以 .py 结尾的附加组件,而不是 pyw。有没有办法隐藏运行代码时自动弹出的控制台。 如
运行一个简单的 .py 或 .pyw python 文件会导致 python.exe显示在任务管理器下。 python myApp.py python myApp.pyw 但是,当我们尝试在不使用控制
有时(在客户的 PC 中)我需要一个 python 脚本在 Windows shell 中执行,如 .CMD 或 .BAT,但没有与 PYTHON/PYTHONW 关联的 .py 或 .pyw 扩展名
请在我编写的python代码下面找到: from tkinter import * import os fenetre = Tk() label = Label(fenetre, text="Powe
virtualenv 不将 .py(w) 文件与 virtualenv 版本的 Python 可执行文件相关联的原因是什么?考虑到没有像 shebang 这样的机制,这似乎是 Windows 上 vi
我是一名优秀的程序员,十分优秀!