首页 > 编程知识 正文

包含python实现atk的词条

时间:2023-12-27 22:27:10 阅读:325604 作者:LCUT

本文目录一览:

请教关于用python编写屏幕取词的程序问题

1、屏幕取词技术实现原理与关键源码----

Ubuntu 下可以监视 gtk.Clipboard 来获取当前选中文字和位置。

我以前尝试过定时抓取鼠标附近图像做 OCR 来取词,

改成快捷键取词会省一点。

直接获得文字的悬停取词比较麻烦。

网页、XUL 应用程序可以有鼠标悬停事件。

X11 自己没有, 不过以前流行中文平台、中文外挂时候 TurboLinux 的中文 X-window 被修改为集成鼠标悬停取词翻译。

Gtk 程序也许你可以在 ATK 层入手,自己改 ATK 和用 LD_LIBRARY_PATH。

windows下很不好做。

普遍用的是HOOK API的方法。

可以参考stardict的取词模块。

不过我感觉stardict的取词模块也不是太好用(没金山词霸的好用),感觉有bug。

似乎以前某版本的金山词霸可以翻译图片中的文字,就是用 OCR

再,金山似乎出过 Linux Qt3 版本,找 Zoomq 几位在金山的老大索取源码看看吧

嗯, 金山词霸确实出过 Linux 版本,

是基于 wine 的,不是原生的 Linux 版本...

linux下就不知道,windows下,应该是做一个api hook,钩住TextOut,DrawText和DrawTextEx。

要取词的时候给鼠标所在的窗口发一个WM_PAINT消息,让窗口重绘。

当窗口调用TextOut, DrawText或是DrawTextEx进行重绘的时候,你就可以根据传入的参数知道

窗口想在鼠标下画什么东西了。

怎么用python实现电脑cpu温度监控,最好有代码,windows平台,求大神

from __future__ import division

import os

from collections import namedtuple

_nt_cpu_temp = namedtuple('cputemp', 'name temp max critical')

def get_cpu_temp(fahrenheit=False):

"""Return temperatures expressed in Celsius for each physical CPU

installed on the system as a list of namedtuples as in:

get_cpu_temp()

[cputemp(name='atk0110', temp=32.0, max=60.0, critical=95.0)]

"""

#

cat = lambda file: open(file, 'r').read().strip()

base = '/sys/class/hwmon/'

ls = sorted(os.listdir(base))

assert ls, "%r is empty" % base

ret = []

for hwmon in ls:

hwmon = os.path.join(base, hwmon)

label = cat(os.path.join(hwmon, 'temp1_label'))

assert 'cpu temp' in label.lower(), label

name = cat(os.path.join(hwmon, 'name'))

temp = int(cat(os.path.join(hwmon, 'temp1_input'))) / 1000

max_ = int(cat(os.path.join(hwmon, 'temp1_max'))) / 1000

crit = int(cat(os.path.join(hwmon, 'temp1_crit'))) / 1000

digits = (temp, max_, crit)

if fahrenheit:

digits = [(x * 1.8) + 32 for x in digits]

ret.append(_nt_cpu_temp(name, *digits))

return ret

python编程,我方和敌,开始时血量(HP)都是300,轮流攻击,造成伤害1-100之间的随机数,一方HP空结束?

代码如下(缩进请参考截图):

from random import randint

me_hp = 300

enemy_hp = 300

while True:

m_hurt = randint(1, 100)

if enemy_hp - m_hurt 0:

enemy_hp -= m_hurt

print('造成 {:3} 点伤害,敌方HP为: {:3}'.format(m_hurt, enemy_hp))

else:

print('造成 {:3} 点伤害,Victory!'.format(m_hurt))

break

e_hurt = randint(1, 100)

if me_hp - e_hurt 0:

me_hp -= e_hurt

print('受到 {:3} 点伤害,当前HP为: {:3}'.format(e_hurt, me_hp))

else:

print('受到 {:3} 点伤害,Defeated!'.format(e_hurt))

break

输出如下:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。