Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: как сделать обновление экрана Добавлено: 04.04.05 19:59  

Автор вопроса:  999 | Web-сайт: wolf002.narod.ru
Вопрос 1. Как сделать обновление экрана
Такая ситуация меняю я параметры в реестре с показывать скрытые файлы на не показывать, но изменения видны только приследующем заходе в папку, а это не так как в проводнике, там мерцает экран, после конечно, нажатия кнопки подвердить измения и сразу этих значков не видно. Нужно как то сделать так же.

Вопрос 2. Совсем простой но чето ни как не могу найти объяснений.
Как с помощью FSO устанавливать атрибуты файлов.

Жду Ваших ответов с примерами.

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 vhash



Вопросов: 7
Ответов: 14
 Профиль | | #1 Добавлено: 09.04.05 19:36
Вопрос 1
Наверняка есть такое DDE-сообщение.
Только какое не знаю...
Или SendKeys для F5 когда Explorer активен (обновить)
Вопрос 2
Зачем в FSO?
Попробуй SetAttr

Ответить

Номер ответа: 2
Автор ответа:
 999



Вопросов: 13
Ответов: 26
 Web-сайт: wolf002.narod.ru
 Профиль | | #2
Добавлено: 11.04.05 01:38
что б всем стало понятно зачем я это делаю и спрашиваю выкладываю прогу
http://wolf002.narod.ru/desktop.exe
 и исходник
http://wolf002.narod.ru/desktop.rar
вообщем прога предназначена для того что б скрывать значки с вашего рабочего стола, она их не удаляет а просто назначает свойства скрыться
как она работает
в начале мы получаем путь к рабочему столу
затем собираем све файлы на раб столе в один массив, и идем по массиву с задержкой, что б значок исчезал и появлялся через не которое время. Так же программа смотрит на значения в реестре которые отвечают за показывать скрывать скрытые файлы и если стоит показывать то ставит значения скрыть. Но если запустить прогу с раб стола то значения реестра меняются, а вот значки не исчезают как надо, они просто бледнеют. Хотелось бы это исправить. И еще почему она жрет так много ресурсов в рабочем рижиме у меня она жрет 80-90% процессора. А зачем я спрашивал про FSO так это за тем что подумал, мож при его использование процессор будет не так загружен.
Вообщем у кого есть желание протестируйте

Ответить

Номер ответа: 3
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #3 Добавлено: 11.04.05 02:36
Может это поможет обновить:
SendNotifyMessage HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0

Можно ещё по-другому сделать: убить explorer'а и запустить его снова :)

Ответить

Номер ответа: 4
Автор ответа:
 999



Вопросов: 13
Ответов: 26
 Web-сайт: wolf002.narod.ru
 Профиль | | #4
Добавлено: 11.04.05 23:07
я так почитал по интернету понял, что это функция посылает сообщение верхним уровням окон, что типа были введены какие-то изменения в системе и надо переобновить данные, так же я понял, что функции типа boolean
но вот как ею пользоваться не где не нащел, если просто ее написать, так как вы мне написали в том месте кода,где я изменяю реестр, то пишет ошибку, вероятно ее нужно где то объявить
если можно напишите как ею пользоватся.
Желательно код
SendNotifyMessage HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0

Ответить

Номер ответа: 5
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #5 Добавлено: 12.04.05 00:16
Private Declare Function SendNotifyMessage Lib "user32.dll" Alias "SendNotifyMessageA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Это объявление, а как вызывать уже написано.

Ответить

Номер ответа: 6
Автор ответа:
 999



Вопросов: 13
Ответов: 26
 Web-сайт: wolf002.narod.ru
 Профиль | | #6
Добавлено: 12.04.05 11:38
Через SendNotifyMessage не удалось, т.е вставка
SendNotifyMessage HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0 после того как я меняю значения реестра ни к чему не привела.
А не подскажете как сделать это через SendMessage. Может в параметре lParam нужно указать раздел реестра в котором я делаю изменения.

Система посылает сообщение WM _ SETTINGCHANGE всем окнам верхнего уровня, когда функция SystemParametersInfo изменяет установки на системном уровне. Система посылает это сообщение только тогда, если вызывающая функция SystemParametersInfo устанавливает флажок SPIF_SENDCHANGE. Прикладная программа может посылать WM _ SETTINGCHANGE всем окнам верхнего уровня, когда она делает изменения для параметров системы. Например, Вы можете посылать это сообщение после обращения к функциям WriteProfileString, WriteProfileSection или SetLocaleInfo, или после создания изменений для параметров системы в системном реестре.Сообщение WM _ SETTINGCHANGE - то же самое, что и старое сообщение WM_WININICHANGE.

Синтаксис

 
  WM _ SETTINGCHANGE
wParam = wFlag; // флажок параметров на системном уровне
lParam = (LPARAM) (LPCTSTR) pszSection; // наименование раздела или реестра

Параметры

wFlag
Значение wParam. Когда система посылает сообщению в результате обращения к System-ParametersInfo, этот параметр - флажок, который указывает параметр системы, который был изменен. О списке значений, см. функцию SystemParametersInfo. Когда прикладная программа посылает со-общение, этот параметр должен быть ПУСТО (NULL).
pszMetrics
Значение lParam. Указатель на строку, которая указывает область, содержащую параметр системы который был изменен. Например, эта строка может быть имя ключа реестра или имя раздела в файле WIN.INI. Этот параметр не особенно полезен в определении, какой изменился параметр системы. Например, когда строка - имя системного реестра, она обычно указывает только вершину в системном реестре, а не весь путь. Кроме того, некоторые прикладные программы посылают это сообщение с установкой параметра lParam в ПУСТО (NULL). Вообще, когда Вы принимаете это сообщение, Вы должны проверять и перезагружать любые настройки параметров системы, которые используются вашей прикладной программой.


Возвращаемые значения
Если вы обрабатываете это сообщение, возвращаемое значение - ноль.

Замечания
Чтобы послать сообщение WM _ SETTINGCHANGE всем окнам верхнего уровня, используйте функцию SendMessage с параметром hwnd установленным в HWND _ BROADCAST .

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам