Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как обновить рабочий стол??? ЛЮДИ ПОМОГИТЕ!

2.3K
27 октября 2002 года
Серёга
7 / / 27.10.2002
ЛЮДИ ПОМОГИТЕ!

Как обновить рабочий стол програмно???
Эта тема уже обсуждалась, но у меня так и не получается написать.

Я пишу просто строку:
WinExec("rundll32 user,repaintscreen", SW_HIDE);
Всё компилируется....
Но при выполнении функции выдаёт ошибку, что мол ошибка при загрузке user'а и что не может найти Модуль.
Что делать? ПОМОГИТЕ!!!!
250
28 октября 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by Серёга
ЛЮДИ ПОМОГИТЕ!

Как обновить рабочий стол програмно???
Эта тема уже обсуждалась, но у меня так и не получается написать.

Я пишу просто строку:
WinExec("rundll32 user,repaintscreen", SW_HIDE);
Всё компилируется....
Но при выполнении функции выдаёт ошибку, что мол ошибка при загрузке user'а и что не может найти Модуль.
Что делать? ПОМОГИТЕ!!!!


Это должно быть как то так: ShellExecute(Application->Handle,"open","D:\WinXP\Rundll32.exe",
"rundll32 user,repaintscreen", "D:\WinXP",SW_SHOWNORMAL);

2.3K
28 октября 2002 года
Серёга
7 / / 27.10.2002
Цитата:
Originally posted by Joker

Это должно быть как то так: ShellExecute(Application->Handle,"open","D:\WinXP\Rundll32.exe",
"rundll32 user,repaintscreen", "D:\WinXP",SW_SHOWNORMAL);



Здравствуйте!
Попробовал, как вы сказали. Компилирует, ошибок не выдаёт. Но к сожалению не работает. Программа выполняется, но никаких реакций на рабочем столе...
Подскажите, что делать?
Заранее благодарен

250
28 октября 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by Серёга


Здравствуйте!
Попробовал, как вы сказали. Компилирует, ошибок не выдаёт. Но к сожалению не работает. Программа выполняется, но никаких реакций на рабочем столе...
Подскажите, что делать?
Заранее благодарен



А какой у тя виндовс..??

250
28 октября 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by Joker


А какой у тя виндовс..??



А вообще возьми утилиту Spy.exe (мелко мягких, ну или какую еще), и поисследуй по эксперементируй с рабочем столом..

2.3K
28 октября 2002 года
Серёга
7 / / 27.10.2002
Цитата:
Originally posted by Joker


А вообще возьми утилиту Spy.exe (мелко мягких, ну или какую еще), и поисследуй по эксперементируй с рабочем столом..




У меня XP

476
28 октября 2002 года
man2002ua
218 / / 16.10.2002
Мда, зачем такие сложности с шеллекзекуте? Вам что - скучно??
Не мучайся:
RedrawWindow (NULL,0,0,0x181);
2.3K
28 октября 2002 года
Серёга
7 / / 27.10.2002
Цитата:
Originally posted by man2002ua
Мда, зачем такие сложности с шеллекзекуте? Вам что - скучно??
Не мучайся:
RedrawWindow (NULL,0,0,0x181);



Попробовал RedrawWindow (NULL,0,0,0x181);
При выполнении вроде-бы чуть-чуть рабочий стол мигает, как при обновлении, но к сожалению не обновляется...
Подскажи, в чём тут проблема???

476
28 октября 2002 года
man2002ua
218 / / 16.10.2002
Цитата:
Originally posted by Серёга


Попробовал RedrawWindow (NULL,0,0,0x181);
При выполнении вроде-бы чуть-чуть рабочий стол мигает, как при обновлении, но к сожалению не обновляется...
Подскажи, в чём тут проблема???



Попробуй другую комбинацию флагов, не 0х181, а
0x284
Вообще посмотри на флаги, ф-и, если не получится с этим

2.3K
30 октября 2002 года
Серёга
7 / / 27.10.2002
Цитата:
Originally posted by man2002ua


Попробуй другую комбинацию флагов, не 0х181, а
0x284
Вообще посмотри на флаги, ф-и, если не получится с этим


Не знаю, не получается...
Может ещё какой-то способ есть?

476
30 октября 2002 года
man2002ua
218 / / 16.10.2002
Цитата:
Originally posted by Серёга

Не знаю, не получается...
Может ещё какой-то способ есть?



А как именно ты загаживаешь раб. стол?

2.3K
31 октября 2002 года
Sergant_DMS
8 / / 28.10.2002
Цитата:
Originally posted by Серёга

