Пишем программу на VB для автоматической смены обоев Windows

Обсуждение статей, опубликованных на сайте.
gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Пишем программу на VB для автоматической смены обоев Windows

Сообщение gaidar » 09.08.2005 (Вт) 16:45

Валерий Шмелев
Пишем программу на VB для автоматической смены обоев Windows


http://www.vbstreets.ru/VB/Articles/66189.aspx
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 09.08.2005 (Вт) 21:04

для ОС Windows 2000 и Windows XP нет необходимости с программами на VB распространять огромную динамическую библиотеку – все вызовы обрабатываются самой операционной системой (ОС).


Упал и не встал.

Отсюда следуют два вывода:
1. динамические библиотеки не обрабатываются операционкой.
2. Библиотеки Васика оказывается давно встроены в ядро :)
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.08.2005 (Ср) 8:31

Private Sub Form_Load()

rundate = Date 'Получить ДАТУ на компьютере

If Mid(rundate, 1, 2) = "30" Then 'Т.е. записывать выполнять каждое 30-е число каждого месяца
ChangeWallPaper "c:\oflameron-1024.bmp", "Center" 'Разместить картинку по центру экрана
End If

End 'Выйти из программы

End Sub


Код ужасен.
Особенно он плох тем, что даётся образцом начинающим программистам.

Если форма не нужна, нужно использовать Sub Main, а вовсе не Form_load с последующим End.
Никто не сказал, что в текущей региональной настройке пользователя автоматическое преобразование даты в строку будет выполнено так, что первые два символа будут изображать день месяца. Есть функция Day.
Да и в феврале эта программа явно не сработает. Придётся ждать марта.
Ну, про то, что функция Mid не строковая, а переменные не объявлены, я молчу...


Код создания bat-файла заставил меня задуматься. Такого я не видел никогда...
Но помимо того, что я такого никогда не видел - в чём суть этого bat'а? Почему нельзя его действия выполнить из кода?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

nappel
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 14.10.2004 (Чт) 11:55
Откуда: Moscow

Пишем программу на VB для автоматической смены обоев Windows

Сообщение nappel » 25.08.2005 (Чт) 12:41

>>Код ужасен

В любом коде (реальном) есть ужасы (особенно с точки зрения программиста на ассемблере). Хотя Вы правы "нужно использовать Sub Main" - в инсталлируемом модуле, разумеется.

>>Да и в феврале эта программа явно не сработает. Придётся ждать марта

Не подумайте чего - программа может работать и в другие дни. А то, если бы я написал = "12", можно было бы подумать, что в другие дни она не работает? В принципе, кому-то может и так понадобится :-))

>>Код создания bat-файла заставил меня задуматься. Такого я не видел никогда... в чём суть этого bat'а?...

Можно и из кода. Я и не утверждаю, что нельзя. Можно всю программу сделать как скрипт, можно сделать комбинацию Java и VB скриптов и т.д. Я делал и из кода и на Delphi и на C++. Суть вовсе не в том, как конкретно здесь написан код.

Во-первых, здесь приведен работающий код.
Во-вторых, Вы уже его усовершенствовали. Вот, что и требовалось ...

>>Почему нельзя его действия выполнить из кода?

Представляете, тогда кто-нибудь написал бы - А почему это нельзя попробовать сделать через командный файл? :-))

Шучу, шучу ...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 25.08.2005 (Чт) 15:38

nappel, пока GSerg-а нет, я бы ответил так.
Когда ты пишешь для себя - хоть через объектную модель Ворда файлы переименовывай. Это твоё лично дело.
Когда ты пишешь для публики - мало, чтобы код работал. Надо, чтобы он ещё и был понятным. Потому что этот код будут не запускать, а читать.
Разница между написанием программы и статьи в том и состоит, что в статье второстепенно, работает код или нет.
А эти выкрутасы с батниками сильно отвлекают внимание от сути кода и мешают его восприятию. Если статья не про батники, то зачем они вообще? Если очень хотелось с ними, назвал бы статью "использование батников для автоматической смены обоев Windows" :lol:
Изображение

nappel
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 14.10.2004 (Чт) 11:55
Откуда: Moscow

Сообщение nappel » 19.09.2005 (Пн) 9:54

Обнаружилась одна презабавнейшая вещица. Был сделан первый пример, когда загружаемый модуль (тот, который собственно и сменяет обои) копировался в нужный каталог, переименовывался и прописывался в реестр. Все было сделано через код. И обнаружилось, что при переименовании частенько возникает ошибка - "Нечего переименовывать". Т.е. файл копировался слишком медленно. Можно было наворотить проверок, ожидания. Но через BAT получилось элементарно. Да и забавно. А вы так серьезно отнеслись, что сильно меня удивили.

И еще. Я не совсем отношу приведенный код и комментарии к статьям. Я написал просто пояснения. И преподношу их ВОВСЕ НЕ КАК РЕКОМЕНДАЦИЯ для НАЧИНАЮЩИХ ПРОГРАММИСТОВ.

Но есть еще один момент. Гораздо более серьезный.
Если вместо замены обоев в модуле производить установку стартовой страницы для IE, то получится программа для РЕКЛАМЫ - Adware.
Причем, здесь использование BAT файла может быть весьма кстати ....

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 19.09.2005 (Пн) 23:22

nappel
А если, вместо замены обоев в модуле производить форматирование винта, то получится программа для ФОРМАТИРОВАНИЯ!

Это я к тому, что не нужно делать из мухи слона и искать тайный умысел там где его нет :)
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.


Вернуться в Статьи

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList