以编程方式更改win32中的登录壁纸,缺少什么?

时间:2015-06-03 09:13:16

标签: windows winapi windows-runtime c++-cx

我正在尝试从win32应用程序更改Windows 8.1中的登录壁纸,似乎我错过了一些步骤,因为在“锁定屏幕设置”中图像显示为活动状态,但是当我锁定时pc图像不是我使用的图像。

有人可以解释一下我缺少的事情吗?

代码如下,我正在使用CxxWinRTTemplate来执行此操作:

#include <iostream>
#include <ppltasks.h>

using namespace std;
using namespace Concurrency;
using namespace Platform;
using namespace Windows::Storage;
using namespace Windows::Storage::Streams;
using namespace Windows::Storage::Pickers;
using namespace Windows::System::UserProfile;
using namespace Windows::UI::Xaml::Media::Imaging;

int main(Platform::Array<Platform::String^>^ args) {

    if( args->Length != 2 ) {
        Platform::Details::Console::WriteLine(L"Invalid arguments.");
    } else {
        create_task(KnownFolders::PicturesLibrary->GetFileAsync(args[1])).then([](task<StorageFile^> getFileTask)
        {
            try {
                Windows::Storage::StorageFile^ file = getFileTask.get();
                create_task(LockScreen::SetImageFileAsync(file)).then([file](task<void> result)
                {
                    try {
                        // Use result.get() to trigger exception if invalid image is chosen
                        result.get();
                    } catch( Exception^ e ) {
                        Platform::Details::Console::WriteLine(e->Message);
                    }
                }).wait();
            } catch( Exception^ e ) {
                Platform::Details::Console::WriteLine(e->Message);
            }
        }).wait();
    }return 0;
}

图像存在,并且是.jpg并且具有与主桌面相同的大小(并且图像大小也小于250kb,因为在以前的Windows版本中这是必需的,这里我不知道...... )

由于

0 个答案:

没有答案