ezcad.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import threading
  2. import time
  3. import win32api
  4. import log
  5. from xml.dom.minidom import parse
  6. import xml.dom.minidom
  7. class ezcad(threading.Thread):
  8. def __init__(self, threadID, name, counter):
  9. threading.Thread.__init__(self)
  10. self.threadID = threadID
  11. self.name = name
  12. self.counter = counter
  13. self.log_file = log.log_file
  14. self.log_print = log.log_file
  15. self.exe_enable = 'False'
  16. self.filename = 'D:\Server\模板server.ezd'
  17. self.exename = 'EzCad2.exe'
  18. self.exepath = 'D:\Ezcad2.14.9(20160628新驱动)(1)\Ezcad2.14.9(20160628新驱动)'
  19. def get_attrvalue(self, node, attrname):
  20. return node.getAttribute(attrname) if node else ''
  21. def get_nodevalue(self, node, index=0):
  22. return node.childNodes[index].nodeValue if node else ''
  23. def get_xmlnode(self, node, name):
  24. return node.getElementsByTagName(name) if node else []
  25. def read_xml(self):
  26. try:
  27. DOMTree = xml.dom.minidom.parse("ezcad2.xml")
  28. set = DOMTree.documentElement
  29. nodes = self.get_xmlnode(set, "exe")
  30. for node in nodes:
  31. self.exe_enable = self.get_nodevalue(self.get_xmlnode(node, 'enable')[0])
  32. self.exepath = self.get_nodevalue(self.get_xmlnode(node, 'exepath')[0])
  33. self.exename = self.get_nodevalue(self.get_xmlnode(node, 'exename')[0])
  34. self.filename = self.get_nodevalue(self.get_xmlnode(node, 'filename')[0])
  35. except Exception as e:
  36. self.log_file.logger.error('打标机配置文件读取异常: {0}'.format(e), exc_info=True, stack_info=True)
  37. def run(self):
  38. try:
  39. self.read_xml()
  40. if self.exe_enable == 'True':
  41. win32api.ShellExecute(0, 'open', self.exename, self.filename, self.exepath, 1)
  42. time.sleep(20)
  43. # win32api.keybd_event(0x71, 0, 0, 0) # enter
  44. # time.sleep(0.1)
  45. # win32api.keybd_event(0x71, 0, win32con.KEYEVENTF_KEYUP, 0) # 释放按键
  46. except Exception as e:
  47. self.log_file.logger.error('打标机软件执行异常: {0}'.format(e), exc_info=True, stack_info=True)