Witam, zacząłem robić prosty program typu 'tasker'. Ma on za zadanie nasłuchiwać kiedy na klawiaturze wcisnę dany klawisz i wykonać pewne zadanie. Oczywiście z tym nie mam żadnych problemów wszystko działa jak powinno.
Problem Pojawił się od strony Windowsa, a mianowicie wykrywa mi ten program jako WIRUS typu keylogger ;O
Czy mogę coś z tym zrobić może to wina biblioteki "PYNPUT" do obsługi klawiatury i myszki.
Proszę pomóżcie mi bo co chwile mi usuwa pliki z katalogu z projektem i musze je przywracać a jest to już dość frustrujące.
https://www.virustotal.com
c04706cf3bd7d0a2f54a81aa5d6afd72945b568025e8a767c974812557a2364b
kodzik dla ciekawych programu:
import threading
import time
import random
import json
from pynput import mouse, keyboard
from pynput.mouse import Button
from pynput.keyboard import Key
class Loot(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.main_loop = False
self.app_active = False
self.pick_up_loot_active = False
self.listener_mouse_activate = False
self.mouse = mouse.Controller()
self.keyboard = keyboard.Controller()
self.new_sqm_size = []
self.sqm_size = []
self.sqm_list = []
self.size_x = 0
self.size_y = 0
self.enum = 0
self.hotkey = 'f'
def listener_mouse(self):
with mouse.Listener(on_click=self.set_sqm_size) as listener:
listener.join()
def set_sqm_size(self, pos_x=None, pos_y=None, button=None, pressed=None):
if not self.listener_mouse_activate:
self.listener_mouse_activate = True
self.listener_mouse()
if self.listener_mouse_activate:
if pressed and button == mouse.Button.left and self.enum == 0:
self.new_sqm_size.append(pos_x)
self.enum += 1
elif pressed and button == mouse.Button.left and self.enum == 1:
self.new_sqm_size.append(pos_x)
self.enum += 1
elif pressed and button == mouse.Button.left and self.enum == 2:
self.new_sqm_size.append(pos_y)
self.enum += 1
elif pressed and button == mouse.Button.left and self.enum == 3:
self.new_sqm_size.append(pos_y)
self.enum += 1
elif self.enum == 4:
self.enum = 0
self.listener_mouse_activate = False
self.save()
return False
def save(self):
json_file = open('modules/pick_up_loot/sqm_size.json', 'r')
json_object = json.load(json_file)
json_file.close()
json_object['sqm_size'] = self.new_sqm_size
json_file = open('modules/pick_up_loot/sqm_size.json', 'w')
json.dump(json_object, json_file, indent=2)
json_file.close()
self.new_sqm_size = []
def set_sqm_list(self):
min_pos_x = self.sqm_size[0]
max_pos_x = self.sqm_size[1]
min_pos_y = self.sqm_size[2]
max_pos_y = self.sqm_size[3]
self.size_x = max_pos_x - min_pos_x
self.size_y = max_pos_y - min_pos_y
central = [min_pos_x + (self.size_x / 2), min_pos_y + (self.size_y / 2)]
w = (central[0] - self.size_x, central[1])
nw = (central[0] - self.size_x, central[1] - self.size_y)
n = (central[0], central[1] - self.size_y)
ne = (central[0] + self.size_x, central[1] - self.size_y)
e = (central[0] + self.size_x, central[1])
se = (central[0] + self.size_x, central[1] + self.size_y)
s = (central[0], central[1] + self.size_y)
sw = (central[0] - self.size_x, central[1] + self.size_y)
self.sqm_list.append(w)
self.sqm_list.append(nw)
self.sqm_list.append(n)
self.sqm_list.append(ne)
self.sqm_list.append(e)
self.sqm_list.append(se)
self.sqm_list.append(s)
self.sqm_list.append(sw)
def load(self):
json_file = open('modules/pick_up_loot/sqm_size.json', 'r')
json_object = json.load(json_file)
json_file.close()
self.sqm_size = json_object['sqm_size']
self.set_sqm_list()
def keyboard_handling(self, key=None):
key = str(key)
key = key.strip('\'')
if not self.pick_up_loot_active:
if key == self.hotkey:
self.pick_up_loot_active = True
self.pick_up_loot()
return False
else:
return False
def pick_up_loot(self):
random.shuffle(self.sqm_list)
for i in self.sqm_list:
a = random.randint(-int(self.size_x) // 3, int(self.size_x) // 3)
b = random.randint(-int(self.size_y) // 3, int(self.size_y) // 3)
self.mouse.position = (i[0] + a, i[1] + b)
self.keyboard.press(Key.shift)
self.mouse.press(Button.right)
self.mouse.release(Button.right)
self.keyboard.release(Key.shift)
time.sleep(0.05)
self.pick_up_loot_active = False
def run(self):
self.main_loop = True
self.load()
while self.main_loop:
self.app_active = True
while self.app_active:
if not self.pick_up_loot_active:
with keyboard.Listener(on_press=self.keyboard_handling) as listener:
listener.join()
time.sleep(0.5)