Вызов WinApi функций из C++Builder

В программах для Windows на C++ Builder, как правило, все API-функции можно использовать без особых проблем и без дополнительных объявлений и include'ов. Вот пример, как можно с помощью API-функций сдвинуть кнопку Пуск на Панели задач:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  HWND hWnd = FindWindow("Shell_TrayWnd", NULL);
  HWND hWndBt = FindWindowEx(hWnd, NULL, "Button", NULL);
  MoveWindow(hWndBt, 30, 2, 98, 32, TRUE);
}

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

Если же вы разместите этот код в консольном приложении, то вам необходимо добавить include'ом файл windows.h:

#include <windows.h>
int main(int argc, char* argv[])
{
  HWND hWnd = FindWindow("Shell_TrayWnd", NULL);
  HWND hWndBt = FindWindowEx(hWnd, NULL, "Button", NULL);
  MoveWindow(hWndBt, 30, 2, 98, 32, TRUE);
  return 0;
}

Как правило, этого include'а достаточно для использования любой API-функции в консольном приложении.

Некоторые API-функции требуют в Windows-приложениях дополнительных include'ов. Например, функция PlaySound. Она без проблем будет работать в консольном приложении (если файл windows.h подключен, разумеется), в Windows же приложении нужно добавить строчку

...
#include <Mmsystem.h>
...

после чего в вашей программе вы сможете проигрывать с помощью этой функции звуки:

  ...
  PlaySound("LOGOFF.WAV", NULL, SND_FILENAME);
  ...

Приведенный фрагмент проиграет файл LOGOFF.WAV, который вы должы разместить в папке вашего проекта.

То, что надо подсоединить именно файл Mmsystem.h, выясняем по встроенной справке по функции PlaySound.

Информация о статье "Вызов WinApi функций из C++Builder"

Автор DeVoid | Сайт http://devoid.com.ua | Добавлена 26 Августа 2007 | Просмотрели 5317 раз

  • Digg it!
  • Delicious
  • +МоёМесто.ru
  • Добавить страницу к Мистеру Вонгу
  • Добавить страницу к Мистеру Вонгу

Комментарии КОММЕНТАРИИ

Комментариев еще нет.

Зарегистрируйтесь или выполните Вход для того чтобы оставлять комментарии