Closed TopicStart new topicStart Poll

Страницы: (1) 1 
KOsyak
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 316
  • Статус: %username%
  • Member OfflineПара М+ЖВ поиске
Тут периодически копаюсь с winapi... Люди - как добраться через winapi До системной громкости звуков? :))) ну не могу я понять никак :(...


и второй - можно ли через winapi ... эээ.. подключить вторую мышь к компу так, что бы она не работала, но параметры перемещения с нее считать можно было angel_hypocrite.gif ... хоть направление поиска
дата: [ i ]
  • Unregistered
  • Статус:
  • Свободен
QUOTE (Kosyak @ 16.07.2006 - время: 11:49)
Тут периодически копаюсь с winapi... Люди - как добраться через winapi  До системной громкости звуков? :))) ну не могу я понять никак :(...


Библиотека Winmm.
CODE

#include <windows.h>
#include <mmsystem.h>
#include <mmreg.h>

extern const CHAR *    pszPrgName;

static        HMIXER                gs_hMixer;
static        MIXERCONTROLDETAILS gs_mxcd;


BOOL
InitVolume()
{
   MMRESULT r;
   MIXERLINECONTROLS    mxlc;
   MIXERLINE            mxl;
   MIXERCONTROL        mxc;        
   
   r = mixerOpen(&gs_hMixer, 0, 0, 0, 0);
   if (r != MMSYSERR_NOERROR) {
       MessageBox(NULL, "Couldn't open mixer.", pszPrgName, MB_OK);
       return FALSE;
   }    
   ZeroMemory(&mxl,sizeof(mxl));
   mxl.cbStruct = sizeof(mxl);  
   mxl.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;
   mixerGetLineInfo((HMIXEROBJ)gs_hMixer, &mxl,
                          MIXER_GETLINEINFOF_COMPONENTTYPE);    
   ZeroMemory(&mxlc, sizeof(mxlc));
   mxlc.cbStruct = sizeof(mxlc);
   mxlc.dwLineID = mxl.dwLineID;
   mxlc.dwControlType = MIXERCONTROL_CONTROLTYPE_VOLUME;
   //mxlc.dwControlType = MIXERCONTROL_CONTROLTYPE_DECIBELS;
   mxlc.cControls = 1;
   mxlc.cbmxctrl = sizeof(mxc);
   mxlc.pamxctrl = &mxc;
   ZeroMemory(&mxc, sizeof(mxc));
   mxc.cbStruct = sizeof(mxc);    
   mixerGetLineControls((HMIXEROBJ)gs_hMixer,&mxlc,
                              MIXER_GETLINECONTROLSF_ONEBYTYPE);

   ZeroMemory(&gs_mxcd, sizeof(gs_mxcd));
   gs_mxcd.cbStruct = sizeof(gs_mxcd);
   gs_mxcd.cbDetails = sizeof(MIXERCONTROLDETAILS_UNSIGNED);
   gs_mxcd.dwControlID = mxc.dwControlID;
   gs_mxcd.cChannels = 1;

   return TRUE;
}

void
CloseVolume()
{
   mixerClose(gs_hMixer);
}

DWORD
GetVolume()
{
   MIXERCONTROLDETAILS_UNSIGNED volStruct;
   DWORD    volume;

   gs_mxcd.paDetails = &volStruct;
   mixerGetControlDetails((HMIXEROBJ)gs_hMixer, &gs_mxcd,
                                MIXER_GETCONTROLDETAILSF_VALUE);
   volume = volStruct.dwValue;    
   return volume;
}

void
SetVolume(DWORD volume)
{
   MIXERCONTROLDETAILS_UNSIGNED volStruct;    
   ZeroMemory(&volStruct, sizeof volStruct);
   gs_mxcd.paDetails = &volStruct;
   volStruct.dwValue = volume;    
   mixerSetControlDetails((HMIXEROBJ)gs_hMixer, &gs_mxcd, 0);
                                //MIXER_SETCONTROLDETAILSF_VALUE);
}


QUOTE (Kosyak @ 16.07.2006 - время: 11:49)
и второй - можно ли через winapi ... эээ.. подключить вторую мышь к компу так, что бы она не работала, но параметры перемещения с нее считать можно было angel_hypocrite.gif ... хоть направление поиска

Windows всех версий не поддерживает двух курсоров мыши одновременно. Максимум чего можно добиться - это управление одним курсором двуми или более манипуляторами.

KOsyak
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 316
  • Статус: %username%
  • Member OfflineПара М+ЖВ поиске
GregZ а там в примере где вызов API в чистом виде? там сразу работа со структурой play_ball.gif


то что не поддерживает - я и сам зна... но сделать это можно pardon.gif ... меня интересует работа с самой мышью. Точнее работа API с физическим устройством - реально ли это ?
дата: [ i ]
  • Unregistered
  • Статус:
  • Свободен
QUOTE (Kosyak @ 17.07.2006 - время: 00:39)
GregZ а там в примере где вызов API в чистом виде? там сразу работа со структурой play_ball.gif

Обрати внимание на функции семейства mixerXXX. Я привел лишь более удобные обертки.

QUOTE (Kosyak @ 17.07.2006 - время: 00:39)
GregZто что не поддерживает - я и сам зна... но сделать это можно pardon.gif ... меня интересует работа с самой мышью. Точнее работа API с физическим устройством - реально ли это ?

В API пободного нет. Допускаю, что проблему можно решить написав соответствующий требованиям драйвер устройства.

Это сообщение отредактировал GregZ - 17-07-2006 - 01:16
KOsyak
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 316
  • Статус: %username%
  • Member OfflineПара М+ЖВ поиске
GregZ Хм.... а как они в системе объявлены ? ... второе - пример громоздкий все равно получается....


с драйвером понял 08.gif
дата: [ i ]
  • Unregistered
  • Статус:
  • Свободен
QUOTE (Kosyak @ 17.07.2006 - время: 09:36)
GregZ Хм.... а как они в системе объявлены ? ... второе - пример громоздкий все равно получается....

Я тебя не понял. Объявления функций API находятся в заголовочных файлах Mmsystem.h и Mmreg.h

При работе с функциями API приходится заполнять очень много структур, в следствие чего код неизбежно получается объемным.
xTriplex
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 269
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
1 - ну по поводу звука те уже ответили...добавить нечего...

2 - возьми ком мышку старую и найди в инете описалово работы с ком портом и читай себе сигналы на здоровье...это просто...

Встречный вопрос по API.
Возможно ли взять через API спектр звукового сигнала, чтоб по полученным значениям нарисовать что-то типа как в винамповский спектр...

Заранее спасибо.
дата: [ i ]
  • Unregistered
  • Статус:
  • Свободен
http://www.codeproject.com/audio/oscilloscope.asp

Это сообщение отредактировал JeyLo - 20-07-2006 - 12:20
xTriplex
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 269
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
QUOTE (JeyLo @ 20.07.2006 - время: 12:19)
http://www.codeproject.com/audio/oscilloscope.asp

Спасибо...и здесь и в репутаци...то что доктор прописал... 0096.gif
дата: [ i ]
  • Unregistered
  • Статус:
  • Свободен
u're welcome wink.gif
c0d3r
дата: [ i ]
  • *
  • Любитель
  • Репутация: 7
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
лучше справочника по апи чем http://msdn.microsoft.com не найдёшь :)
c0d3r
дата: [ i ]
  • *
  • Любитель
  • Репутация: 7
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
вот есть ещё маааленький офлайн справочник http://www.web-hack.ru/books/books.php?go=2
ЙоджЫк
дата: [ i ]
  • Group Icon
  • Новичок
  • Репутация: нет
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
Прив. Вопрос. Каким чудом можно прочитать очередь печати и узнать количество напечатанных страниц в Delphi 7. Срочно нужно для работы.
дата: [ i ]
  • Unregistered
  • Статус:
  • Свободен
QUOTE (ЙоджЫк @ 08.05.2007 - время: 22:11)
Прив. Вопрос. Каким чудом можно прочитать очередь печати и узнать количество напечатанных страниц в Delphi 7. Срочно нужно для работы.

MSDN уже отменили? Используйте функцию винпринтспулера EnumJobs.
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)

Страницы: (1) 1

Closed TopicStart new topicStart Poll0


Рекомендуем почитать также топики:

Проблема с авторизацией на SN

Подскажите по Palm Treo 500

выбор принтера

Потерялся кабель от колонок!!!

Помогите девушке...



>