Виклик системних компонентів з VB, Basic, Програмування, статті

Сергій Міллер, Азбука Visual Basic

Для більшості системних установок 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

І обов’язково подивіться исходник!

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*