最近看到了一个日文版的监控电脑活动记录的软件,又在win 32 APi中看到了GetForegroundWindow函数,于是决定动动小手用vbs写个监控电脑活动记录的小程序。
主要函数
函数名 | 参数 | 返回值 |
---|---|---|
GetForegroundWindow(void) | 无 | 当前窗口的句柄 |
GetWindowText(HWND hWnd,LPTSTR lpString,Int nMaxCount) |
hWnd:窗口句柄 lpString:接收窗口标题文本的缓冲区的指针 nMaxCount:指定缓冲区中的最大字符数 |
如果成功则返回标题字符串的字符个数。如果窗口无标题栏或文本,或标题栏为空,或窗口或控制的句柄无效,则返回值为零。 |
实现
循环获取当前焦点所在窗口的标题,然后写入到日志文件中。最后设置开启自启动,隐藏命令行窗口。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
Imports System Imports System.io Module Module1 private Declare Sub Sleep Lib "kernel32" Alias "Sleep" ( ByVal dwMilliseconds As Long ) 'Win32 Api Private Declare Function GetForegroundWindow Lib "user32" () As Long Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" ( ByVal hwnd As Long , ByVal lpString As String , ByVal cch As Long ) As Long Sub Main() Dim bt As Boolean = True ' 保存标题文本 Dim stext As String ' 保存上一个窗口句柄 Dim hwnd As Long ' 保存当前窗口句柄 Dim curHwnd As Long ' 书写流写入日志文件 Dim sw As StreamWriter ' 日志文件保存路径 Dim path As String = "c:\log.txt" ' 如果存在日志文件则跳过,否则创建一个日志文件 If Not File.Exists(path) Then File.Create(path) End If sleep(3000) ' 这里是个死循环 While bt stext = Space(255) ' 获取当前窗口句柄 hwnd = GetForegroundWindow ' 如果当前是新窗口则写入新窗口标题 If hwnd <> curHwnd Then curHwnd = hwnd ' 获取窗口标题 GetWindowText(hwnd,stext,255) sw = System.IO.File.AppendText(path) ' 写入新窗口标题,格式 yyyy年mm月dd日 hh:hh:ss + 标题 Using sw sw.WriteLine( String .Format( "{0:F}" , DateTime.Now) + " " + stext) sw.Flush() End Using End If sleep(2000) End While End Sub End Module |
开启自启动
新建一个listener.vbs文件(其中C:\listener.exe是vb编译后的文件路径,Run参数0表示隐藏命令行窗口):
1
2
3
|
Dim ws set ws = WScript.createObject( "WScript.shell" ) ws.Run "C:\listener.exe" , 0, TRUE |
1. 运行 -> shell:startup
2. 开始菜单 -> 程序 -> 启动
3. 运行 -> gpedit.msc
4. 启动 -> 开机中添加listener.vbs脚本
运行
重启电脑后我们可以再任务管理器中看到运行的脚本
然后查看日志文件C:\log.txt
需要关闭结束进程即可
以上就是如何使用vbs 监控电脑活动记录的详细内容,更多关于vbs 监控电脑活动记录的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/chenjy1225/p/13255953.html