首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WinEvent日志和QFileSystemWatcher

WinEvent日志和QFileSystemWatcher
EN

Stack Overflow用户
提问于 2015-04-12 20:07:26
回答 2查看 170关注 0票数 0

我尝试将WinEvent Logs Windows7添加到QFileSystemWatcher.However,addPath()方法返回false值。

代码语言:javascript
复制
qDebug() << m_watcher->addPath("C:/Windows/System32/winevt/Logs/Application.evtx"); // false

在尝试添加winevt文件夹之后,我得到了相同的信息:

代码语言:javascript
复制
qDebug() << m_watcher->addPath("C:/Windows/System32/winevt"); // false

Winevt文件夹有只读属性,我无法修改它(更改后,应用,关闭和重新打开属性有旧的停留)。我在QFileSystemWatcher文档中读到:

手表故障的原因通常与系统有关,但可能包括不存在的资源、访问故障或总监视计数限制(如果平台有此限制)。

但我不知道如何找到失败的源头,也不知道如何解决问题。提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-13 17:48:55

在另一个论坛找到解决方案,在那里用户提供一个link

协同文件夹可以访问。

谢谢大家。

票数 0
EN

Stack Overflow用户

发布于 2015-04-12 22:08:27

我相信你在64位操作系统上有一个文件系统重定向。

有两种方法可以避免这种情况:

1)将应用程序构建为64位。2)通过调用Wow64DisableWow64FsRedirection显式禁用系统重定向。

如果您转到第二种解决方案,并且需要在Windows 32位上运行应用程序,我建议您像下面的示例那样动态调用WinAPI:

代码语言:javascript
复制
#include <qt_windows.h>

#if defined(_WIN32) //Check if program is compiled in 32 bits (64 bits does not have redirection)
    SYSTEM_INFO SystemInfo = {0};
    GetNativeSystemInfo(&SystemInfo);

    if (SystemInfo.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) //Check if processor is 64 bits
    {
        //Call the Wow64DisableWow64FsRedirection api dynamically
        typedef BOOL(STDAPICALLTYPE *tWow64DisableWow64FsRedirection)(PVOID);
        tWow64DisableWow64FsRedirection pWow64DisableWow64FsRedirection = (tWow64DisableWow64FsRedirection)QLibrary::resolve("Kernel32", "Wow64DisableWow64FsRedirection");
        if (pWow64DisableWow64FsRedirection)
            pWow64DisableWow64FsRedirection(NULL);
    }
#endif
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29594080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档