|   Сделать стартовой  |    На главную| Чат | Гостевая книга | Форум 
        www.IqSoft.narod.ru      
                 Найти: на

                                                                                                    

Оператор SendKey
Оператор AppAtivate
Сочетание операторов Chr(13) + Chr(10)
Смена значений двух переменных
Функция Environ
Смена значение переменной  Boolean на противоположное


                    Оператор  SendKey 

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

SendKey Ctrl [,Wait] 

Wait – параметр с помощью которого определяется режим ожидания обработки имитации нажатия клавиши. Если значение параметра False (по умолчанию), то управление возвращается процедуре немедленно после посылки о нажатии клавиши, если значение True , сообщение должно быть обработано, прежде чем управление будет передано процедуре. 

SendKey “+{F1}” 

Эта строка посылает имитацию нажатия клавиши [Shift + F1]  

 


                        Оператор AppAtivate 

Для передачи фокуса приложению существует оператор AppAtivate :

AppAtivate Title [,Wait]

Title – это текст заголовка приложения. При этом не имеет значения вид написания – прописными буквами или строчными.

Wait – параметр с помощью которого определяется режим ожидания обработки. Если значение параметра False (по умолчанию), то управление возвращается, если значение True , сообщение должно быть обработано, прежде чем управление будет передано процедуре.  

Пример:  

Private Sub Command1_Click ()  

Dim RetVal As Variant  

RetVal = Shell (“calc.exe”, vbNormalFocus)

AppActivate “calculator”, False

SendKeys  “1{+}2= ^ C% {F4} ”, True

Text1.Tex t= Clipboard. GetText()  

End Sub  

В данном примере запускается стандартная программа калькулятор Windows. Затем суммируются числа 1 и 2, результат вычисления копируется в буфер обмена и калькулятор закрывается.  

 


    Сочетание операторов Chr(13) + Chr(10) можно заменять константой vbCrLf.  сообщил о возможности ввода констаны vbNewLine! И правда звучит намного лучше, чем vbCrLf.

 


Если в течении работы программы Вам нужно несколько раз менять значения двух переменных, то используйте эту процедуру:

Sub Swap (V1 As Variant, V2 As Variant)
    Dim Mk As Variant
    Mk = V2
    V2 = V1
    V1 = Mk
End Sub

Вызов:
Swap x, y

Но объявление перменных желательно поменять с Variant на то, которое нужно Вам - меньше памяти надо будет. А эта процедура - универсальна! Чтобы не содержали аргументы V1 и V2, их значения поменяются местами.

 

 


В Бэйсике есть одна ОЧЕНЬ полезная, но многими забытая функция Environ! Она возвращает имена и содержание всех переменных среды операционной системы! Так, например, чтобы получить директорию Windows, совсем не надо прибегать к API-функции GetWindowsDirectory! А получить её можно так:

ABC = Environ ("windir")

И ВСЁ!
Но и это ещё не всё! Также можно получить следующие перменные:

ABC = Environ ("TMP") 'директория временных файлов TEMP
ABC = Environ ("BLASTER") 'координаты звуковой карты
ABC = Environ ("PATH") 'пути, объявленные в autoexec.bat

НО И ЭТО ВСЁ ЕЩЁ НЕ ВСЁ!!!!
Чтобы получить имя и значение перменной, в скобках вместо строки надо поставить номер переменной (или индекс?).

Вставьте следуюшую процедуру в окно Code, запустите проект, кликните на форме увидите список всех переменных и их значений!

Private Sub Form_Click()
  'берём переменную и присваиваем ей единицу
   m = 1
  'запускаем цикл, который увеличивает переменную m каждый
  'раз на единицу и подсовывает её функции Environ
   Do
  'присваеваем перменной EnvString возвращаемую перменную,
  'соответсвующую номеру m
   EnvString = Environ(m)
  'печатаем перменную, соответсвующую номеру m
   Print Environ(m)
  'перменную m увеличиваем на один
   m = m + 1
  'если перменная EnvString всё ещё не пустая - крутим дальше...
   Loop Until EnvString = ""
End Sub

ТЕПЕРЬ ВСЁ!  И теперь все, кто недолюбливает API-функции (по-моему их вообще мало, кто долюбливает)  могут пользоваться только этой строчкой!

 

 


Если нужно поменять значение переменной As Boolean на противоположное, то вместо процедуры:

If ABC Then
   ABC = False
Else: ABC = True
End If

можно использовать строку:

ABC = Not ABC

И тогда какое значение не содержала бы переменная ABC, оно (значение) станет противоположным!

 

 

 

 

 

                                                                   ОБСУДИТЬ СТАТЬЮ НА ФОРУМЕ

  Словарь       Яндекс.Лингво

   

  Сделать стартовой     

Программирование
 -  Основы Visual Basic
 -  Visual Basic
 -  Кирпичики для  VB
 -  Visual Basic 6.0 избранное
 -  API
Разное
 -  БЕЗОПАСНОСТЬ INTRANET
- Политика безопасности для электронной почты.
 - Сравнительная характеристика Internet Explorer и Netscape Navigator
 - Как подключить к Интернету несколько компьютеров через один модем
 -  Мифы компьютерной безопасности
 -  Оптимизация Windows 98.
 - ЧТО ПОМHИТ КОМПЬЮТЕР?
 - О НЕКОТОРЫХ МЕТОДАХ ОБНАРУЖЕНИЯ ЗАКЛАДОЧНЫХ УСТРОЙСТВ
- Хакеры или кракеры "Что такое хорошо и что такое плохо?"
 - Атака из сети
                                                            Нам весьма интересны любые Ваши предложения о сотрудничестве.

                         

 

  Дизайн: Кулишов Андрей
Напишите мне
Hosted by uCoz