import threading import time import win32api import log from xml.dom.minidom import parse import xml.dom.minidom class ezcad(threading.Thread): def __init__(self, threadID, name, counter): threading.Thread.__init__(self) self.threadID = threadID self.name = name self.counter = counter self.log_file = log.log_file self.log_print = log.log_file self.exe_enable = 'False' self.filename = 'D:\Server\模板server.ezd' self.exename = 'EzCad2.exe' self.exepath = 'D:\Ezcad2.14.9(20160628新驱动)(1)\Ezcad2.14.9(20160628新驱动)' def get_attrvalue(self, node, attrname): return node.getAttribute(attrname) if node else '' def get_nodevalue(self, node, index=0): return node.childNodes[index].nodeValue if node else '' def get_xmlnode(self, node, name): return node.getElementsByTagName(name) if node else [] def read_xml(self): try: DOMTree = xml.dom.minidom.parse("ezcad2.xml") set = DOMTree.documentElement nodes = self.get_xmlnode(set, "exe") for node in nodes: self.exe_enable = self.get_nodevalue(self.get_xmlnode(node, 'enable')[0]) self.exepath = self.get_nodevalue(self.get_xmlnode(node, 'exepath')[0]) self.exename = self.get_nodevalue(self.get_xmlnode(node, 'exename')[0]) self.filename = self.get_nodevalue(self.get_xmlnode(node, 'filename')[0]) except Exception as e: self.log_file.logger.error('打标机配置文件读取异常: {0}'.format(e), exc_info=True, stack_info=True) def run(self): try: self.read_xml() if self.exe_enable == 'True': win32api.ShellExecute(0, 'open', self.exename, self.filename, self.exepath, 1) time.sleep(20) # win32api.keybd_event(0x71, 0, 0, 0) # enter # time.sleep(0.1) # win32api.keybd_event(0x71, 0, win32con.KEYEVENTF_KEYUP, 0) # 释放按键 except Exception as e: self.log_file.logger.error('打标机软件执行异常: {0}'.format(e), exc_info=True, stack_info=True)