当前位置:首页>python>Python-pywinauto桌面自动化基础

Python-pywinauto桌面自动化基础

  • 2026-08-20 13:55:09
Python-pywinauto桌面自动化基础

pywinauto 简介

什么是pywinauto

pywinauto是一组用于自动化Microsoft Windows GUI的python模块。最简单的是,它允许您将鼠标和键盘操作发送到窗口对话框和控件。

pywinauto安装和启动

1. 安装pywinauto

在 Pycharm 底部的终端(Terminal)窗口中输入:

pip install pywinauto

提示success即安装成功了。

2. backend选择

我们安装好Pywinauto之后,首先要确定哪种可访问性技术(backend)可以用于我们的应用程序,在windows上受支持的有两种:

  • Win32 API ( backend= "win32" ) - 默认的backend

    • MFC, VB6, VCL, 简单的WinForms控件和大多数旧的遗留应用程序
  • MS UI Automation ( backend="uia" )

    • WinForms, WPF, Store apps, Qt5, 浏览器

如果不能确定程序到底适用于那种backend,可以借助于GUI对象检查工具来查看,常用的检查工具有 Inspect.exe,Spy++ 。如果使用Inspect的UIA模式,可见的控件和属性更多的话,backend可选uia,反之,backend可选win32。

3. 控件查看工具-inspect

  • inspect.exe下载链接:https://z4gvregzdz.feishu.cn/file/boxcnoI8GOg5aIWaYTVXL8hyWzc
  • spy++下载链接:https://z4gvregzdz.feishu.cn/file/boxcnqlUR6yBhvuJsoFiUVrVGpe

将inspect左上角的下拉列表中切换到"UI Automation",然后鼠标点一下你需要测试的程序窗体,inspect就会显示相关信息,如下图所示。说明backend为uia

程序里面的任意一个部位其实都是控件,在inspect的控件树中都可以找到,是一层一层分级别的,可以一个个点开所有控件

完整操作步骤

通过pywinauto操作控件需要以下几个步骤:

  1. 第一步
    :创建实例化对象,得到的app是Application对象
  2. 第二步
    :选择窗口,得到的窗口是WindowSpecification对象
  3. 第三步
    :基于WindowSpecification对象使用其方法再往下查找,定位到具体的控件
  4. 第四步
    :使用控件的方法属性执行我们需要的操作

接下来我们先看一个实例代码,(确保电脑版微信已经登录且前台显示在桌面上)按照上面的步骤获取微信的搜索文本框并点击,代码如下:

from pywinauto import Application# 第一步连接已有微信进程创建实例化对象PID = 12345  # 进程PID在任务管理器-详细信息可以查看后修改该值wechat_app = Application(backend='uia').connect(process=PID)# 第二步拿到微信主窗口main_window = wechat_app.window(class_name='WeChatMainWndForPC')# 第三步通过child_window方法查找搜索文本框search_box = main_window.child_window(control_type='Edit', title='搜索')# 第四步进行操作点击控件search_box.click_input()

执行后就会自动点击微信左上角搜索文本框了(注意:由于PID是变化的,以上代码一定能执行成功,后面会详细介绍)。

接下来,我们按照上面四步逐步讲解。

1. 创建实例化对象

以微信为例,这里介绍下常用的两种获取实例化程序的方式:

启动 start()

用于还没有启动软件的情况。timeout为超时参数(可选),若软件启动所需的时间较长可选timeout,默认超时时间为5s。 上代码:

start(self, cmd_line, timeout=app_start_timeout)

先确定微信是关闭的,我们通过上面方法启动微信并获取对应的实例化对象,如下:

from pywinauto import Application# 启动微信进程(注意路径中特殊字符的转义,/和\)app = Application(backend="uia").start(r'"E:\Program Files (x86)\Tencent\WeChat\WeChat.exe"')print(app)

运行后将会自动启动微信。

连接 connect()

用于连接已经启动的程序。connect()方式有多种:

  • process
    :进程id(PID)
  • handle
    :应用程序的窗口句柄
  • path
    :进程的执行路径(GetModuleFileNameEx 模块会查找进程的每一个路径并与我们传入的路径去做比较)
  • 参数组合
    (传递给pywinauto.findwindows.find_elements()这个函数)
app = Application().connect(process=12580)app = Application().connect(handle=0x234f1b)app = Application().connect(path="c:\windows\system32\notepad.exe")app = Application().connect(title_re=".*Notepad", class_name="Notepad")

下面我们介绍下通过进程PID与窗口句柄两种链接已启动程序的方式:

PID在任务管理器-详细信息可以查看。如下图,WeChat.exe的PID就是18364。 上代码:

from pywinauto.application import Application# 通过PID连接已有微信进程wechat_app = Application(backend='uia').connect(process=18364)print(wechat_app)

在星球中也有提到运利用第三方库psutil根据进程名获取进程PID的文章,有兴趣可以去看看,这里就不做详细介绍了。

在前面游戏自动化中学习了如何获取窗口的句柄,所以我们本着偷懒的原则还可以通过pywin32模块根据窗口名获取窗口句柄,然后获取根据句柄来获得主程序,代码如下:

import win32guifrom pywinauto.application import Applicationhwnd = win32gui.FindWindow(None'微信')wechat_app = Application(backend='uia').connect(handle=hwnd)print(wechat_app)

注意:应用程序必须先准备就绪,才能使用connect()。当应用程序start()后没有超时和重连的机制,在pywinauto外启动启动应用程序,则需要睡眠或编程等待循环以等待应用程序完全启动。

实例对象app的常用方法

通过查看pywinauto的源码中application.py文件,可以看到app的所有属性方法,下面列举常用方法:

app.top_window()

返回应用程序当前顶部窗口,是WindowSpecification对象,可以继续使用对象的方法往下继续查找控件

如:app.top_window().child_window(title='搜索', control_type='Edit')

app.window(kwargs)

根据筛选条件,返回一个窗口,是WindowSpecification对象,可以继续适用对象的方法往下继续查找控件

微信主界面:app.window(class_name='WeChatMainWndForPC')

app.windows(kwargs)

根据筛选条件返回一个窗口列表,无条件默认全部,列表项为wrapped对象,可以使用wrapped对象的方法,注意不是WindowSpecification对象

[<uiawrapper.UIAWrapper - '微信', Dialog, -5995915281609806513>]

app.kill(soft=False)

强制关闭程序

app.cpu_usage()

返回CPU使用率百分比

app.wait_cpu_usage_lower(threshold=2.5, timeout=None, usage_interval=None)

等待进程CPU使用率百分比小于指定的阈值threshold

app.is64bit()

判断操作的进程是否是64-bit

简单演示下:

from pywinauto.application import Application# 通过PID连接已有微信进程wechat_app = Application(backend='uia').connect(process=18364)print(wechat_app.top_window())print(wechat_app.window())print(wechat_app.windows())print(wechat_app.cpu_usage())print(wechat_app.is64bit())

2. 选择窗口

pywinauto选择窗口有三种方式,获取到的窗口为 WindowSpecification对象。

以微信主界面窗口为例,先通过inspect工具查看微信的窗体信息:

按照上面的方法我们有三种方式来选取窗口,代码如下:

from pywinauto.application import Applicationimport win32gui# 根据应用程序窗口名获得句柄hwnd = win32gui.FindWindow(None'微信')# 通过句柄连接已有微信进程app = Application(backend='uia').connect(handle=hwnd)dlg = app.window(class_name='WeChatMainWndForPC')# dlg = app.微信# dlg = app['微信']dlg.restore()  # 将窗口恢复为正常大小,比如最小化的让他正常显示在桌面dlg.draw_outline(colour='red')  # 控件外围画框,便于查看,支持'red', 'green', 'blue'

前面我们一直是手动先将微信窗口放置到前台,上面代码中我们利用restore()方法就可以自动将窗口恢复到正常大小了,利用draw_outline可以将控件外围画框,非常便于调试。

窗口的常用方法

下面则是窗口平时常用的一些方法:

# 以下几个只支持窗口模式的控件dlg.close()  # 关闭界面dlg.minimize()  # 最小化界面dlg.maximize()  # 最大化界面dlg.restore()  # 将窗口恢复为正常大小,比如最小化的让他正常显示在桌面dlg.get_show_state()  # 正常0,最大化1,最小化2dlg.exists(timeout=None, retry_interval=None)  # 判断是否存在# timeout:等待时间,一般默认5s# retry_interval:timeout内重试时间dlg.wait(wait_for, timeout=None, retry_interval=None)  # 等待窗口处于特定状态dlg.wait_not(wait_for_not, timeout=None, retry_interval=None)  # 等待窗口不处于特定状态,即等待消失# wait_for/wait_for_not:# * 'exists' means that the window is a valid handle# * 'visible' means that the window is not hidden# * 'enabled' means that the window is not disabled

本章小结

这一章咱们打开了桌面自动化的新世界大门,来回顾一下都学了啥:

pywinauto是干啥的? 简单说就是个能帮你自动操作Windows桌面程序的Python库。鼠标点击、键盘输入、窗口操作、控件交互,它都能搞定。安装起来也简单,一条 pip install pywinauto 就完事。

backend怎么选? 这是初学者最容易懵的地方。pywinauto支持两种backend:win32和uia。win32是默认的,适合一些老的Windows程序(MFC、VB6等);uia更强大,能识别到更多控件,适合WinForms、WPF、Qt5等现代程序。如果不确定用哪个,就用inspect工具看看,哪种模式下能看到的控件更多就用哪种。

inspect工具咋用? 这是个查看控件信息的利器。打开后把左上角的模式切换到"UI Automation",然后鼠标点一下目标窗口,就能看到窗口里所有的控件树了。一层一层的,每个控件的类型、名称、位置都能看清楚。这个工具是写自动化脚本的好帮手,写代码前先用inspect摸清控件结构,写起来就顺了。

操作控件分几步? 四步走:第一步创建Application对象(用start启动程序或用connect连接已有程序);第二步选择窗口(用window方法);第三步定位控件(用child_window方法);第四步执行操作(click、type_keys等)。这四步是固定套路,记住就行。

start和connect啥区别? start是用来启动还没运行的程序的,connect是用来连接已经在运行的程序的。比如微信已经打开了,就用connect;如果微信没开,就用start。connect有好几种连接方式:通过PID、通过句柄、通过进程路径、通过窗口标题等,灵活得很。

窗口对象能干啥? 窗口对象有很多实用方法:close()关闭窗口、minimize()最小化、maximize()最大化、restore()恢复正常大小、exists()判断窗口是否存在、wait()等待窗口达到某种状态。这些方法在自动化流程控制中特别好用,比如等某个窗口加载完再继续下一步。

WindowSpecification对象是啥? 这是pywinauto里用来描述窗口或控件的对象。你可以把它理解成一个"查找条件",还没真正找到控件,只是告诉pywinauto你要找什么样的控件。只有当你调用具体方法(比如click、type_keys)的时候,pywinauto才会真正去查找并操作控件。

掌握了这些基础,后面就能用pywinauto来自动化各种Windows桌面程序了,比如自动操作微信、自动填表、自动测试软件等等。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 14:39:29 HTTP/2.0 GET : https://f.mffb.com.cn/a/510427.html
  2. 运行时间 : 0.958453s [ 吞吐率:1.04req/s ] 内存消耗:4,664.66kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=ce8e93ad3253cdddd14530fb36199725
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000984s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001386s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.009332s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.011062s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001757s ]
  6. SELECT * FROM `set` [ RunTime:0.026550s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001546s ]
  8. SELECT * FROM `article` WHERE `id` = 510427 LIMIT 1 [ RunTime:0.026816s ]
  9. UPDATE `article` SET `lasttime` = 1787294369 WHERE `id` = 510427 [ RunTime:0.019458s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000876s ]
  11. SELECT * FROM `article` WHERE `id` < 510427 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.010922s ]
  12. SELECT * FROM `article` WHERE `id` > 510427 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.053073s ]
  13. SELECT * FROM `article` WHERE `id` < 510427 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.148759s ]
  14. SELECT * FROM `article` WHERE `id` < 510427 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.318458s ]
  15. SELECT * FROM `article` WHERE `id` < 510427 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.123351s ]
0.962959s