Работа с железом
Code: |
uses MMSYSTEM; var MyJoy: TJoyInfo; ErrorResult: MMRESULT; begin ErrorResult := joyGetPos(joystickid1, @MyJoy); if ErrorResult = JOYERR_NOERROR then begin TrackBar1.Position := MyJoy.wypos; TrackBar2.Position := MyJoy.wxpos; RadioButton1.Checked := (MyJoy.wbuttons and joy_button1) > 0; RadioButton2.Checked := (MyJoy.wbuttons and joy_button2) > 0; end else case ErrorResult of MMSYSERR_NODRIVER: ShowMessage('No Joystick driver present'); MMSYSERR_INVALPARAM: ShowMessage('Invalid Joystick Paramameters'); JOYERR_UNPLUGGED: ShowMessage('Joystick is Unplugged'); else ShowMessage('Unknown error with Joystick'); end;
end; |
- Подробности
- Родительская категория: Работа с железом
- Категория: Различные другие железяки...
Code: |
uses Windows, SysUtils;
function DisplayRam: string; var Info: TMemoryStatus; begin Info.dwLength := SizeOf(TMemoryStatus); GlobalMemoryStatus(Info); Result := Format('%d MB RAM', [(Info.dwTotalPhys shr 20) + 1]); end; |
- Подробности
- Родительская категория: Работа с железом
- Категория: Различные другие железяки...
Часть 1
Вступление
Этой статьей хочу начать серию по работе с Bluetooth в Delphi под Microsoft Windows XP. Так как тема весьма сложная, прошу внимательно читать. Повторяться не буду.
Все программы написаны на Delphi 6 и тестировались со стандартным стеком Bluetooth от Microsoft под Windows XP + SP2.
Все необходимые библиотеки прилагаются. Так что дополнительно ничего качать не нужно. При разработке использовал только API функции с JEDI.
Описание функций будут даны в стиле Object Pascal. Сионистов просьба обращаться к MSDN и Microsoft Platform SDK.
- Подробности
- Родительская категория: Работа с железом
- Категория: Различные другие железяки...
Прежде всего, получить SDK
После установки откройте Delphi и импортируйте элемент управления ActiveX VPortal2 из списка. Теперь создайте новую форму и поместите VideoPortal из панели ActiveX и кнопки. В пользах, добавить Видеопортал
На OnShow добавить:
- Подробности
- Родительская категория: Работа с железом
- Категория: Различные другие железяки...
Code: |
procedure TForm1.Button3Click(Sender: TObject); begin MessageDlg('Уже поздно. Будь послушным мальчиком. '+ 'Туши свет и вали спать!', mtInformatoion, [mbOk], 0); SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0); end;
Для того, чтобы программно включить монитор можете использовать следующий код:
procedure TForm1.Button3Click(Sender: TObject); begin SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1); end; |
- Подробности
- Родительская категория: Работа с железом
- Категория: Видеокарта, Монитор
Приведенный здесь пример тестировался на сканере Umax 2000P с драйвером VistaScan32 V3.52. При получении изображений следует помнить, что максимальный размер блока памяти, который может распределить Windows, составляет 2 Гб для 32-ух битной винды (8 Тб для 64-х битной) и при попытке сканировании страниц формата А4 с высоким разрешением можно превысить этот предел. Кроме того, достаточно простой в обращении объект TBitMap имеет куда более серьезные ограничения на размер загружаемых изображений, что требует непосредственной работы с DIB данными. Но это уже тема для отдельной статьи.
- Подробности
- Родительская категория: Работа с железом
- Категория: Различные другие железяки...
Code: |
procedure TForm1.button1click(Sender: TObject); var lpDisplayDevice: TDisplayDevice; dwFlags: DWORD; cc: DWORD; begin form2.memo1.Clear; lpDisplayDevice.cb := sizeof(lpDisplayDevice); dwFlags := 0; cc:= 0; while EnumDisplayDevices(nil, cc, lpDisplayDevice , dwFlags) do begin Inc(cc); form2.memo1.lines.add(lpDisplayDevice.DeviceString); {Так же мы увидим дополнительную информацию в lpDisplayDevice} form2.show; end; end; |
- Подробности
- Родительская категория: Работа с железом
- Категория: Видеокарта, Монитор
Посвящается всем любителям компьютерных игр…
В предыдущей статье данного цикла были рассмотрены некоторые из вопросов, связанных с использованием внешних устройств. Данная статья продолжает начатую тему. Так как данный номер посвящен приложениям multimedia, а примеры использования компонента TMediaPlayer и создания проигрывателя звуковых компакт-дисков доступны российским читателям в нескольких различных модификациях (см., например, недавно вышедшую книгу С.Тейксейра и К.Пачеко "Borland Delphi 4: руководство разработчика"; подобные примеры есть и в других источниках), данная статья посвящена теме довольно экзотической - использованию джойстика. Некоторые (но далеко не все) идеи, послужившие основой для рассмотренного ниже примера, заимствованы из малодоступного российскому читателю источника "C++Builder - how-to" (J.Miano, T.Cabanski, H.Howe. - Waite Group Press, ).
- Подробности
- Родительская категория: Работа с железом
- Категория: Различные другие железяки...
Для этого необходимо создать обработчик для перехвата сообщения WM_DISPLAYCHANGE. Применяется это в тех случаях, если Ваше приложение зависит от разрешения экрана (например, приложение работает с графикой).
Далее следует пример обработчика сообщения:
- Подробности
- Родительская категория: Работа с железом
- Категория: Видеокарта, Монитор
Маленький коментарий:
При открытии сидирома срабатывает DBT_DEVICEREMOVECOMPLETE, при закрытии DBT_DEVICEARRIVAL
При подключении сетевого диска также приходит DBT_DEVICEARRIVAL а при отключении DBT_DEVICEREMOVECOMPLETE
При подключении или отключении флэшки срабатывает DBT_DEVNODES_CHANGED...
- Подробности
- Родительская категория: Работа с железом
- Категория: Различные другие железяки...
Если монитор поддерживает режим Stand by, то его можно программно перевести в этот режим. Данная возможность доступна на Windows95 и выше.
Чтобы перевести монитор в режим Stand by:
- Подробности
- Родительская категория: Работа с железом
- Категория: Видеокарта, Монитор
Страница 16 из 17