Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: API описание Добавлено: 02.10.06 15:39  

Автор вопроса:  angrynews | Web-сайт: www.angrynews.ru
Подскажите плз...
Вот допустим я хочу воспользоваться API, но в учебнике пишут, что надо не только объявить ее, но и описать константы и типы. Внимание вопрос: не понятно - 1) В каком случае их надо описывать 2) Что надо описывать 3) Какой параметр передавать в функцию. Пример в учебнике был на ExitWindows, там передавалась константа reboot=1...вроде, но это не важно

Проще говоря, как узнать, какие дополнительные объявления надо делать кроме описания самой API? Их ведь много разных...мда..

Спасибо

Ответить

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

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



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #1 Добавлено: 02.10.06 15:56
Купи хорошую книжку по АПИ.
Почитай MSDN.
Константы и типы надо описывать те, которые использует функция. Многое увидишь в win32api.txt

Ответить

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



Вопросов: 33
Ответов: 119
 Web-сайт: www.angrynews.ru
 Профиль | | #2
Добавлено: 02.10.06 16:14
у меня есть книги, и API виверы тоже...но вопрос остается...если тип еще как-то пнятно, то константы...ладно, не буду грузить тупыми вопросами

Ответить

Номер ответа: 3
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #3
Добавлено: 02.10.06 16:31
Из своего опыта освоения АПИ... Тоже смутился, что нужно много всего объявять, страшно было смотреть.
А потом зашел в тупик, без апишки - не выбраться, использовал одну, вторую... Даже удивился как это просто.
Поэтому выбери одно АПИ, которое тебе нужно в приложении, найди его пример и используй.
Так и поймешь постепенно смысл работы со всеми. А так действительно, зачем
грузить тупыми вопросами
?

Проще говоря, как узнать, какие дополнительные объявления надо делать кроме описания самой API? Их ведь много разных...мда..
у меня есть книги, и API виверы тоже...


Если у тебя есть учебники, там это длжно быть хорошо объяснено. А если нет - MegaFlash VB Help в поиск и скачай

Ответить

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



Вопросов: 33
Ответов: 119
 Web-сайт: www.angrynews.ru
 Профиль | | #4
Добавлено: 02.10.06 17:02
спасибо

Ответить

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



Вопросов: 33
Ответов: 119
 Web-сайт: www.angrynews.ru
 Профиль | | #5
Добавлено: 09.10.06 16:07
Вот купил книгу аж на 1200 листов, называется Windows API32. Хрен поймешь (((((
Может подскажете толковые книги? Нужно, что бы было примерно так: поставленная задача, пример ее выполнения и ПОДРОБНОЕ объяснение, а то, например, в API гиде примеры есть, но там вместо одной функции сразу несколько напихано, и какие константы для какой непонятно, и что делаю остальные тоже...

МегаФлаш - отстой фигня какая-то, такое впечатление, что куча обрывков собрана, ничего толкового, одни "секреты" (((

Может кто что выслать может? Или выложить куда-нить для скачки?
Спасибо

Ответить

Номер ответа: 6
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #6
Добавлено: 09.10.06 22:56
Вот здесь я уже перестал понимать
Вот купил книгу аж на 1200 листов, называется Windows API32. Хрен поймешь (((((
Может подскажете толковые книги? Нужно, что бы было примерно так: поставленная задача, пример ее выполнения и ПОДРОБНОЕ объяснение, а то, например, в API гиде примеры есть, но там вместо одной функции сразу несколько напихано, и какие константы для какой непонятно, и что делаю остальные тоже...

МегаФлаш - отстой фигня какая-то, такое впечатление, что куча обрывков собрана, ничего толкового, одни "секреты" (((

А чего ты ожидаешь?
Собери обрывки - и будет то, что нужно!
одни "секреты"
Какие секреты?
Подробно. Вск константы, куда что подставлять есть.
Если ты - не на VB6, то мегафлэш, не пойдет конечно. Если же - VB6, и мегафлэш - тебе мало, то юзай свои 1200 страниц.

Ps/ По-моему тебе просто лень взять, включить комп и начать осваивать их.

Ответить

Номер ответа: 7
Автор ответа:
 Андрей



ICQ: 223068450 

Вопросов: 0
Ответов: 3
 Профиль | | #7 Добавлено: 18.10.06 02:16
Объясни что хочеш сделать?

Ответить

Номер ответа: 8
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #8 Добавлено: 18.10.06 23:48
Да все проще чем ты думаешь... хотел пример, получай...

Пример наш будет делать разные манипуляции с окном блокнота, все просто:

Суть: Каждое окно имеет хендел. Всякие действия с окном происходят используя именно его. Это типа идентификатор окна. Нахождение хендела, действия с окнами итп - все это Api функции...

Задача:
Найти хендел нужного окна (поиск по его заголовку), и свернуть его.

Для поиска окна юзаем апи фцию FindWindow, для манипуляции окном - ShowWindow.

Сначала функции нужно описать (задекларировать).
Декларации функций можно посмотреть в API Viewer'e
(или найти в интернете)
В VisualStudio6 в комплект есть тулза "API Text Viewer". Найти можно в пуске, там где басик был...
Запускаешь... File>>LoadTextFile "WIN32API.TXT"...
Над списком типа строка поиска, вводиш туда нужную фцию - "FindWindow".. если нашло - выделит, клацаеш 2 раза на выделенной фции... внизу где-то появится декларация, типа:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Точно так же находим ShowWindow
Private Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

В том же msdn можно найти и описания и примеры и все декларации всех функий (ну почти всех :) )

Все декларации пишутся в самом вверху кода... перед всем насвете :)
Программируем кнопку:
Private Sub Command2_Click()
    Dim hwnd As Long 'Объявили переменную, в неё запомним хендел окна
    'vbNullString - константа, объявлена в самом ВБ. Аналогична "" (пустые кавычки - строка в которой нехрена нет)
    hwnd = FindWindow(vbNullString, "Безымянный - Блокнот";) 'Вызвали API фцию, она нашла хендел окна и поместила его в переменную
    If hwnd = 0 Then    'Если окно ненайдется, функция вернет 0, проверим эту ситуацию
        MsgBox "Окно не найдено!"
        End
    End If
    'Фция ShowWindow первым аргументом принимает хендел окна, вторым действие которые нужно сделать над ним
    Call ShowWindow(hwnd, &H20000000) '<<< но так не красиво :)
    'Оно работает, но кто-то, сразу не вспомнит что делает фция если вторым парам передать 6, а если использовать
    'соответственно названную константу, код станет более читабельный и понятный на взгял
    'Call ShowWindow(hwnd, WS_MINIMIZE)
    'ПЕРЕД этим, желательно там где и декларации фций, объявить
    'Private Const SW_MINIMIZE = 6
End Sub


Больше комментов чем кода :)
Бежим, узнаем что ещё умеет ShowWindow
http://www.yandex.ru/yandsearch?text=%CA%EE%ED%F1%F2%E0%ED%F2%FB+ShowWindow&stype=www

:))

Ответить

Номер ответа: 9
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #9 Добавлено: 18.10.06 23:57
тьфу ёпты
Replace
Call ShowWindow(hwnd, &H20000000)
Call ShowWindow(hwnd, 6)

^)

Ответить

Страница: 1 |

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



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