WinAPI
KOsyak
Удален 7/16/2006, 3:49:06 PM
Тут периодически копаюсь с winapi... Люди - как добраться через winapi До системной громкости звуков? :))) ну не могу я понять никак :(...
и второй - можно ли через winapi ... эээ.. подключить вторую мышь к компу так, что бы она не работала, но параметры перемещения с нее считать можно было ... хоть направление поиска
и второй - можно ли через winapi ... эээ.. подключить вторую мышь к компу так, что бы она не работала, но параметры перемещения с нее считать можно было ... хоть направление поиска
DELETED
Акула пера
7/16/2006, 4:05:11 PM
(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);
}
(Kosyak @ 16.07.2006 - время: 11:49)и второй - можно ли через winapi ... эээ.. подключить вторую мышь к компу так, что бы она не работала, но параметры перемещения с нее считать можно было ... хоть направление поиска
Windows всех версий не поддерживает двух курсоров мыши одновременно. Максимум чего можно добиться - это управление одним курсором двуми или более манипуляторами.
Библиотека 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);
}
(Kosyak @ 16.07.2006 - время: 11:49)и второй - можно ли через winapi ... эээ.. подключить вторую мышь к компу так, что бы она не работала, но параметры перемещения с нее считать можно было ... хоть направление поиска
Windows всех версий не поддерживает двух курсоров мыши одновременно. Максимум чего можно добиться - это управление одним курсором двуми или более манипуляторами.
KOsyak
Удален 7/17/2006, 4:39:36 AM
GregZ а там в примере где вызов API в чистом виде? там сразу работа со структурой
то что не поддерживает - я и сам зна... но сделать это можно ... меня интересует работа с самой мышью. Точнее работа API с физическим устройством - реально ли это ?
то что не поддерживает - я и сам зна... но сделать это можно ... меня интересует работа с самой мышью. Точнее работа API с физическим устройством - реально ли это ?
DELETED
Акула пера
7/17/2006, 5:13:51 AM
(Kosyak @ 17.07.2006 - время: 00:39)GregZ а там в примере где вызов API в чистом виде? там сразу работа со структурой
Обрати внимание на функции семейства mixerXXX. Я привел лишь более удобные обертки.
(Kosyak @ 17.07.2006 - время: 00:39)GregZто что не поддерживает - я и сам зна... но сделать это можно ... меня интересует работа с самой мышью. Точнее работа API с физическим устройством - реально ли это ?
В API пободного нет. Допускаю, что проблему можно решить написав соответствующий требованиям драйвер устройства.
Обрати внимание на функции семейства mixerXXX. Я привел лишь более удобные обертки.
(Kosyak @ 17.07.2006 - время: 00:39)GregZто что не поддерживает - я и сам зна... но сделать это можно ... меня интересует работа с самой мышью. Точнее работа API с физическим устройством - реально ли это ?
В API пободного нет. Допускаю, что проблему можно решить написав соответствующий требованиям драйвер устройства.
KOsyak
Удален 7/17/2006, 1:36:15 PM
GregZ Хм.... а как они в системе объявлены ? ... второе - пример громоздкий все равно получается....
с драйвером понял
с драйвером понял
DELETED
Акула пера
7/18/2006, 2:11:37 AM
(Kosyak @ 17.07.2006 - время: 09:36)GregZ Хм.... а как они в системе объявлены ? ... второе - пример громоздкий все равно получается....
Я тебя не понял. Объявления функций API находятся в заголовочных файлах Mmsystem.h и Mmreg.h
При работе с функциями API приходится заполнять очень много структур, в следствие чего код неизбежно получается объемным.
Я тебя не понял. Объявления функций API находятся в заголовочных файлах Mmsystem.h и Mmreg.h
При работе с функциями API приходится заполнять очень много структур, в следствие чего код неизбежно получается объемным.
xTriplex
Мастер
7/19/2006, 4:21:26 AM
1 - ну по поводу звука те уже ответили...добавить нечего...
2 - возьми ком мышку старую и найди в инете описалово работы с ком портом и читай себе сигналы на здоровье...это просто...
Встречный вопрос по API.
Возможно ли взять через API спектр звукового сигнала, чтоб по полученным значениям нарисовать что-то типа как в винамповский спектр...
Заранее спасибо.
2 - возьми ком мышку старую и найди в инете описалово работы с ком портом и читай себе сигналы на здоровье...это просто...
Встречный вопрос по API.
Возможно ли взять через API спектр звукового сигнала, чтоб по полученным значениям нарисовать что-то типа как в винамповский спектр...
Заранее спасибо.
xTriplex
Мастер
7/21/2006, 4:04:32 AM
(JeyLo @ 20.07.2006 - время: 12:19) https://www.codeproject.com/audio/oscilloscope.asp
Спасибо...и здесь и в репутаци...то что доктор прописал...
Спасибо...и здесь и в репутаци...то что доктор прописал...
DELETED
Акула пера
7/21/2006, 4:23:04 PM
u're welcome
c0d3r
Интересующийся
9/13/2006, 10:18:30 PM
лучше справочника по апи чем https://msdn.microsoft.com не найдёшь :)
c0d3r
Интересующийся
9/13/2006, 10:21:14 PM
вот есть ещё маааленький офлайн справочник https://www.web-hack.ru/books/books.php?go=2
ЙоджЫк
Удален 5/9/2007, 2:11:08 AM
Прив. Вопрос. Каким чудом можно прочитать очередь печати и узнать количество напечатанных страниц в Delphi 7. Срочно нужно для работы.
DELETED
Акула пера
5/9/2007, 3:53:43 PM
(ЙоджЫк @ 08.05.2007 - время: 22:11) Прив. Вопрос. Каким чудом можно прочитать очередь печати и узнать количество напечатанных страниц в Delphi 7. Срочно нужно для работы.
MSDN уже отменили? Используйте функцию винпринтспулера EnumJobs.
MSDN уже отменили? Используйте функцию винпринтспулера EnumJobs.