完美者(wmzhe.com)网站以软件下载为基础,改版后的网站对功能性板块进行扩充,以期能够解决用户在软件使用过程中遇见的所有问题。网站新增了“软件百科”、“锦囊妙技”等频道,可以更好地对用户的软件使用全周期进行更加专业地服务。
Colasoft Capsa Free是一款专业的网络检测分析工具,可实时监测网络传输数据,全面透视整个网络的动态信息。除了能实时检测每台电脑的上网情况,邮件收发情况,网络登录情况,网络流量外,还具有强大的数据包解码分析功能,可诊断网络错误,检测安全隐患。
"锦囊妙技"栏目是聚合全网软件使用的技巧或者软件使用过程中各种问题的解答类文章,栏目设立伊始,小编欢迎各路软件大神朋友们踊跃投稿,在完美者平台分享大家的独门技巧。
本站文章素材来源于网络,大部分文章作者名称佚失,为了更利于用户阅读和使用,根据需要进行了重新排版和部分改编,本站收录文章只是以帮助用户解决实际问题为目的,如有版权问题请联系小编修改或删除,谢谢合作。
软件大小:20.89 MB
优点:外观大气,整个车摆在那相对同价位的车显得都大,2700轴距也是我选择它的原故,而且静音做得也不错,关完窗后发动机的声音和外面车流声几乎听不到。 缺点:最最不满意的地方就是花了近13万元购买的车得到的轮子是19565R15的尺寸,特别是那15寸的轮毂超难看。还有就是新车竟有方向左偏的现象,给4S店调过了但还是没有解决。右后门时不时有异响,现还没时间去检查。 外观:大气啊!比起同价位的大众、福特、雪佛兰、铁雪龙等系列车外观都大气!最满意的就是这个外观! 内饰:还可以吧,有点不能接受的是它的座椅软得有点过火,坐下去就下陷得比较厉害,总怕哪天坐久了会压偏了!而且还不是真皮的。
授权用户: 6346144 公司名: 无工作 产品序列号: 03801-03365-16791-22602-22332 ** 注意:科来网络分析系统 2010 技术交流版 7.2.1版本以后将只使用序列号
VC调用winmm.dll(有关多媒体的动态连接库)的接口。其中有以下API函数: CloseDriver DefDriverProc DriverCallback DrvGetModuleHandle GetDriverModuleHandle MigrateAllDrivers MigrateMidiUser MigrateSoundEvents NotifyCallbackData OpenDriver PlaySound PlaySoundA PlaySoundW SendDriverMessage WOW32DriverCallback WOW32ResolveMultiMediaHandle WOWAppExit aux32Message auxGetDevCapsA auxGetDevCapsW auxGetNumDevs auxGetVolume auxOutMessage auxSetVolume joy32Message joyConfigChanged joyGetDevCapsA joyGetDevCapsW joyGetNumDevs joyGetPos joyGetPosEx joyGetThreshold joyReleaseCapture joySetCapture joySetThreshold mci32Message mciDriverNotify mciDriverYield mciExecute mciFreeCommandResource mciGetCreatorTask mciGetDeviceIDA mciGetDeviceIDFromElementIDA mciGetDeviceIDFromElementIDW mciGetDeviceIDW mciGetDriverData mciGetErrorStringA mciGetErrorStringW mciGetYieldProc mciLoadCommandResource mciSendCommandA mciSendCommandW mciSendStringA mciSendStringW mciSetDriverData mciSetYieldProc mid32Message midiConnect midiDisconnect midiInAddBuffer midiInClose midiInGetDevCapsA midiInGetDevCapsW midiInGetErrorTextA midiInGetErrorTextW midiInGetID midiInGetNumDevs midiInMessage midiInOpen midiInPrepareHeader midiInReset midiInStart midiInStop midiInUnprepareHeader midiOutCacheDrumPatches midiOutCachePatches midiOutClose midiOutGetDevCapsA midiOutGetDevCapsW midiOutGetErrorTextA midiOutGetErrorTextW midiOutGetID midiOutGetNumDevs midiOutGetVolume midiOutLongMsg midiOutMessage midiOutOpen midiOutPrepareHeader midiOutReset midiOutSetVolume midiOutShortMsg midiOutUnprepareHeader midiStreamClose midiStreamOpen midiStreamOut midiStreamPause midiStreamPosition midiStreamProperty midiStreamRestart midiStreamStop mixerClose mixerGetControlDetailsA mixerGetControlDetailsW mixerGetDevCapsA mixerGetDevCapsW mixerGetID mixerGetLineControlsA mixerGetLineControlsW mixerGetLineInfoA mixerGetLineInfoW mixerGetNumDevs mixerMessage mixerOpen mixerSetControlDetails mmDrvInstall mmGetCurrentTask mmTaskBlock mmTaskCreate mmTaskSignal mmTaskYield mmioAdvance mmioAscend mmioClose mmioCreateChunk mmioDescend mmioFlush mmioGetInfo mmioInstallIOProcA mmioInstallIOProcW mmioOpenA mmioOpenW mmioRead mmioRenameA mmioRenameW mmioSeek mmioSendMessage mmioSetBuffer mmioSetInfo mmioStringToFOURCCA mmioStringToFOURCCW mmioWrite mmsystemGetVersion mod32Message mxd32Message sndPlaySoundA sndPlaySoundW text tid32Message timeBeginPeriod timeEndPeriod timeGetDevCaps timeGetSystemTime timeGetTime timeKillEvent timeSetEvent waveInAddBuffer waveInClose waveInGetDevCapsA waveInGetDevCapsW waveInGetErrorTextA waveInGetErrorTextW waveInGetID waveInGetNumDevs waveInGetPosition waveInMessage waveInOpen waveInPrepareHeader waveInReset waveInStart waveInStop waveInUnprepareHeader waveOutBreakLoop waveOutClose waveOutGetDevCapsA waveOutGetDevCapsW waveOutGetErrorTextA waveOutGetErrorTextW waveOutGetID waveOutGetNumDevs waveOutGetPitch waveOutGetPlaybackRate waveOutGetPosition waveOutGetVolume waveOutMessage waveOutOpen waveOutPause waveOutPrepareHeader waveOutReset waveOutRestart waveOutSetPitch waveOutSetPlaybackRate waveOutSetVolume waveOutUnprepareHeader waveOutWrite wid32Message winmmDbgOut winmmSetDebugLevel wod32Message
给你一个调节音量得例子 'set volume & set mute or not mute 'author:海龙 'mail:hailongxl@21cn.com 'qq:281131020 'msn:antiTears@hotmail.com 'website:http://xsoft.bokee.com 'date:2006-03-28 Option Explicit Private Declare Function mixerGetNumDevs Lib "winmm.dll" () As Long Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long Private Declare Function mixerClose Lib "winmm.dll" (ByVal hmx As Long) As Long Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long) As Long Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long Private Declare Sub CopyPtrFromStruct Lib "kernel32" Alias "RtlMoveMemory" (ByVal ptr As Long, struct As Any, ByVal cb As Long) Private Declare Sub CopyStructFromPtr Lib "kernel32" Alias "RtlMoveMemory" (struct As Any, ByVal ptr As Long, ByVal cb As Long) Private Declare Function mixerSetControlDetails Lib "winmm.dll" (ByVal hmxobj As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As Long Private Declare Function mixerGetLineInfo Lib "winmm.dll" Alias "mixerGetLineInfoA" (ByVal hmxobj As Long, pmxl As MIXERLINE, ByVal fdwInfo As Long) As Long Private Declare Function mixerGetDevCaps Lib "winmm.dll" Alias "mixerGetDevCapsA" (ByVal uMxId As Long, pmxcaps As MIXERCAPS, ByVal cbmxcaps As Long) As Long Private Declare Function mixerOpen Lib "winmm.dll" (phmx As Long, ByVal uMxId As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal fdwOpen As Long) As Long Private Declare Function mixerGetLineControls Lib "winmm.dll" Alias "mixerGetLineControlsA" (ByVal hmxobj As Long, pmxlc As MIXERLINECONTROLS, ByVal fdwControls As Long) As Long Private Declare Function mixerGetControlDetails Lib "winmm.dll" Alias "mixerGetControlDetailsA" (ByVal hmxobj As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As Long Private Const MAXPNAMElen = 32 ' max product name length (including NULL) Private Const MMSYSERR_NOERROR = 0 ' no error Private Const GMEM_ZEROINIT = &H40 Private Const CALLBACK_WINDOW = &H10000 ' dwCallback is a HWND Private Const MIXER_OBJECTF_MIXER = &H0& Private Const MIXER_LONG_NAME_CHARS = 64 Private Const MIXER_SHORT_NAME_CHARS = 16 Private Const MIXER_GETLINEINFOF_SOURCE = &H1& Private Const MIXER_OBJECTF_HANDLE = &H80000000 Private Const MIXER_SETCONTROLDETAILSF_VALUE = &H0& Private Const MIXER_GETCONTROLDETAILSF_VALUE = &H0& Private Const MIXERCONTROL_CT_UNITS_BOOLEAN = &H10000 Private Const MIXER_GETLINECONTROLSF_ONEBYTYPE = &H2& Private Const MIXER_GETLINEINFOF_COMPONENTTYPE = &H3& Private Const MIXERCONTROL_CT_CLASS_FADER = &H50000000 Private Const MIXERCONTROL_CT_UNITS_UNSIGNED = &H30000 Private Const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = &H0& Private Const MIXERLINE_COMPONENTTYPE_DST_FIRST = &H0& Private Const MIXERCONTROL_CT_CLASS_SWITCH = &H20000000 Private Const MIXER_OBJECTF_HMIXER = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_MIXER) Private Const MIXERCONTROL_CONTROLTYPE_FADER = (MIXERCONTROL_CT_CLASS_FADER Or MIXERCONTROL_CT_UNITS_UNSIGNED) Private Const MIXERCONTROL_CONTROLTYPE_VOLUME = (MIXERCONTROL_CONTROLTYPE_FADER + 1) Private Const MIXERCONTROL_CONTROLTYPE_BOOLEAN = (MIXERCONTROL_CT_CLASS_SWITCH Or MIXERCONTROL_CT_SC_SWITCH_BOOLEAN Or MIXERCONTROL_CT_UNITS_BOOLEAN) Private Const MIXERCONTROL_CONTROLTYPE_MUTE = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2) Private Const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 4) Private Type MIXERCONTROLDETAILS_SIGNED lValue As Long End Type Private Type MIXERCONTROLDETAILS_BOOLEAN fValue As Long End Type ''''''''''''''''''''''''''''''''''''''''''''''' '自己定义的类型 Private Type MIXERCONTROLDETAILS_SIGNED_ARRAY_2 v1 As MIXERCONTROLDETAILS_SIGNED v2 As MIXERCONTROLDETAILS_SIGNED End Type ''''''''''''''''''''''''''''''''''''''''''''''' Private Type MIXERCONTROLDETAILS cbStruct As Long ' size in Byte of MIXERCONTROLDETAILS dwControlID As Long ' control id to get/set details on cChannels As Long ' number of channels in paDetails array item As Long ' hwndOwner or cMultipleItems cbDetails As Long ' size of _one_ details_XX struct paDetails As Long ' pointer to array of details_XX structs End Type Private Type MIXERCAPS wMid As Integer ' manufacturer id wPid As Integer ' product id vDriverVersion As Long ' version of the driver szPname As String * MAXPNAMElen ' product name fdwSupport As Long ' misc. support bits cDestinations As Long ' count of destinations End Type Private Type Target ' for use in MIXERLINE and others (embedded structure) dwType As Long ' MIXERLINE_TARGETTYPE_xxxx dwDeviceID As Long ' target device ID of device type wMid As Integer ' of target device wPid As Integer ' " vDriverVersion As Long ' " szPname As String * MAXPNAMElen End Type Private Type MIXERCONTROL cbStruct As Long ' size in Byte of MIXERCONTROL dwControlID As Long ' unique control id for mixer device dwControlType As Long ' MIXERCONTROL_CONTROLTYPE_xxx fdwControl As Long ' MIXERCONTROL_CONTROLF_xxx cMultipleItems As Long ' if MIXERCONTROL_CONTROLF_MULTIPLE set szShortName As String * MIXER_SHORT_NAME_CHARS szName As String * MIXER_LONG_NAME_CHARS Bounds(1 To 6) As Long ' Longest member of the Bounds union Metrics(1 To 6) As Long ' Longest member of the Metrics union End Type Private Type MIXERLINECONTROLS cbStruct As Long ' size in Byte of MIXERLINECONTROLS dwLineID As Long ' line id (from MIXERLINE.dwLineID) ' MIXER_GETLINECONTROLSF_ONEBYID or dwControl As Long ' MIXER_GETLINECONTROLSF_ONEBYTYPE cControls As Long ' count of controls pmxctrl points to cbmxctrl As Long ' size in Byte of _one_ MIXERCONTROL pamxctrl As Long ' pointer to first MIXERCONTROL array End Type Private Type MIXERLINE cbStruct As Long ' size of MIXERLINE structure dwDestination As Long ' zero based destination index dwSource As Long ' zero based source index (if source) dwLineID As Long ' unique line id for mixer device fdwLine As Long ' state/information about line dwUser As Long ' driver specific information dwComponentType As Long ' component type line connects to cChannels As Long ' number of channels line supports cConnections As Long ' number of connections (possible) cControls As Long ' number of controls at this line szShortName As String * MIXER_SHORT_NAME_CHARS szName As String * MIXER_LONG_NAME_CHARS tTarget As Target End Type '最大最小音量 Private m_lMax As Long, m_lMin As Long '打开的设备句柄 Private m_hMixer As Long '设备数GetDevNum Private m_lDeviceNum As Long '设备ID Private m_lDeviceID As Long '设备功能GetDevCaps Private m_Caps As MIXERCAPS '打开设备以调节音量 Public Function OpenDeviceForVolume() As Boolean OpenDeviceForVolume = False '系统中混频器的总数量 If (mixerGetNumDevs() <> 0) Then '打开设备 If mixerOpen(m_hMixer, 0, 0, 0, MIXER_OBJECTF_MIXER Or CALLBACK_WINDOW) <> MMSYSERR_NOERROR Then Exit Function End If '获取设备能力 If mixerGetDevCaps(m_hMixer, m_Caps, Len(m_Caps)) <> MMSYSERR_NOERROR Then Exit Function End If End If '如果打开失败 If m_hMixer = 0 Then Exit Function Dim mxl As MIXERLINE Dim mxc As MIXERCONTROL Dim mxlc As MIXERLINECONTROLS Dim hMem As Long hMem = GlobalAlloc(GMEM_ZEROINIT, Len(mxc)) mxl.cbStruct = Len(mxl) mxl.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS If mixerGetLineInfo(m_hMixer, mxl, MIXER_OBJECTF_HMIXER Or MIXER_GETLINEINFOF_COMPONENTTYPE) <> MMSYSERR_NOERROR Then Exit Function End If m_lDeviceNum = mxl.cChannels mxlc.cbStruct = Len(mxlc) mxlc.dwLineID = mxl.dwLineID mxlc.dwControl = MIXERCONTROL_CONTROLTYPE_VOLUME mxlc.cControls = 1 mxlc.cbmxctrl = Len(mxc) mxlc.pamxctrl = GlobalLock(hMem) If mixerGetLineControls(m_hMixer, mxlc, MIXER_OBJECTF_HMIXER Or MIXER_GETLINECONTROLSF_ONEBYTYPE) <> MMSYSERR_NOERROR Then GlobalUnlock hMem GlobalFree hMem Exit Function End If CopyStructFromPtr mxc, mxlc.pamxctrl, Len(mxc) m_lDeviceID = mxc.dwControlID m_lMin = mxc.Bounds(1) m_lMax = mxc.Bounds(2) GlobalUnlock hMem GlobalFree hMem OpenDeviceForVolume = True End Function '打开设备以设置静音 Public Function OpenDeviceForMute() As Boolean OpenDeviceForMute = False '不懂 If (mixerGetNumDevs() <> 0) Then '打开设备 If mixerOpen(m_hMixer, 0, 0, 0, MIXER_OBJECTF_MIXER Or CALLBACK_WINDOW) <> MMSYSERR_NOERROR Then Exit Function End If '获取设备能力 If mixerGetDevCaps(m_hMixer, m_Caps, Len(m_Caps)) <> MMSYSERR_NOERROR Then Exit Function End If End If '如果打开失败 If m_hMixer = 0 Then Exit Function Dim mxl As MIXERLINE Dim mxc As MIXERCONTROL Dim mxlc As MIXERLINECONTROLS Dim hMem As Long hMem = GlobalAlloc(GMEM_ZEROINIT, Len(mxc)) mxl.cbStruct = Len(mxl) mxl.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS If mixerGetLineInfo(m_hMixer, mxl, MIXER_OBJECTF_HMIXER Or MIXER_GETLINEINFOF_COMPONENTTYPE) <> MMSYSERR_NOERROR Then Exit Function End If m_lDeviceNum = mxl.cChannels mxlc.cbStruct = Len(mxlc) mxlc.dwLineID = mxl.dwLineID mxlc.dwControl = MIXERCONTROL_CONTROLTYPE_MUTE mxlc.cControls = 1 mxlc.cbmxctrl = Len(mxc) mxlc.pamxctrl = GlobalLock(hMem) If mixerGetLineControls(m_hMixer, mxlc, MIXER_OBJECTF_HMIXER Or MIXER_GETLINECONTROLSF_ONEBYTYPE) <> MMSYSERR_NOERROR Then GlobalUnlock hMem GlobalFree hMem Exit Function End If CopyStructFromPtr mxc, mxlc.pamxctrl, Len(mxc) m_lDeviceID = mxc.dwControlID GlobalUnlock hMem GlobalFree hMem OpenDeviceForMute = True End Function '关闭打开的设备 Public Function CloseDevice() As Boolean CloseDevice = False If m_hMixer <> 0 Then mixerClose m_hMixer m_hMixer = 0 End If CloseDevice = True End Function '设置音量 Public Function SetVolume(ByVal lVol As Long, ByVal rVol As Long) As Boolean SetVolume = False '如果设备未打开 If m_hMixer = 0 Then Exit Function Dim mxcdVolume As MIXERCONTROLDETAILS_SIGNED_ARRAY_2 Dim mxcd As MIXERCONTROLDETAILS Dim hMem As Long hMem = GlobalAlloc(GMEM_ZEROINIT, Len(mxcdVolume)) mxcdVolume.v1.lValue = lVol mxcdVolume.v2.lValue = rVol mxcd.cbStruct = Len(mxcd) mxcd.dwControlID = m_lDeviceID mxcd.cChannels = m_lDeviceNum mxcd.item = 0 mxcd.cbDetails = Len(mxcdVolume.v1) mxcd.paDetails = GlobalLock(hMem) CopyPtrFromStruct mxcd.paDetails, mxcdVolume, Len(mxcdVolume) If mixerSetControlDetails(m_hMixer, mxcd, MIXER_OBJECTF_HMIXER Or MIXER_SETCONTROLDETAILSF_VALUE) <> MMSYSERR_NOERROR Then GlobalUnlock (hMem) GlobalFree (hMem) Exit Function End If GlobalUnlock (hMem) GlobalFree (hMem) SetVolume = True End Function '获取当前音量 Public Function GetVolume(ByRef lVol As Long, ByRef rVol As Long) As Boolean GetVolume = False lVol = -1 rVol = -1 '如果设备未打开 If m_hMixer = 0 Then Exit Function Dim mxcdVolume As MIXERCONTROLDETAILS_SIGNED_ARRAY_2 Dim mxcd As MIXERCONTROLDETAILS Dim hMem As Long hMem = GlobalAlloc(GMEM_ZEROINIT, Len(mxcdVolume)) mxcd.cbStruct = Len(mxcd) mxcd.dwControlID = m_lDeviceID mxcd.cChannels = m_lDeviceNum mxcd.item = 0 mxcd.cbDetails = Len(mxcdVolume.v1) mxcd.paDetails = GlobalLock(hMem) If mixerGetControlDetails(m_hMixer, mxcd, MIXER_OBJECTF_HMIXER Or MIXER_GETCONTROLDETAILSF_VALUE) <> MMSYSERR_NOERROR Then GlobalUnlock (hMem) GlobalFree (hMem) Exit Function End If CopyStructFromPtr mxcdVolume, mxcd.paDetails, Len(mxcdVolume) lVol = mxcdVolume.v1.lValue If m_lDeviceNum = 2 Then rVol = mxcdVolume.v2.lValue End If GlobalUnlock (hMem) GlobalFree (hMem) GetVolume = True End Function '获取当前是否静音状态 Public Function GetMute(ByRef bMute As Boolean) As Boolean GetMute = False If m_hMixer = 0 Then Exit Function Dim mxcdMute As MIXERCONTROLDETAILS_BOOLEAN Dim mxcd As MIXERCONTROLDETAILS mxcd.cbStruct = Len(mxcd) mxcd.dwControlID = m_lDeviceID mxcd.cChannels = 1 mxcd.item = 0 mxcd.cbDetails = Len(mxcdMute) mxcd.paDetails = VarPtr(mxcdMute) If mixerGetControlDetails(m_hMixer, mxcd, MIXER_OBJECTF_HMIXER Or MIXER_GETCONTROLDETAILSF_VALUE) <> MMSYSERR_NOERROR Then Exit Function End If If mxcdMute.fValue <> 0 Then bMute = True Else bMute = False End If GetMute = True End Function '设置静音 '参数为是否静音. Public Function SetMute(ByVal bMute As Boolean) As Boolean SetMute = False If m_hMixer = 0 Then Exit Function Dim hMem As Long Dim mxcdMute As MIXERCONTROLDETAILS_BOOLEAN Dim mxcd As MIXERCONTROLDETAILS mxcdMute.fValue = IIf(bMute, 1, 0) hMem = GlobalAlloc(GMEM_ZEROINIT, Len(mxcdMute.fValue)) mxcd.cbStruct = Len(mxcd) mxcd.dwControlID = m_lDeviceID mxcd.cChannels = 1 mxcd.item = 0 mxcd.cbDetails = Len(mxcdMute) mxcd.paDetails = GlobalLock(hMem) CopyPtrFromStruct mxcd.paDetails, mxcdMute, Len(mxcdMute) If mixerSetControlDetails(m_hMixer, mxcd, MIXER_OBJECTF_HMIXER Or MIXER_SETCONTROLDETAILSF_VALUE) <> MMSYSERR_NOERROR Then GlobalUnlock hMem GlobalFree hMem Exit Function End If GlobalUnlock hMem GlobalFree hMem SetMute = True End Function '获取最大音量 Public Function GetMaxVolume() As Long GetMaxVolume = IIf(m_hMixer = 0, -1, m_lMax) End Function '获取最小音量 Public Function GetMinVolume() As Long GetMinVolume = IIf(m_hMixer = 0, -1, m_lMin) End Function Private Sub Class_Initialize() m_hMixer = 0 m_lMax = -1 m_lMin = -1 End Sub