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

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

主要函数

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

实现

循环获取当前焦点所在窗口的标题,然后写入到日志文件中。最后设置开启自启动,隐藏命令行窗口。

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表示隐藏命令行窗口):

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

需要关闭结束进程即可

以上就是如何使用vb 监控电脑活动记录的详细内容,更多关于vb 监控电脑活动记录的资料请关注我们其它相关文章!

(0)

相关推荐

  • VBScript 监控并结束指定进程的代码

    运行效果图: 代码(monprocess.vbs): 复制代码 代码如下: On Error Resume Next strComputer = "."arrTargetProcs = Array("calc.exe", "notepad.exe", "other.exe")'数组里为要监视的进程名 Set SINK = WScript.CreateObject("WbemScripting.SWbemSink&qu

  • VBS监控CPU的使用率(如占用率一直维持在80%超过30秒则运行某程序)

    按照楼主的要求重新修改了下,代码如下: 复制代码 代码如下: '----------------------------------------On Error Resume Next dim iCpuUsePercentage'记录CPU使用率dim iSecond'记录使用率等于100所持续的时间dim objFileStream'txt文本读写流,用于记录日志dim objTextFileWriter'txt写对象dim objShell'Shell'对象,用于执行指定程序dim objF

  • 磁盘IO利用率监控VBS脚本(windows)

    核心代码 '程序名称:      btlwchk_DiskIO.vbs '版权信息:      Copyright (c)  2011 guangzhou bluetech technology Incorporated.All rights reserved '程序用途:      监测windows主机IO利用率 '创建日期:      2011-08-10 '作者信息:      zhangkai '运行环境:      vbs '处理参数 MonSubject="DiskIO"

  • VBScript 监控磁盘更改事件实现代码

    来自微软官方,写USB小偷脚本是最好不过的了 复制代码 代码如下: strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colMonitoredEvents = objWMIServi

  • vbs定期监控 值个班,定期瞄一下

    系统:Windows 7 引言 有些时候需要定期去执行一段程序,怎么办?这里提供一个方法,虽然有点绕,但效果还不错 时间控制部分使用vbs实现 思考:实验设计 目标:定期执行一个Python程序 vbs脚本作为时间控制部分,定期运行一个bat文件,bat文件再执行python文件 逻辑过程 代码 vbs部分 Dim wshDim current_dir Dim run_mode Dim bat_addrMsgBox "此脚本旨在定期运行python语句" Set wsh = Creat

  • 进程监控实现代码[vbs+bat]

    运行后会在%windir%\system32\目录下生成jk.vbs, 并且自动添加注册表启动项,另外在D:\会生成一个隐藏属性的JK.VBS, 3秒间隔监控进程,如果进程中有QQ.exe.iexplore.exe.client.exe.game.exe进程则会自动结束进程. 复制代码 代码如下: @echo off attrib -s -h -a -r d:\jk.bat 1>nul 2>nul if exist d:\jk.bat del d:\jk.bat /q copy %0 d:\j

  • 用VBS调用程序并对程序的运行情况进行监控的两个代码

    有同时要用一个CAE软件调用外部程序,但是,通过这个CAE软件调用外部程序以后,因为这个外部程序有参数,调用方法写在Bat文件里的,由CAE软件来调用这个Bat,所以,CAE软件没办法对调用的程序进行监控,调用的程序还在运行当中,准备工作还没完成,就到了下一流程,所以,造成流程出错,我写了两个VBS代码,通过它来调用就解决了这个问题!两个小程序分别是按不同的方式来监控的! 两个程序的调用方式不一样,一个是对系统进程进行监控,一个是对程序生成的文件特征进行监控! 第一个: '该程序用来配合SimC

  • 网络接口利用率监控VBS脚本代码(Windows)

    复制代码 代码如下: '程序名称: btlwchk_netinterface.vbs '程序用途: 监测windows主机网络接口利用率 '创建日期: 2011-09-1 '作者信息: zhangkai '运行环境: vbs '处理参数 MonSubject="NetInterface" Set Args=WScript.Arguments If (Args.Count<1) Then Wscript.Echo MonSubject & " -1:command

  • 如何使用vb 监控电脑活动记录

    最近看到了一个日文版的监控电脑活动记录的软件,又在win 32 APi中看到了GetForegroundWindow函数,于是决定动动小手用vb写个监控电脑活动记录的小程序. 主要函数 函数名 参数 返回值 GetForegroundWindow(void) 无 当前窗口的句柄 GetWindowText(HWND hWnd,LPTSTR lpString,Int nMaxCount) hWnd:窗口句柄 lpString:接收窗口标题文本的缓冲区的指针 nMaxCount:指定缓冲区中的最大字

  • Python实时监控网站浏览记录实现过程详解

    需求: (1) 获取你对象chrome前一天的浏览记录中的所有网址(url)和访问时间,并存在一个txt文件中 (2)将这个txt文件发送给指定的邮箱地址(你的邮箱) (3)建立例行任务,每天定时自动完成这些操作,你就可以通过邮件查看你对象每天看啥了 准备 macOS Sierra Python3.6 Chrome 发送邮件的qq邮箱地址 qq邮箱授权码 SMTP服务器地址 : smtp.qq.com 接受邮件的邮箱地址 执行: (1) 首先我们用DB Browser for SQLite来看下

  • 用Python监控你的朋友都在浏览哪些网站?

    一.需求 1.获取你对象chrome前一天的浏览记录中的所有网址(url)和访问时间,并存在一个txt文件中 2.将这个txt文件发送给指定的邮箱地址(你的邮箱) 3.建立例行任务,每天定时自动完成这些操作,你就可以通过邮件查看你对象每天看啥了 二.背景 1.mac下chrome的浏览记录在哪?怎么获取网址(url)和访问时间? 答:路径:/Users/用户名/Library/Application\ Support/Google/Chrome/Default/History History:是

  • 利用Python写个摸鱼监控进程

    目录 监控键盘 监控鼠标 记录监控日志 完整代码 总结 继打游戏.看视频等摸鱼行为被监控后,现在打工人离职的倾向也会被监控. 有网友爆料称知乎正在低调裁员,视频相关部门几乎要裁掉一半.而在知乎裁员的讨论区,有网友表示企业安装了行为感知系统,该系统可以提前获知员工跳槽念头. 而知乎在否认了裁员计划的同时,也声明从未安装使用过网上所说的行为感知系统,今后也不会启用类似软件工具. 因为此事,深信服被推上风口浪尖,舆论关注度越来越高. 一时间,“打工人太难了”“毫无隐私可言”的讨论层出不穷. 今天就带大

  • 用Python监控你的朋友都在浏览哪些网站?

    目录 一.需求 二.背景 三.requirements 四.代码 五.执行 六.问题 七.总结 八.展望 一.需求 1.获取你对象chrome前一天的浏览记录中的所有网址(url)和访问时间,并存在一个txt文件中 2.将这个txt文件发送给指定的邮箱地址(你的邮箱) 3.建立例行任务,每天定时自动完成这些操作,你就可以通过邮件查看你对象每天看啥了 二.背景 1.mac下chrome的浏览记录在哪?怎么获取网址(url)和访问时间? 答:路径:/Users/用户名/Library/Applica

  • oracle监控某表变动触发器例子(监控增,删,改)

    使用oracle触发器 实现对某个表的增改删的监控操作,并记录到另一个表中. 代码: 复制代码 代码如下: create or replace trigger test_trigger    before insert or update or delete on test_table    for each row  declare    v_id        varchar2(30);    v_bdlb      varchar2(1);    v_jgdm      VARCHAR2(

  • python百行代码自制电脑端网速悬浮窗的实现

    前言 看到某60的网速悬浮球有点心动,但是又不想装这个流氓软件,就自己用python加PyQt5自制了一个,实测还行,关键不占用电脑一点资源,已将软件打包,可自行下载使用. 预览 观看直播时实时网速. 文件结构 运行管理 开始运行时内存消耗18.3m,cpu,磁盘,网络不占用. 运行一天后内存稳定于6.4m,cpu,磁盘,网络不占用. 整体思路 使用psuti.net_io_counters 监控电脑网卡IO 将流量数据格式化,统计每次数据总和保存在本地<流量使用情况.txt>(这个是个缺陷,

  • Python脚本实现Zabbix多行日志监控过程解析

    通过使用zabbix 日志监控 我发现一个问题 例如oracle的日志有报错的情况 ,通常不会去手动清理 这样的话当第二次有日志写进来的时候 zabbix的机制是回去检查全部日志,这样的话之前已经告警过的错误日志,又会被检查到,这样就会出现重复告警,而且zabbix的日志监控只能读到匹配当前行关键字的数据,感觉不太灵活, 比如我想要匹配到的关键字之后再当前关键字的下N行再去匹配另一个关键字这个时候就比较麻烦,在这里给大家推荐一个有效,便捷解决的方式. 通过Python脚本实现日志监控 要求 1

  • python 自动监控最新邮件并读取的操作

    我就废话不多说了,大家还是直接看代码吧~ #zmail库:可以用几行代码帮我们收取一封邮件 import zmail #输入账号和密码 server=zmail.server('13163964546@qq.com','jie110341') #获取最新的一封邮件 mail=server.get_latest() #读取邮件 #zmail.show(mail) #读取邮件的部分内容 print(mail['subject']) ...... #读取附件 邮件 存放路径 如果有同名文件则覆盖 zm

  • Linux运维基础进程管理实时监控控制

    目录 1.后台运行作业 2.使用信号控制进程 基本进程管理信号 3.监控进程活动 IO负载 4.实时进程监控 top用于实现全屏动态显示系统信息 1.后台运行作业 1.sleep 999 & (运行作业) [root@localhost ~]# sleep 999 & [1] 3670 2.ps -ef|grep sleep(查看进程) [root@localhost ~]# ps -ef|grep sleep root 3670 3642 0 10:54 pts/1 00:00:00 s

随机推荐