Не знаю, не получается...
Может ещё какой-то способ есть?



Есть и другой способ, я им пользуюсь с недавних пор, тоже долго морочился пока нашёл

InvalidateRect(NULL,NULL,True);

Заставляет перерисоваться все окна, в том числе и рабочий стол.

2.3K
01 ноября 2002 года
Серёга
7 / / 27.10.2002
Цитата:
Originally posted by Sergant_DMS


Есть и другой способ, я им пользуюсь с недавних пор, тоже долго морочился пока нашёл

InvalidateRect(NULL,NULL,True);

Заставляет перерисоваться все окна, в том числе и рабочий стол.



Слушай, и InvalidateRect(NULL,NULL,True); также не работает... Тоже, вроде бы всё мигает, но обои на рабочем столе не меняются :-(
Не знаю, что и делать. Я просто программой в регистре меняю Wallpaper каждый день. Но при загрузке прога срабатывает позже чем виндовс загружает обои с регистра... И картинка появляется старая. помогает только F5 для того, что бы обновить Desktop. Может кто ещё знает как это программно написать или почему все это не помогает???
С уважением Сергей.

442
01 ноября 2002 года
HexoGenus
121 / / 20.03.2000
Цитата:
Originally posted by Серёга


Слушай, и InvalidateRect(NULL,NULL,True); также не работает... Тоже, вроде бы всё мигает, но обои на рабочем столе не меняются :-(
Не знаю, что и делать. Я просто программой в регистре меняю Wallpaper каждый день. Но при загрузке прога срабатывает позже чем виндовс загружает обои с регистра... И картинка появляется старая. помогает только F5 для того, что бы обновить Desktop. Может кто ещё знает как это программно написать или почему все это не помогает???
С уважением Сергей.



Мог бы сразу сказать что тебе обои нужно динамически поменять ...
Для этого обновление и не нужно...
SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, "C:\\Windows\\лес.bmp", (SPIF_SENDWININICHANGE + SPIF_UPDATEINIFILE));
Пользуйся вот такой командой и в реестре поменяется и на экране...
:D

2.3K
05 ноября 2002 года
Серёга
7 / / 27.10.2002
Цитата:
Originally posted by HexoGenus


Мог бы сразу сказать что тебе обои нужно динамически поменять ...
Для этого обновление и не нужно...
SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, "C:\\Windows\\лес.bmp", (SPIF_SENDWININICHANGE + SPIF_UPDATEINIFILE));
Пользуйся вот такой командой и в реестре поменяется и на экране...
:D

О! Теперь всё работает! Спасибо тебе большое!!!:D

15K
23 ноября 2005 года
Storaged
2 / / 23.11.2005
Цитата:
Originally posted by HexoGenus
Мог бы сразу сказать что тебе обои нужно динамически поменять ...
Для этого обновление и не нужно...
SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, "C:\\Windows\\лес.bmp", (SPIF_SENDWININICHANGE + SPIF_UPDATEINIFILE));
Пользуйся вот такой командой и в реестре поменяется и на экране...
:D



Ребят, подскажите чайнику, куда эту строку надо вводить?

Заранее благодарю.
У самого такая трабла...

1
24 ноября 2005 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by Storaged
Ребят, подскажите чайнику, куда эту строку надо вводить?

Заранее благодарю.
У самого такая трабла...


Как на счет - вопрос нормально сформулировать?
На дату посмотреть?

15K
24 ноября 2005 года
Storaged
2 / / 23.11.2005
Цитата:
Originally posted by kot_
Как на счет - вопрос нормально сформулировать?
На дату посмотреть?



Что делать с этим:

SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, "C:\\Windows\\лес.bmp", (SPIF_SENDWININICHANGE + SPIF_UPDATEINIFILE)); ?
Куда вводить эту командную строку?
В Start>Run?

362
24 ноября 2005 года
_kolyan
339 / / 03.12.2002
Цитата:
Originally posted by Storaged
Что делать с этим:

SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, "C:\\Windows\\лес.bmp", (SPIF_SENDWININICHANGE + SPIF_UPDATEINIFILE)); ?
Куда вводить эту командную строку?
В Start>Run?



Кто здесь? :o

Вообще-то это строка программного кода, и вводить ее надо в какой-нибудь редактор (например в билдеровский - см.название форума), а потом еще компилировать, а потом еще полученный файл запускать (если файл получится конечно). Короче, тебе наверное проще мышкой на столе правой кнопкой щелкнуть и там обои поменять :D

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог