咔叽游戏

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 371|回复: 0

[vbs] 如何使用vb 监控电脑活动记录

[复制链接]
  • TA的每日心情
    无聊
    2019-4-21 13:02
  • 签到天数: 3 天

    [LV.2]圆转纯熟

    发表于 2021-12-30 19:22:48 | 显示全部楼层 |阅读模式
    目录

      主要函数实现开启自启动运行

    最近看到了一个日文版的监控电脑活动记录的软件,又在win 32 APi中看到了GetForegroundWindow函数,于是决定动动小手用vb写个监控电脑活动记录的小程序。

    主要函数

    函数名参数返回值
    GetForegroundWindow(void)当前窗口的句柄
    GetWindowText(HWND hWnd,LPTSTR lpString,Int nMaxCount)hWnd:窗口句柄
          lpString:接收窗口标题文本的缓冲区的指针
          nMaxCount:指定缓冲区中的最大字符数
    如果成功则返回标题字符串的字符个数。如果窗口无标题栏或文本,或标题栏为空,或窗口或控制的句柄无效,则返回值为零。


    实现


    循环获取当前焦点所在窗口的标题,然后写入到日志文件中。最后设置开启自启动,隐藏命令行窗口。
    1. Imports System
    2. Imports System.io
    3. Module Module1
    4. private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
    5. 'Win32 Api
    6. Private Declare Function GetForegroundWindow Lib "user32" () As Long
    7. Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    8. Sub Main()
    9.   Dim bt As Boolean = True
    10.          ' 保存标题文本
    11.   Dim stext As String
    12.          ' 保存上一个窗口句柄
    13.          Dim hwnd As Long
    14.          ' 保存当前窗口句柄
    15.          Dim curHwnd As Long
    16.          ' 书写流写入日志文件
    17.          Dim sw As StreamWriter
    18.          ' 日志文件保存路径
    19.          Dim path As String = "c:\log.txt"
    20.          ' 如果存在日志文件则跳过,否则创建一个日志文件
    21.          If Not File.Exists(path) Then
    22.                  File.Create(path)
    23.          End If
    24.          sleep(3000)
    25.          ' 这里是个死循环
    26.          While bt
    27.           stext = Space(255)
    28.                  ' 获取当前窗口句柄
    29.                  hwnd = GetForegroundWindow
    30.                  ' 如果当前是新窗口则写入新窗口标题
    31.                  If hwnd <> curHwnd Then
    32.                   curHwnd = hwnd
    33.                                 ' 获取窗口标题
    34.                                 GetWindowText(hwnd,stext,255)
    35.                                 sw = System.IO.File.AppendText(path)
    36.                                 ' 写入新窗口标题,格式 yyyy年mm月dd日 hh:hh:ss + 标题
    37.                                 Using sw
    38.                                         sw.WriteLine(String.Format("{0:F}", DateTime.Now) +" "+ stext)
    39.                                         sw.Flush()
    40.                                 End Using
    41.                  End If
    42.    sleep(2000)
    43.   End While
    44. End Sub
    45. End Module
    复制代码
    开启自启动


    新建一个listener.vbs文件(其中C:\listener.exe是vb编译后的文件路径,Run参数0表示隐藏命令行窗口):
    1. Dim ws
    2. set ws = WScript.createObject("WScript.shell")
    3. ws.Run "C:\listener.exe", 0, TRUE
    复制代码
    1. 运行 -> shell:startup
    如何使用vb 监控电脑活动记录-1.jpg

    2. 开始菜单 -> 程序 -> 启动
    如何使用vb 监控电脑活动记录-2.jpg

    3. 运行 -> gpedit.msc
    如何使用vb 监控电脑活动记录-3.jpg

    4. 启动 -> 开机中添加listener.vbs脚本
    如何使用vb 监控电脑活动记录-4.jpg


    运行


    重启电脑后我们可以再任务管理器中看到运行的脚本
    如何使用vb 监控电脑活动记录-5.jpg

    然后查看日志文件C:\log.txt
    如何使用vb 监控电脑活动记录-6.jpg

    需要关闭结束进程即可
    以上就是如何使用vb 监控电脑活动记录的详细内容,更多关于vb 监控电脑活动记录的资料请关注咔叽论坛其它相关文章!

    原文地址:https://www.jb51.net/article/207792.htm

    QQ|免责声明|小黑屋|手机版|Archiver|咔叽游戏

    GMT+8, 2024-3-29 16:56

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表