internet使用监控工具
internet usage monitoring tool in C++
我被要求写一个c++程序,它在后台运行,并记录访问过的网站或从计算机上传/下载到互联网的文件。将来,它需要扩展,以便该程序可以跟踪我办公室局域网内任何一台计算机的互联网使用情况。
该程序将在各种Windows操作系统上运行,从Windows 2000到Windows 7。
有谁能帮我一下吗?您需要编写一个数据包嗅探器。如果您想要编写一个好的数据包嗅探器,这是一个非常实用的项目。在网上搜索一下。学习C/c++套接字库入门。下面是一些网站。在这里,
嗯…在公司的网络代理服务器上执行这个功能不是更容易吗?他们中的大多数甚至有插件来执行这个确切的功能,所以实际上不需要编写任何代码。
您可以使用以下代码,其优点是它还可以捕获私人浏览。
CoInitialize(NULL);
LHook = SetWinEventHook(EVENT_OBJECT_FOCUS, EVENT_OBJECT_VALUECHANGE, 0, RT_Browsing_WinEventProc, 0, 0, WINEVENT_OUTOFCONTEXT | WINEVENT_SKIPOWNPROCESS);
则回调函数为:
void CALLBACK RT_Browsing_WinEventProc(HWINEVENTHOOK hWinEventHook, DWORD event, HWND hwnd, LONG idObject, LONG idChild, DWORD dwEventThread, DWORD dwmsEventTime)
{
IAccessible* pAcc = NULL;
VARIANT varChild;
HRESULT hr = AccessibleObjectFromEvent(hwnd, idObject, idChild, &pAcc, &varChild);
if ((hr == S_OK) && (pAcc != NULL))
{
BSTR bstrName, bstrValue;
pAcc->get_accValue(varChild, &bstrValue);
pAcc->get_accName(varChild, &bstrName);
char className[50];
GetClassNameA(hwnd, className, 50);
if (bstrName && bstrValue)
{
if ((strcmp(className, "Internet Explorer_Server") == 0))
{
if (IsValidURL(NULL, bstrValue, NULL) == S_OK)
{
if (bstrValue != E_LastURL)
{
// bstrValue will hold the new URL (Internet Explorer)
E_LastURL = bstrValue;
}
}
}
if ((strcmp(className, "Chrome_WidgetWin_1") == 0) && (wcscmp(bstrName, L"Address and search bar") == 0))
{
if (IsValidURL(NULL, bstrValue, NULL) == S_OK)
{
if (bstrValue != C_LastURL && bstrValue != L"")
{
// bstrValue will hold the new URL (Chrome)
C_LastURL = bstrValue;
}
}
}
}
pAcc->Release();
}
}
相关文章:
- 如何监控QThread
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- 在clang++预处理器中确定gcc工具链版本
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 参数化自定义CMake工具链
- 如何在QT中的自定义视频小工具t上绘制矩形
- 使用 C++ 和 i2c 工具从虚拟 i2c 写入和读取
- 用于C++的静态二进制检测或二进制重写工具和框架
- 在OSX上使用CMake将Adobe的XMP工具包构建为共享库的最简单方法是什么?
- AWS IoT 开发工具包:通过 TCP 端口 443 使用 MQTT
- 在官方张量流 resnet50 模型上运行 tflite 精度工具
- Q没有管理权限的 exe 无法启动维护工具
- C++合并排序可视化工具
- 为Bazel工具链指定sysroot
- 在自动工具中包含用于不同bin_Programs的不同库
- 如何使用MSVC 2019创建和使用Qt 5.14.0自定义小工具插件
- Eclipse CDT clang 工具链 - 无法从链接器选项中删除 stdlibc++,但可以添加 libc++,E
- 使用不同的工具时,Eccodes 会产生不同的结果
- Clang 工具,用于提取给定 lambda 类型的 lambda 主体
- internet使用监控工具