[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Программирование под ОС / Basic /

Вызов системных компонентов из VB

Для большинства системных установок Windows 95/98/NT предлагает свои компоненты. Например, чтобы поменять расширение экрана, мы кликаем правой кнопкой на рабочем столе --> "Свойства" --> "Установки". Это окно знает каждый! Также существует ещё несколько десятков таких окон, предлагающих что-либо изменить в системе. Так вот каждое из таких окно можно запросто вызвать из VB, не используя ни одной API-функции! Каждый набор таких окон находится в библиотеках Windows'a с расширением ".cpl". Например в библиотеке desk.cpl находятся четыре стандартных окна (точнее одно окно с четырмя закладками): "Фон", "Заставка", "Настройка", "Оформление". Для того, чтобы вызвать не просто нужное окно, а ещё и нужную закладку, то в параметрах вызова надо установить индекс нужной закладки. Индексы некоторых из них Вы найдёте в этом же примере. Вызов происходит при помощи обычной функции Shell, но немного необычным способом:

Call Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0" )

Откроет окно свойств экрана с закладкой "Фон"!

А теперь некоторые параметры (как комментарии помечены индексы, которые можно подставить тоже, чтобы получить окно следующее по порядку):

Свойства экрана/фоновый рисунок = "desk.cpl,,0"
Свойства экрана/заставка = "desk.cpl,,1"

Свойства экрана/оформление = "desk.cpl,,2"
Свойства экрана/настройка = "desk.cpl,,3"
Спец. возможности/клавиатура = "access.cpl,,1"
Спец. возможности/звуки = "access.cpl,,2"
Спец. возможности/экран = "access.cpl,,3"
Спец. возможности/мышь = "access.cpl,,4"
Спец. возможности/общие = "access.cpl,,5"
Главная для 
      @0  мышь = "main.cpl @0"
Вместо @0 можно подставить следующие значения и получить, соответсвенно:
     @1  клавиатура
        , 0  скорость
        , 1  язык
        , 2  общие
     @2  принтер
     @3  шрифт
 

Дата и время/
       дата и время = "timedate.cpl, ,0"
       часовой пояс  = "timedate.cpl, ,1"

Модем = "modem.cpl"

Сеть/конфигурация = "netcpl.cpl"

Пароль = "password.cpl"
Система = "sysdm.cpl, ,0"
    ' ,,0  система/общие
    ' ,,1  система/устройства
    ' ,,2  система/оборудование
    ' ,,3  система/быстродействия

ODBC = "odbccp32.cpl"

Установка и удаление программ = "appwiz.cpl,,0"
    ' ,,0/1 инсталляция/деинсталляция
    ' ,,2   установка Windows
    ' ,,3   загрузочная дискетта

Язык и стандарты = "intl.cpl,,0"
    ' ,,0   региональные стандарты
    ' ,,1   числа
    ' ,,2   денежная единица
    ' ,,3   время
    ' ,,4   дата

Джойстик = "joy.cpl,,1"
    ' ,,0   общие
    ' ,,1   прочие

Мультимедия = "mmsys.cpl,,0"
    ' ,,0   аудио
    ' ,,1   видео
    ' ,,2   миди
    ' ,,3   компакт - диск
    ' ,,4   устройства

Интернет = "inetcpl.cpl,,0"
    ' ,,0   общие
    ' ,,1   безопасность
    ' ,,2   содержание
    ' ,,3   соединение
    ' ,,4   программы
    ' ,,5   дополнительно

DeskTop-темы (Plus! - пакет) = "Themes.cpl "

Ну, а теперь для укрепления полученных знаний ;) напишем процедуру:

Sub ShellSysComp(LibName As String, index As Integer)
    Call Shell("rundll32.exe shell32.dll,Control_RunDLL " _
    + LibName + ",," + LTrim(Str(index)))
End Sub

Что делает эта процедура? Она всего лишь соединяет имя библиотеки с индексом, переведённым в строку и запускает всё это дело. Пример вызова окна "интернет" со вкладкой программы:

ShellSysComp "inetcpl.cpl", 4




Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Программирование под ОС / Basic /

Основы работы с базами данных
11-02-2009   

Умение обращаться с файлами данных - чуть ли не одна из самых важных ступений в обучении программированию на Visual Basic! Здесь я постараюсь выложить только самые основные приёмы работы с объектом Data... подробнее

Кол. просмотров: общее - 3171 сегодня - 3

Эффективная работа с БД в VB 6.0
11-02-2009   

В статье рассматриваются способы повышения эффективности при разработке клиент-серверных СУБД-приложений в среде VisualBasic 6.0. Наиболее подробно освещены следующие аспекты проблемы... подробнее

Кол. просмотров: общее - 3970 сегодня - 4

Создание программы на Visual basic для вывода случайного числа в заданном интервале чисел
11-02-2009   

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

Кол. просмотров: общее - 3593 сегодня - 1

Техника программирования сложных окон в Visual Basic
11-02-2009   

Mногие из Вас наверняка видели в Windows программах окна нестандартной формы (круглые, треугольные и т.д.) и задавали себе вопрос: как мне сделать такое окно?... подробнее

Кол. просмотров: общее - 3455 сегодня - 2

Вызов функций по указателю
11-02-2009   

Вы читали мою первую статью на эту тему? Надеюсь, что нет. Она мне страшно не нравилась уже сразу после опубликования. К тому же, я получил немало откликов на тему мало информации, которые, конечно, считаю справедливыми... подробнее

Кол. просмотров: общее - 3457 сегодня - 1



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects