首页 > 解决方案 > 文档和音乐文件夹 - > Windows Defender 勒索软件保护破坏了我的应用程序

问题描述

所以看起来 Windows 10 勒索软件破坏了我的应用程序(StationRipper)。这是一个 C++/MFC 应用程序,但看起来它会破坏任何正在执行 StationRipper 正在执行的应用程序。

我的高级问题:

我的应用程序需要在记录文件时写入文件(例如,mp3)。如果打开勒索软件保护,实际上是否有一个明智的地方可以这样做(比如音乐文件夹),或者我只是在某个地方创建了一个任意文件夹?我的应用程序正在幕后进行录制,因此用户无法为每个文件选择目录。

细节:

我的应用程序录制音乐文件。很久以前(比如,在 2002 年),它把它写到了用户的“Music”目录中。效果很好,但现在我看到了一个问题 - 我收到“系统找不到指定的文件”的错误代码。在我的应用程序的 CreatedDirectory 上(这真的很有趣,因为该错误代码未列为 CreateDirectory 要返回的错误),并且当我尝试将任何文件写入该目录时,如果我通过文件资源管理器手动创建它.

我终于尝试运行 mkdir,并在该目录中创建一个文件,在我的应用程序之外......同样的事情发生了。

我在 Windows Defender 中关闭了勒索软件保护......现在它可以在我的应用程序中使用。

看起来我必须使用文件选择器之类的东西来保存到该目录?正如我所说,这将不起作用,因为用户在开始录制后不参与其中。

我不能只告诉我的用户关闭勒索软件保护以使用我的应用程序,但我更愿意将音乐文件放在他们的音乐文件夹中......

有什么建议么?


评论中要求的其他信息:

        TCHAR szDocPath[MAX_PATH];
        szDocPath[0] = 0;
        if (::SHGetSpecialFolderPath(NULL, szDocPath, CSIDL_PERSONAL, FALSE))
        {
            _tcscat(szDocPath, "\\StationRipper");
            DWORD m_dwLastError = ::GetLastError();
            BOOL bResult = CreateDirectory(szDocPath, NULL);

            m_dwLastError = ::GetLastError();
        }

在上面运行带有勒索软件保护的结果为零。关闭它返回 1(并创建目录)。

标签: windowswinapiwindows-defender

解决方案


(注意:不支持SHGetSpecialFolderPath ,但它的现代等效项 SHGetKnownFolderPath有同样的问题)

您可以要求他们将您的应用程序列入白名单,而不是要求用户完全禁用勒索软件保护。请参阅本文的具有受控文件夹访问权限的名单应用部分(官方文档有些欠缺)。


推荐阅读