Gridens - информационные технологии

Попытка использовать SystemParametersInfo для установки моих обоев, просто делает их черными

Как указано в заголовке, я пытаюсь использовать SystemParametersInfo для установки своих обоев, но это просто установка моих обоев на черный экран. Вот мой код:

#include <windows.h>
#include <iostream>

void setWall()
{
    LPWSTR path = L"D:\\Wallpaper.png";

    int result;
    result = SystemParametersInfo(
        SPI_SETDESKWALLPAPER,
        0,
        path,
        SPIF_UPDATEINFILE);

    std::cout<<result<<std::endl;

    if (result)
    {
        std::cout << "Wallpaper set";
    }
    else
    {
        std::cout << "Wallpaper not set";
        std::cout << "SPI returned" << result;
    }
}

int main()
{
    setWall();
    return 0;
}

При компиляции программы выдает следующее:

warning: ISO C++ forbids converting a string constant to 'LPWSTR {aka wchar_t*}' [-Wwrite-strings]

Спасибо

28.10.2017

  • Предупреждение компилятора можно исправить, изменив LPWSTR (неконстантный wchar_t*) на LPCWSTR (const wchar_t*). Назначение строковых литералов неконстантным указателям устарело, начиная с C++11. Но это не причина, по которой ваши обои становятся черными. Вы компилируете свой проект для ANSI или Unicode? Это имеет значение в том, какие строки ожидает SystemParametersInfo(). Если вы компилируете для ANSI, используйте вместо этого LPCSTR и отбросьте модификатор L. 28.10.2017
  • Звонок выглядит хорошо. Вы уверены, что у вас есть файл с именем D:\Wallpaper.png 28.10.2017
  • Связано: SystemParametersInfo возвращает 0 и наборы SystemParametersInfo полностью черные обои (используя SPI_SETDESKWALLPAPER) 28.10.2017
  • Вы определили UNICODE? Используйте SystemParametersInfoW, чтобы убедиться, что он соответствует параметру wchar_t*. 28.10.2017
  • @RemyLebeau Я использовал ваше исправление во второй отправленной вами ссылке, и это сработало, большое спасибо за все ответы. :) 28.10.2017
  • @LoganDavenport: и какое именно это будет исправление? Не стесняйтесь публиковать ответ на свой вопрос 28.10.2017

Новые материалы

Журналы Py № 2: Если, Элиф, Иначе?
У меня такое чувство, будто я давно ничего не писал, хотя прошло два дня с тех пор, как я опубликовал свою первую историю. В любом случае, сегодня произошло много всего, так что приступим...

Работа в Реакции
Я изучаю React в Bloc прямо сейчас. До сих пор я изо всех сил пытался понять темы. Тем не менее, я только что закончил проблему, над которой некоторое время размышлял, и хочу записать свой..

Нужен ли банкам искусственный интеллект, чтобы кардинально изменить свою работу?
Почему необходимо использовать искусственный интеллект в банковской сфере? Существенное использование многочисленных инноваций ИИ, таких как машинное обучение , глубокое обучение и..

Какую последнюю статью вы считаете стоящей поделиться?
Я люблю читать качественные статьи. Не стесняйтесь делиться своей работой.

Преобразование CoreML, позволяющее использовать Fast-Neural-Style-Transfer на iOS и MacOS.
Как использовать Fast-Neural-Style-Transfer на iOS Преобразованная модель: GitHub — john-rocky/CoreML-Models: Преобразованный зоопарк моделей CoreML...

ИИ в правоохранительных органах: мощный инструмент с двойной природой
Искусственный интеллект (ИИ) революционизирует правоохранительную деятельность, предлагая инновационные тактики расследования, повышая достоверность доказательств и оптимизируя процессы. Тем..

Autoencoder Average Distance  — классический способ, используемый внутри Microsoft для выявления сходства…
Среднее расстояние автоэнкодера (AAD) использует более простой подход для определения расстояния между двумя наборами данных. Нейронный автоэнкодер может преобразовать любой элемент данных в..