美文网首页
Java探秘:揭秘栈帧的神秘面纱与内存占用之谜

Java探秘:揭秘栈帧的神秘面纱与内存占用之谜

作者: 木头左 | 来源:发表于2024-06-27 19:10 被阅读0次

哈喽,大家好,我是木头左!

在这个科技日新月异的时代,的生活被各种软件和应用所包围。然而,你是否想过,如果你能够控制这些应用的操作,那么你的生活将会变得多么的便捷?今天,我将教你如何使用Python的pynputpyautogui库,记录各种按键操作,并用它们来执行操作。这不仅可以帮助你提高工作效率,还可以让你在无聊的时候找到乐趣。

一、Python的键盘记录器:pynput

Python的pynput库是一个强大的工具,它可以让你控制和监控你的电脑。你可以使用它来记录和重播你的键盘和鼠标操作。这对于那些想要自动化他们的工作流程的人来说,是非常有用的。
你需要安装pynput库。你可以使用pip来安装它:

pip install pynput

然后,你可以创建一个KeyboardController对象,并使用它的on_press方法来记录按键操作。例如:

from pynput.keyboard import Controller, Key

keyboard = Controller()

def on_press(key):
    print('{0} pressed'.format(key))
    if key == Key.esc:
        return False

with keyboard.Listener(on_press=on_press) as listener:
    listener.join()

这段代码将会在每次按下一个键时打印出该键的名称,并在按下Esc键时停止监听。

二、自动化操作:pyautogui

有了pynput,你就可以开始创建自动化操作了。Python的pyautogui库可以让你模拟鼠标和键盘操作。你可以使用它来打开应用程序,点击按钮,输入文本等等。
你需要安装pyautogui库。你可以使用pip来安装它:

pip install pyautogui

然后,你可以使用pyautogui的各种函数来模拟操作。例如,以下代码将会打开记事本并输入一些文本:

import pyautogui
import time

time.sleep(2)  # 等待2秒,让你有时间切换到记事本窗口
pyautogui.typewrite('Hello world!')  # 输入文本
pyautogui.press('enter')  # 按下回车键

这段代码会在你运行它后2秒钟打开记事本,并输入"Hello world!",然后按下回车键。你可以在任何你想要的地方运行这段代码,只要你有焦点在正确的窗口上。

三、结合使用:按键大师

现在,你已经知道了如何记录按键操作和使用pyautogui来模拟操作。那么,你可以将这两个功能结合起来,创建一个真正的按键大师。你可以创建一个脚本,当你运行它时,它会记录你的按键操作,并使用这些操作来自动化你的命令行任务。例如:

import pynput
import pyautogui as pw
import time
import os
import random
from datetime import datetime, timedelta, timezone
from selenium import webdriver
from selenium.webdriver.common.keys import Keys, KeyCodes as kc, KeyModifiers as km, ActionKeys as ak, ENTER, ESC, SPACE, DLEFT, DRIGHT, UPARROW, LARROW, NUMPAD8, NUMPAD2, NUMPAD4, SEMICOLON, F6, F5, PAGE_UP, PAGE_DOWN, CTRL, SHIFT, CMD, A, B, BACKSPACE, NILVALUE, HIDEKEYS, TOGGLEFULLSCREEN, IMEPROPERTIES, F11, F12, PAUSE, SCROLLLOCK, COMMA, PERIOD, CAPS_LOCK, KP_PLUS, KP_MINUS, KP_ENTER, KP_EQUALS, KP_DIVIDE, KP_MULTIPLY, KP_SUBTRACT, KP_END, KP_HOME, KP_PGUP, KP_PGDN, KP_ENDTAB, KP_F5, KP_F3, KP_F11, KP_F12, KP_ESCAPE, KP_INSERT, KP_DELETE, NUM_0, NUM_1, NUM_2, NUM_3, NUM_4, NUM_5, NUM_6, NUM_7, NUM_8, NUM_9, ASTR_SPACE, ASTR_XFERMODECHANGEDIRECTIONKEYSALTNONEMETA2MODEMETAQUICKFORWARDMETAQUICKRETURNMETAPLAYPAUSEMEDIARECORDMUTEUNDOFOCUSSONORAFTERTOGGLEZOOMINVENTURERCONTROLSAPPLICATIONDETAILSSYSTEMEXITWINDOWS+XKP_SLASHKP_ASTERISKKP_OPENBRACKETKP_CLOSEBRACKETKP_BACKSLASHKP_PIPEKP_ATKP_HASHKP_PERCENTKP_LESSKP_GREATERKP_AMPERSANDKP_SINGLEQUOTEKP_DOUBLEQUOTEKP_VERTICALBARKP_HLINEKP_DBLLINEKP_CARETKP_UNDERSCOREKP_GRAVEKP_LEFTPARENTHESISKP_RIGHTPARENTHESISKP_LEFTBRACKETKP_RIGHTBRACKETKP__BACKQUOTEKP__OPENCURLYBRACKETKP__CLOSECURLYBRACKETKANJISHIFTCUTTEROMANIAKOYAKAGIRIMOHIRAGANANEWLINEHANGULJUNGWONGCAPITALMCHARLATINCAPITALNUNJULAMYEAUDIOVIDEOFILESHAREWEBCAMMMSKYPEWHATSAPPXXXXVIRTUALKEYBOARDWIN+LWIN+RWIN+MWIN+UWIN+DWIN+EWIN+FWIN+TWIN+GWIN+HWIN+YWIN+UWIN+IWIN+OWIN+PWIN+[']WIN+\\WIN+|WIN+/WIN+?WIN+↑WIN+↓WIN++WIN--WIN-WIN*WIN&WIN^WIN<win>win\u00a1win\u00a7win\u00b4winu00b6win\u00b7win\u00bbwin\u00bfwin\u20acwinu2122win\u2190win\u2195win\u23cewin\u2409win\u25aawinu25abwin\ufe4fwin\ufeffwinufffdwin\ufffbwinuffffwin\u05bewin\u05c0win\u05c3winu05c6win\u05d8win\u05dcwin\u05e6win\u05f4win\u061fwin\u061dwinu064bwin\u0670win\u06d6[aAiAUOoOlOE]OPQRSTUAVYXWZ[]^_{|}~
> 我是木头左,感谢各位童鞋的点赞、收藏,我们下期更精彩!
    
![](https://img-blog.csdnimg.cn/img_convert/f45fb6d6b8550de7b64d170be83f7581.png)

相关文章

  • 值类型和引用类型

    值类型 在栈上创建,创建速度快 内存占用小。整体占用的内存就是内部属性内存对齐后的大小 内存回收快,用栈帧控制入栈...

  • GC算法 垃圾收集器

    GC回收也是jvm学习中非常重要的一环,在栈中栈帧是栈的主要内存结构,每一个栈帧在栈中占用的内存基本都是确定的...

  • JVM内存管理

    内存管理 Java栈区(内存管理中最重要的模块) 作用: 它存放的是Java方法执行时的所有的数据 栈区由栈帧组成...

  • java线程

    [TOC] 4 运行原理 4.1 栈与栈帧 Java Virtual Machine Stacks (Java ...

  • 面试半年,凭借这份JVM面试题,我终于拿到了字节跳动的offer

    内存区域 虚拟机栈 生命周期与线程相同,描述的是Java 方法执行的内存模型,每个方法在执行的时候都会创建一个栈帧...

  • java虚拟机栈

    # java虚拟机内存模型 # java虚拟机栈 ## 栈帧的基本结构:局部变量表,操作数栈,动态连接方法,返回地...

  • Java中高级核心知识全面解析——JVM垃圾回收(揭开JVM内存

    一、揭开JVM内存分配与回收的神秘面纱 Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时,J...

  • 学习笔记:Java虚拟机基础概念

    内存区域 1,java虚拟机栈:描述的是java方法执行的内存模型---每个方法在执行的同时都会创建一个栈帧用于存...

  • 随谈Java - (二)内存区域

    一、JVM内存区域规范 1.1 各区域作用 Java方法栈:以栈的形式存放栈帧,每一个Java方法调用的开始和结束...

  • 2021-01-19 线程运行原理

    栈与栈帧 Java Virtual Machine Stacks (Java 虚拟机栈)我们都知道 JVM 中由堆...

网友评论

      本文标题:Java探秘:揭秘栈帧的神秘面纱与内存占用之谜

      本文链接:https://www.haomeiwen.com/subject/fruscjtx.html