Browse Source

更新项目结构

lqg 2 years ago
parent
commit
482e150ec9

+ 0 - 33
ComputerMonitor.py

@@ -1,33 +0,0 @@
-import threading
-from ctypes import *
-import time
-import subprocess
-
-class ComputerMonitor:
-	def __init__(self, callback):
-		self.callback = callback
-		self.started = False
-
-	def monitor(self):
-		self.monit_windows_lock()
-
-	def monit_windows_lock(self):
-		while True:
-			process_name='LogonUI.exe'
-			callall='TASKLIST'
-			outputall=subprocess.check_output(callall)
-			outputstringall=str(outputall)
-			if process_name in outputstringall:
-				print("Locked.")
-				if self.callback:
-					self.callback()
-			else: 
-			   pass
-			   
-			time.sleep(1)
-
-	def start(self):
-		monitor_threading = threading.Thread(target=self.monitor, args=())
-		monitor_threading.start()
-		self.started = True
-		

+ 13 - 10
Controller.py

@@ -1,8 +1,8 @@
 import threading
-from TcpServer import TcpServer
-from KeyboardListener import KeyboardListener
+from tcp_server import TcpServer
+from keyboard_listener import KeyboardListener
 from service import *
-from ComputerMonitor import ComputerMonitor
+from computer_monitor import ComputerMonitor
 from CommandMessage import CommandMessage;
 import json
 import pyautogui
@@ -34,13 +34,16 @@ tcpServer.set_receive_listener(on_message_received)
 tcpServer.connected_listener = on_tcp_connected
 tcpServer.start()
 
-keyboardListener = KeyboardListener(tcpServer)
+if __name__=='__main__':
 
-def onTrans():
-	print("need trans")
-	content = getClipContent()
-	text = json.dumps({"command":1,"message":content})
+	# 按键监听
+	keyboardListener = KeyboardListener(tcpServer)
 
-	tcpServer.send_text(text)
+	def onTrans():
+		print("need trans")
+		content = getClipContent()
+		text = json.dumps({"command":1,"message":content})
 
-keyboardListener.listen_keyboard(onTrans)
+		tcpServer.send_text(text)
+
+	keyboardListener.listen_keyboard(onTrans)

+ 0 - 78
KeyboardListener.py

@@ -1,78 +0,0 @@
-import keyboard
-import time
-from screen_shot import ScreenCapture
-import io
-
-class KeyboardListener:
-	def __init__(self, tcpServer):
-		self.tcpServer = tcpServer
-		self.t = 0
-		self.c = 0
-		self.key_state_map={}
-		self.screen_capture = None
-		
-	def listen_keyboard(self,callback):
-		self.callback = callback
-		keyboard.hook(self.onKeyEvent)
-		keyboard.wait()
-
-	def onImgCapture(self,pic):	
-		imgByteArr = io.BytesIO()
-		pic.save(imgByteArr, format='JPEG')
-		bytes_data = imgByteArr.getvalue()
-		self.tcpServer.send_img(bytes_data)
-
-	def isCtrlHolding(self):
-		return ('ctrl' in self.key_state_map and self.key_state_map['ctrl']=='down')\
-			or ('left ctrl' in self.key_state_map and self.key_state_map['left ctrl']=='down')\
-			or ('right ctrl' in self.key_state_map and self.key_state_map['right ctrl']=='down')
-
-	def isAltHolding(self):
-		return ('alt' in self.key_state_map and self.key_state_map['alt']=='down')\
-			or ('left alt' in self.key_state_map and self.key_state_map['left alt']=='down')\
-			or ('right alt' in self.key_state_map and self.key_state_map['right alt']=='down')
-
-	def isKeyHolding(self,key):
-		return (key in self.key_state_map and self.key_state_map[key]=='down')
-
-
-	def onKeyEvent(self,key):
-		#update key_state_map
-		self.key_state_map[key.name.lower()]=key.event_type
-
-		#is screenshoot?
-
-		if  self.isKeyHolding("caps lock")\
-			and key.event_type=="down"\
-			and key.name.lower()=="a":
-			self.screen_capture = ScreenCapture()
-			self.screen_capture.are_capture(self.onImgCapture)
-
-		print(self.key_state_map)
-		#is triple c?
-		if  key.event_type=="down" \
-			and key.name.lower()=="c" \
-			and self.isCtrlHolding():
-
-			if self.t == 0:
-				self.t=time.time()
-				self.c += 1
-				print("wait for nex c",self.c)
-				return
-
-			if (time.time()-self.t<0.5):
-				self.t=time.time()
-				self.c += 1
-				print("wait for nex c:",self.c)
-
-			else:
-				self.c = 0
-				self.t=0
-				print("wait for nex c",self.c)
-
-			if self.c>=2:
-				self.c=0
-				print("need trans")
-				if self.callback:
-					self.callback()
-

+ 0 - 0
cybercontroller.bat → README.md


+ 0 - 0
CommandMessage.py → cyber/CommandMessage.py


+ 0 - 0
CyberSocket.py → cyber/CyberSocket.py


+ 0 - 0
KeyboardManager.py → cyber/KeyboardManager.py


+ 0 - 0
cyber/__init__.py


+ 41 - 0
cyber/computer_monitor.py

@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+# -*- encoding: utf-8 -*-
+'''
+@Contact :   liuyuqi.gov@msn.cn
+@Time    :   2022/10/05 06:14:26
+@License :   Copyright © 2017-2022 liuyuqi. All Rights Reserved.
+@Desc    :   
+'''
+
+import threading
+from ctypes import *
+import time
+import subprocess
+
+class ComputerMonitor:
+    '''
+    
+    '''
+    def __init__(self, callback):
+        self.callback = callback
+        self.started = False
+
+    def monit_windows_lock(self):
+        while True:
+            process_name='LogonUI.exe'
+            callall='TASKLIST'
+            outputall=subprocess.check_output(callall)
+            outputstringall=str(outputall)
+            if process_name in outputstringall:
+                print("Locked.")
+                if self.callback:
+                    self.callback()
+            else: 
+               pass
+            time.sleep(1)
+
+    def start(self):
+        monitor_threading = threading.Thread(target=self.monit_windows_lock, args=())
+        monitor_threading.start()
+        self.started = True
+        

+ 12 - 0
cyber/cybercontroller.bat

@@ -0,0 +1,12 @@
+@echo off
+REM ***************************************************************************
+REM @Contact :   liuyuqi.gov@msn.cn
+REM @Time    :   2022/10/05 05:40:14
+REM @Version :   1.0
+REM @License :   (C)Copyright 2019 liuyuqi.
+REM @Desc    :   此文件放到开机目录,开启启动
+REM %1 - ext_name
+REM %2 - characters replaced
+REM %3 - new characters
+REM ***************************************************************************
+pythonw Controller.pyw

+ 86 - 0
cyber/keyboard_listener.py

@@ -0,0 +1,86 @@
+#!/usr/bin/env python
+# -*- encoding: utf-8 -*-
+'''
+@Contact :   liuyuqi.gov@msn.cn
+@Time    :   2022/10/05 06:19:13
+@License :   Copyright © 2017-2022 liuyuqi. All Rights Reserved.
+@Desc    :   按键监听
+'''
+
+import keyboard
+import time
+from screen_shot import ScreenCapture
+import io
+
+
+class KeyboardListener:
+    def __init__(self, tcpServer):
+        self.tcpServer = tcpServer
+        self.t = 0
+        self.c = 0
+        self.key_state_map = {}
+        self.screen_capture = None
+
+    def listen_keyboard(self, callback):
+        self.callback = callback
+        keyboard.hook(self.onKeyEvent)
+        keyboard.wait()
+
+    def onImgCapture(self, pic):
+        imgByteArr = io.BytesIO()
+        pic.save(imgByteArr, format='JPEG')
+        bytes_data = imgByteArr.getvalue()
+        self.tcpServer.send_img(bytes_data)
+
+    def isCtrlHolding(self):
+        return ('ctrl' in self.key_state_map and self.key_state_map['ctrl'] == 'down')\
+            or ('left ctrl' in self.key_state_map and self.key_state_map['left ctrl'] == 'down')\
+            or ('right ctrl' in self.key_state_map and self.key_state_map['right ctrl'] == 'down')
+
+    def isAltHolding(self):
+        return ('alt' in self.key_state_map and self.key_state_map['alt'] == 'down')\
+            or ('left alt' in self.key_state_map and self.key_state_map['left alt'] == 'down')\
+            or ('right alt' in self.key_state_map and self.key_state_map['right alt'] == 'down')
+
+    def isKeyHolding(self, key):
+        return (key in self.key_state_map and self.key_state_map[key] == 'down')
+
+    def onKeyEvent(self, key):
+        # update key_state_map
+        self.key_state_map[key.name.lower()] = key.event_type
+
+        # is screenshoot?
+
+        if self.isKeyHolding("caps lock")\
+                and key.event_type == "down"\
+                and key.name.lower() == "a":
+            self.screen_capture = ScreenCapture()
+            self.screen_capture.are_capture(self.onImgCapture)
+
+        print(self.key_state_map)
+        # is triple c?
+        if key.event_type == "down" \
+                and key.name.lower() == "c" \
+                and self.isCtrlHolding():
+
+            if self.t == 0:
+                self.t = time.time()
+                self.c += 1
+                print("wait for nex c", self.c)
+                return
+
+            if (time.time()-self.t < 0.5):
+                self.t = time.time()
+                self.c += 1
+                print("wait for nex c:", self.c)
+
+            else:
+                self.c = 0
+                self.t = 0
+                print("wait for nex c", self.c)
+
+            if self.c >= 2:
+                self.c = 0
+                print("need trans")
+                if self.callback:
+                    self.callback()

+ 1 - 0
screen_shot.py → cyber/screen_shot.py

@@ -10,6 +10,7 @@ class ScreenCapture:
 
     def __init__(self):
         pass
+    
     def start(self):
         self.root = tkinter.Tk()
         self.root.geometry('0x0+0+0')

+ 0 - 0
service.py → cyber/service.py


+ 1 - 0
TcpServer.py → cyber/tcp_server.py

@@ -16,6 +16,7 @@ class TcpServer:
 
     def set_receive_listener(self,receive_listener):
         self.receive_listener = receive_listener
+        
     def server(self):
         while True:
             print("等待连接")

+ 0 - 0
cyber/utils/__init__.py


+ 9 - 0
Unlocker.py → cyber/windows_unlocker.py

@@ -1,3 +1,12 @@
+#!/usr/bin/env python
+# -*- encoding: utf-8 -*-
+'''
+@Contact :   liuyuqi.gov@msn.cn
+@Time    :   2022/10/05 05:44:28
+@License :   Copyright © 2017-2022 liuyuqi. All Rights Reserved.
+@Desc    :   登录界面自动化输入密码,权限有问题,弃用
+'''
+
 from ctypes import *
 import time
 # while True:

+ 11 - 0
main.py

@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+# -*- encoding: utf-8 -*-
+'''
+@Contact :   liuyuqi.gov@msn.cn
+@Time    :   2022/10/05 06:02:29
+@License :   Copyright © 2017-2022 liuyuqi. All Rights Reserved.
+@Desc    :   入口
+'''
+
+if __name__=='__main__':
+    pass

+ 0 - 46
out.py

@@ -1,46 +0,0 @@
-import socket
-import threading
-import json
-
-class TcpServer:
-    def __init__(self):
-        self.port=2233#设置端口
-        self.HEAD_LEN=8
-        self.tcpServerSocket=socket.socket()#创建socket对象
-        hostname= socket.gethostname()#获取本地主机名
-        sysinfo = socket.gethostbyname_ex(hostname)
-        hostip=sysinfo[2][2]
-        self.tcpServerSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)#让端口可以复用
-        self.tcpServerSocket.bind((hostip,self.port))#将地址与套接字绑定,且套接字要求是从未被绑定过的
-        self.tcpServerSocket.listen(5)#代办事件中排队等待connect的最大数目
-
-    def set_receive_listener(self,receive_listener):
-        self.receive_listener = receive_listener
-    def server(self):
-        while True:
-            print("等待连接")
-            self.clientSocket, addr = self.tcpServerSocket.accept()  
-            print ('连接地址:', addr)
-            if self.connected_listener:
-                self.connected_listener()
-            while True:
-                try:
-                    head_data=self.clientSocket.recv(self.HEAD_LEN)
-                    if not len(head_data)==8:
-                        print("bad package!head_data len:",head_data)
-                        self.restart()
-                        return
-                    body_len = self.get_length_from_head_data(head_data)
-                    body_data = self.clientSocket.recv(body_len)
-                    if not body_len==len(body_data):
-                        print("bad package!body_len:",body_len)
-                        self.restart()
-                        return
-                    data_type = self.get_type_from_head_data(head_data)
-
-                    if data_type == 1:#test/json data
-                        text = body_data.decode()
-                        print(text)
-                        if not text:
-                            break
-                        if self.receive_listene

+ 6 - 0
requirements.txt

@@ -0,0 +1,6 @@
+pyautogui
+keyboard
+pillow
+perclip
+pypiwin32
+; tkinter

+ 0 - 0
test/__init__.py


+ 9 - 0
test.py → test/test.py

@@ -1,3 +1,12 @@
+#!/usr/bin/env python
+# -*- encoding: utf-8 -*-
+'''
+@Contact :   liuyuqi.gov@msn.cn
+@Time    :   2022/10/05 05:47:23
+@License :   Copyright © 2017-2022 liuyuqi. All Rights Reserved.
+@Desc    :   TcpServer.py 读写 out.py
+'''
+
 import pyautogui
 import time
 from KeyboardManager import key_press