Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> смена обоев, и тому подобное 
V
    Опции темы
nikitao
Дата 6.2.2006, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

Репутация: нет
Всего: 26



Мужики, подскажити WinAPI ф-ции для САБЖа(обои и заставки).Интересуют еще такие опции как "замастить","растянуть" ,"по центру".
smile

ЗЫ Зарание спасибо.


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
Fixin
Дата 6.2.2006, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



Код

SystemParametersInfo(SPI_SETDESKWALLPAPER, 
                                    0, 
                                    PChar('C:\SOMEPATH\SOME.BMP'), 
                                    SPIF_SENDWININICHANGE);

PM MAIL ICQ   Вверх
Helicopterr
Дата 6.2.2006, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 20.8.2005
Где: Stavropol

Репутация: нет
Всего: 3



Код

WCHAR DIRNAME[200];

GetCurrentDirectory( 200, DIRNAME ); //допустим обои в том же каталоге, что и программа
lstrcatW( DIRNAME, L"\\my.bmp" );  

SystemParametersInfo( SPI_SETDESKWALLPAPER, 0,  DIRNAME,  SPIF_UPDATEINIFILE );


Это будет растягивать.
Тип пути WCHAR может быть важен т.к. с некоторыми другими типами у меня обои устанавливались, но сбрасывались после первой перезагрузки Windows.

А кто-нибудь знает, как установить не bmp а, например, jpg...



--------------------
people can fly
PM MAIL   Вверх
forker
Дата 7.2.2006, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 27.9.2005
Где: Долгопрудный

Репутация: 1
Всего: 1



А jpg-шки винда перегоняет все равно в bmp и сохраняет в AppData\Microsoft\ по-моему.
Т.е. надо как-то вызывать виндовский конвертор, я пытался найти его как программку, но не нашел.
ТАК ЧТО, МНЕ ТОЖЕ ИНТЕРЕСЕН ЭЭТОТ ВОПРОС!!! smile

Это сообщение отредактировал(а) forker - 7.2.2006, 17:21
PM MAIL ICQ   Вверх
nikitao
Дата 10.2.2006, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

Репутация: нет
Всего: 26



Я че то туплю.У меня старые обои пропадают,а вот новые не грузятся.
Может я че то не так делаю smile . Я почти не работаю пока с WinAPI


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
Helicopterr
Дата 11.2.2006, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 20.8.2005
Где: Stavropol

Репутация: нет
Всего: 3



Покажи код.


--------------------
people can fly
PM MAIL   Вверх
Vendigo
Дата 20.2.2006, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 25.9.2005
Где: Челябинская обл. г. Миасс

Репутация: нет
Всего: нет



У меня тож не работает smile
Уж, все перепробовал...
Код

//---------------------------------------------------------------------------

#include <windows.h>
#pragma hdrstop
#include<Winuser.h>
#include <winbase.h>


//---------------------------------------------------------------------------

#pragma argsused
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    WCHAR DIRNAME[200];
    GetCurrentDirectory(200,DIRNAME);     //допустим обои в том же каталоге, что и программа
    lstrcatW( DIRNAME, L"\\temp.bmp" );

    SystemParametersInfo( SPI_SETDESKWALLPAPER, 0,  DIRNAME,  SPIF_UPDATEINIFILE );
    return 0;
}


На этот вариант ругается компилятор:
[C++ Ошибка] Unit1.cpp(15): E2034 Cannot convert 'wchar_t *' to 'char *'
[C++ Ошибка] Unit1.cpp(15): E2342 Type mismatch in parameter 'lpBuffer' (wanted 'char *', got 'wchar_t *')
Добавлено @ 22:43
Цитата(Helicopterr @ 6.2.2006, 23:42 Найти цитируемый пост)
А кто-нибудь знает, как установить не bmp а, например, jpg...

Может быть так:
Код

#include <JPEG.hpp>    //используется только в том случае,
                                     // когда используется формат jpeg



Это сообщение отредактировал(а) Vendigo - 20.2.2006, 22:44
PM MAIL   Вверх
Fixin
Дата 20.2.2006, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



Цитата(Vendigo @ 20.2.2006, 22:41 Найти цитируемый пост)
Может быть так:
Нет, это используется вместе с компонентами, испозльзующими jpeg-кодирование.
Цитата(Vendigo @ 20.2.2006, 22:41 Найти цитируемый пост)
На этот вариант ругается компилятор:
Код

char DIRNAME[MAX_PATH];
WCHAR NEW_DIRNAME[MAX_PATH];
GetCurrentDirectory(200, DIRNAME);
lstrcpy(NEW_DIRNAME, DIRNAME);
lstrcatW(NEW_DIRNAME, L"\\temp.bmp" );    
SystemParametersInfo( SPI_SETDESKWALLPAPER, 0,  NEW_DIRNAME,  SPIF_UPDATEINIFILE );

Добавлено @ 23:05
Модератор: Пожалуйста, один топик - один вопрос.
Надо было отдельно создавать


PM MAIL ICQ   Вверх
Vendigo
Дата 21.2.2006, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 25.9.2005
Где: Челябинская обл. г. Миасс

Репутация: нет
Всего: нет



Работаю в Builder 6 и все вышеописанные примеры не компилируются smile
Вот так работает smile


Код

#include <windows.h>
#include<Winuser.h>
#pragma hdrstop
#include <system.hpp>
#include<string.h>

//---------------------------------------------------------------------------

#pragma argsused

WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    char FName[100];
    strcpy(FName,"D:\\Документы\\S.bmp");        // #include<string.h>

                                                        // #include<Winuser.h>
    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, FName, SPIF_UPDATEINIFILE);
    return 0;
}

PM MAIL   Вверх
Helicopterr
Дата 22.2.2006, 02:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 20.8.2005
Где: Stavropol

Репутация: нет
Всего: 3



Vendigo
прошу прощения, я одну букву пропустил
Код

WCHAR DIRNAME[200];
GetCurrentDirectoryW ( 200, DIRNAME ); // ! Unicode
lstrcatW( DIRNAME, L"\\my.bmp" );  
SystemParametersInfo( SPI_SETDESKWALLPAPER, 0, DIRNAME, SPIF_UPDATEINIFILE );


Это сообщение отредактировал(а) Helicopterr - 22.2.2006, 02:25


--------------------
people can fly
PM MAIL   Вверх
nikitao
Дата 22.2.2006, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

Репутация: нет
Всего: 26



Цитата(Helicopterr @ 11.2.2006, 01:45 Найти цитируемый пост)
Покажи код.

Да код особо показывать нечего.
Создаю мфсину,кидаю кнопку и в событии нажатия ее прописываю,чтоб обои сменила.Остается только голубой экран,как-будто неверно адрес файла пишу smile


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
Fixin
Дата 22.2.2006, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



Кинь этот кусок по смене обоев и получению адреса
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.