Вверх ↑
Этот топик читают: Гость
Ответов: 138
Рейтинг: 2
#1: 2017-07-05 14:47:55 ЛС | профиль | цитата
Нашёл на просторах форума вот такой код (вы вроде эту штуку IC называете?)

Add(InlineCode,16759049,273,105)
{
WorkPoints=#12:doSetVolume7|
VarPoints=#11:VolumeLevel|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|63:uses Debug, Share, Windows, Kol, ActiveX, ActiveKOL, KOLComObj;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|9: public|55: procedure doSetVolume7(var _Data:TData; Index:word);|54: procedure VolumeLevel(var _Data:TData; Index:word);|7: end;|0:|5:const|77:CLASS_IMMDeviceEnumerator : TGUID = '{BCDE0395-E52F-467C-8E3D-C4579291692E}';|75:IID_IMMDeviceEnumerator : TGUID = '{A95664D2-9614-4F35-A746-DE8DB63617E6}';|65:IID_IMMDevice : TGUID = '{D666063F-1587-4E43-81F1-B948E807363F}';|75:IID_IMMDeviceCollection : TGUID = '{0BD7A1BE-7A1A-44DB-8397-CC5392387B5E}';|76:IID_IAudioEndpointVolume : TGUID = '{5CDF2C82-841E-4546-9722-0CF74078229A}';|78:IID_IAudioMeterInformation : TGUID = '{C02216F6-8C67-4B5B-9D00-D008E73E0064}';|84:IID_IAudioEndpointVolumeCallback : TGUID = '{657804FA-D6AD-4496-8A60-352752AF4F89}';|0:|32:DEVICE_STATE_ACTIVE = $00000001;|35:DEVICE_STATE_UNPLUGGED = $00000002;|36:DEVICE_STATE_NOTPRESENT = $00000004;|33:DEVICE_STATEMASK_ALL = $00000007;|1: |4:type|21:EDataFlow = TOleEnum;|1: |5:const|20:eRender = $00000000;|21:eCapture = $00000001;|17:eAll = $00000002;|33:EDataFlow_enum_count = $00000003;|1: |4:type|17:ERole = TOleEnum;|1: |5:const|21:eConsole = $00000000;|24:eMultimedia = $00000001;|28:eCommunications = $00000002;|29:ERole_enum_count = $00000003;|1: |4:type|50:IAudioEndpointVolumeCallback = interface(IUnknown)|42:['{657804FA-D6AD-4496-8A60-352752AF4F89}']|4:end;|1: |42:IAudioEndpointVolume = interface(IUnknown)|42:['{5CDF2C82-841E-4546-9722-0CF74078229A}']|100:function RegisterControlChangeNotify(AudioEndPtVol: IAudioEndpointVolumeCallback): Integer; stdcall;|102:function UnregisterControlChangeNotify(AudioEndPtVol: IAudioEndpointVolumeCallback): Integer; stdcall;|57:function GetChannelCount(out PInteger): Integer; stdcall;|92:function SetMasterVolumeLevel(fLevelDB: single; pguidEventContext: PGUID): Integer; stdcall;|98:function SetMasterVolumeLevelScalar(fLevelDB: single; pguidEventContext: PGUID): Integer; stdcall;|70:function GetMasterVolumeLevel(out fLevelDB: single): Integer; stdcall;|76:function GetMasterVolumeLevelScalar(out fLevelDB: single): Integer; stdcall;|112:function SetChannelVolumeLevel(nChannel: Integer; fLevelDB: double; pguidEventContext: PGUID): Integer; stdcall;|118:function SetChannelVolumeLevelScalar(nChannel: Integer; fLevelDB: double; pguidEventContext: PGUID): Integer; stdcall;|90:function GetChannelVolumeLevel(nChannel: Integer; out fLevelDB: double): Integer; stdcall;|94:function GetChannelVolumeLevelScalar(nChannel: Integer; out fLevel: double): Integer; stdcall;|77:function SetMute(bMute: Boolean; pguidEventContext: PGUID): Integer; stdcall;|55:function GetMute(out bMute: Boolean): Integer; stdcall;|88:function GetVolumeStepInfo(pnStep: Integer; out pnStepCount: Integer): Integer; stdcall;|66:function VolumeStepUp(pguidEventContext: PGUID): Integer; stdcall;|68:function VolumeStepDown(pguidEventContext: PGUID): Integer; stdcall;|76:function QueryHardwareSupport(out pdwHardwareSupportMask): Integer; stdcall;|132:function GetVolumeRange(out pflVolumeMindB: double; out pflVolumeMaxdB: double; out pflVolumeIncrementdB: double): Integer; stdcall;|4:end;|1: |44:IAudioMeterInformation = interface(IUnknown)|42:['{C02216F6-8C67-4B5B-9D00-D008E73E0064}']|4:end;|1: |36:IPropertyStore = interface(IUnknown)|4:end;|1: |31:IMMDevice = interface(IUnknown)|42:['{D666063F-1587-4E43-81F1-B948E807363F}']|37:function Activate(const refId: TGUID;|16:dwClsCtx: DWORD;|28:pActivationParams: PInteger;|61:out pEndpointVolume: IAudioEndpointVolume): Hresult; stdCall;|98:function OpenPropertyStore(stgmAccess: DWORD; out ppProperties: IPropertyStore): Hresult; stdcall;|55:function GetId(out ppstrId: PLPWSTR): Hresult; stdcall;|56:function GetState(out State: Integer): Hresult; stdcall;|4:end;|1: |1: |41:IMMDeviceCollection = interface(IUnknown)|42:['{0BD7A1BE-7A1A-44DB-8397-CC5392387B5E}']|4:end;|1: |43:IMMNotificationClient = interface(IUnknown)|42:['{7991EEC9-7E89-4D85-8390-6C703CEC60C0}']|4:end;|1: |41:IMMDeviceEnumerator = interface(IUnknown)|42:['{A95664D2-9614-4F35-A746-DE8DB63617E6}']|125:function EnumAudioEndpoints(dataFlow: EDataFlow; deviceState: SYSUINT; DevCollection: IMMDeviceCollection): Hresult; stdcall;|99:function GetDefaultAudioEndpoint(EDF: SYSUINT; ER: SYSUINT; out Dev :IMMDevice ): Hresult; stdcall;|75:function GetDevice(pwstrId: pointer; out Dev: IMMDevice): HResult; stdcall;|96:function RegisterEndpointNotificationCallback(pClient: IMMNotificationClient): Hresult; stdcall;|4:end;|3: |14:implementation|0:|32:procedure SetVolume7(L: double);|41:var endpointVolume: IAudioEndpointVolume;|38:deviceEnumerator: IMMDeviceEnumerator;|25:defaultDevice: IMMDevice;|5:begin|8: try|119: CoCreateInstance(CLASS_IMMDeviceEnumerator, nil, CLSCTX_INPROC_SERVER, IID_IMMDeviceEnumerator, deviceEnumerator);|80: deviceEnumerator.GetDefaultAudioEndpoint(eRender, eConsole, defaultDevice);|97: defaultDevice.Activate(IID_IAudioEndpointVolume, CLSCTX_INPROC_SERVER, nil, endpointVolume);|39: if endpointVolume = nil then Exit;|56: endpointVolume.SetMasterVolumeLevelScalar(L, nil); |16: except end;|4:end;|0:|36:procedure GetVolume7(var L: single);|41:var endpointVolume: IAudioEndpointVolume;|38:deviceEnumerator: IMMDeviceEnumerator;|25:defaultDevice: IMMDevice;|5:begin|8: try|119: CoCreateInstance(CLASS_IMMDeviceEnumerator, nil, CLSCTX_INPROC_SERVER, IID_IMMDeviceEnumerator, deviceEnumerator);|80: deviceEnumerator.GetDefaultAudioEndpoint(eRender, eConsole, defaultDevice);|97: defaultDevice.Activate(IID_IAudioEndpointVolume, CLSCTX_INPROC_SERVER, nil, endpointVolume);|39: if endpointVolume = nil then Exit;|51: endpointVolume.GetMasterVolumeLevelScalar(L); |16: except end;|4:end;|0:|35:procedure THiAsmClass.doSetVolume7;|12:var L: real;|5:begin|24: L := ToReal(_Data);|32: if L ‹ 0.0 then l := 0 else|28: if L › 1.0 then L := 1;|19: SetVolume7(L);|4:end;|0:|34:procedure THiAsmClass.VolumeLevel;|13:var L:single;|5:begin|19: GetVolume7(L);|22: dtReal(_Data, L);|4:end;|0:|4:end.|
}
Однако работает этот код только с графическими программами, а вот с фоновыми эта IC'шка не хочет работать
Другого способа регулировать звук Я не смог найти! (BASS тоже пробовал , но мне надо регулировать уже нынешнее значение звука , а в этом BASS отображается не верное значение нынешнего звука)
На всякий случаи выложу программку
Программа

Add(Service,7189109,140,105)
{
Wait=0
link(onStart,5481620:doEvent1,[])
link(onStop,10720847:doEvent1,[(205,118)(205,405)])
}
Add(Ini,13896480,658,63)
{
FileName="SIT.ini"
Section="COMspeed"
Key="COMspeed"
link(onResult,9593167:doValue,[])
}
Add(Ini,3131760,658,119)
{
FileName="SIT.ini"
Section="COMport"
Key="COMport"
link(onResult,5481943:doValue,[])
}
Add(COMEX,4082497,406,399)
{
DTR=1
RTS=1
Point(onOpen)
Point(onError)
Point(onClose)
link(onRead,4181219:in,[(482,412)(482,419)])
link(Port,16720945:Var,[(412,382)(391,382)])
link(BaudRate,9344502:Var,[(419,392)(398,392)])
link(onOpen,4181219:open,[])
link(onError,4181219:error,[])
}
Add(If_else,13014796,819,336)
{
Op1=String(off)
link(onTrue,11968355:doPowerOff,[(867,342)(867,363)])
link(Op2,803146:Var3,[(832,324)(795,324)(795,362)])
}
Add(ExitWindows,11968355,882,336)
{
QuickForce=0
Point(doPowerOff)
}
Add(Ini,9863913,658,175)
{
FileName="SIT.ini"
Section="Notification"
Key="Notification"
link(onResult,12774457:doValue,[])
}
Add(Memory,12774457,693,175)
{
}
Add(Memory,5481943,693,119)
{
}
Add(Memory,9593167,693,63)
{
}
Add(LineBreak,12858273,693,217)
{
Type=1
link(Data,12774457:Value,[])
Primary=[15884623,-546,175]
}
Add(LineBreak,6808669,693,154)
{
Type=1
link(Data,5481943:Value,[])
Primary=[16720945,-308,189]
}
Add(LineBreak,4245852,693,98)
{
Type=1
link(Data,9593167:Value,[])
Primary=[9344502,-301,266]
}
Add(LineBreak,13420792,749,371)
{
Caption="Plauer"
Type=1
link(Data,803146:Var2,[])
Primary=[12239910,-546,91]
}
Add(LineBreak,10680380,42,539)
{
Caption="Player"
link(Out,2959033:doCompare,[])
Primary=[11138918,693,-112]
}
Add(Hub,14287879,588,406)
{
OutCount=8
link(onEvent1,461059:doEvent2,[(614,412)(614,338)(408,338)(408,265)])
link(onEvent3,8570588:doValue,[(668,426)(668,308)])
link(onEvent4,11138918:In,[])
link(onEvent5,13587115:doMultiReplace,[])
link(onEvent6,12691373:doValue,[(627,447)(627,524)])
link(onEvent7,1963996:doSendAll,[(620,454)(620,622)])
link(onEvent8,1510754:In,[])
}
Add(GetDataEx,803146,749,357)
{
link(Data,8570588:Value,[(755,345)(741,345)])
}
Add(MultiReplace,13587115,651,434)
{
Mode=1
link(onResult,12086259:doExec,[])
link(ReplaceList,4890113:Text,[(664,298)(573,298)])
}
Add(WinExec,12086259,693,434)
{
}
Add(StrList,4890113,567,161)
{
}
Add(Hub,461059,420,252)
{
InCount=2
OutCount=1
link(onEvent1,9077209:doPart,[(441,258)(441,195)])
}
Add(Application,12632479,476,140)
{
}
Add(FilePartElm,9077209,476,189)
{
Mode=0
link(onPart,9314984:doStrCat,[])
link(FileName,12632479:AppFileName,[])
}
Add(StrCat,9314984,518,189)
{
Str2="files.ini"
link(onStrCat,4890113:doLoad,[])
}
Add(Memory,8570588,735,302)
{
}
Add(MultiElementEx,4181219,525,406)
{
link(out,14287879:doEvent1,[])
link(open COM port,14930966:In,[(574,419)(574,443)(485,443)(485,482)])
}
BEGIN_SDK
Add(EditMultiEx,9916280,21,21)
{
WorkCount=#5:Start|2:in|4:open|5:error|
EventCount=#3:out|13:open COM port|
Width=755
Height=403
link(Start,13727387:doWork,[(35,27)(35,6)])
link(in,10955674:doWork,[(63,34)(63,17)])
link(open,3195055:doEvent1,[(45,41)(45,90)])
link(error,2357852:doEvent1,[(39,48)(39,118)])
}
Add(GHotKey,3020619,133,175)
{
Alt=1
Ctrl=1
Key=27
link(onEventHotKey,8629139:doCompare,[])
}
Add(LineBreakEx,13727387,49,0)
{
Caption="Star"
}
Add(LineBreakEx,5924971,70,175)
{
Caption="Star"
Type=1
link(OnEvent,3020619:doStartHotKey,[])
}
Add(Switch,15627858,434,91)
{
DataOn=Integer(1)
DataOff=Integer(0)
Default=0
Point(onOn)
Point(onOff)
link(onSwitch,7751993:doMultiReplace,[(488,97)(488,48)])
link(onOn,4150201:doWork2,[])
link(onOff,4150201:doWork3,[(501,111)])
}
Add(Message,221399,623,42)
{
}
Add(FormatStr,12619513,567,42)
{
DataCount=1
Mask="Программа в состоянии %1"
link(onFString,221399:doMessage,[])
}
Add(MultiReplace,7751993,511,42)
{
ReplaceList="1=On;\r\n0=Off;"
Mode=1
link(onResult,12619513:doString,[])
}
Add(Memory,14739232,532,98)
{
Default=Integer(1)
}
Add(HubEx,4150201,497,98)
{
link(onEvent,14739232:doValue,[])
}
Add(LineBreakEx,10955674,154,11)
{
Caption="In"
}
Add(LineBreakEx,15896438,476,168)
{
Caption="In"
Type=1
link(OnEvent,1032889:doEvent,[])
}
Add(IndexToChanel,1032889,532,168)
{
Point(Index)
link(onEvent2,9916280:out,[(670,181)(670,27)])
link(Index,14739232:Value,[])
}
Add(Switch,9982402,217,112)
{
DataOn=Integer(1)
DataOff=Integer(0)
Point(onOn)
Point(onOff)
Point(doOn)
Point(State)
}
Add(Message,2497670,329,182)
{
Type=2
Point(onYES)
link(onYES,14993438:doWork1,[(368,195)])
}
Add(FormatStr,8530383,273,182)
{
DataCount=1
Mask="Программа пытается установить соединение с COM port'om /Остановить её?/"
link(onFString,2497670:doMessage,[])
}
Add(If_else,8629139,210,175)
{
Op1=Integer(1)
link(onTrue,15627858:doSwitch,[(262,181)(262,154)(338,154)(338,97)])
link(onFalse,8530383:doString,[])
link(Op2,9982402:State,[])
}
Add(Hub,3195055,70,84)
{
link(onEvent1,9982402:doSwitch,[(150,90)(150,118)])
link(onEvent2,9490176:In,[])
}
Add(Hub,2357852,56,112)
{
link(onEvent1,9982402:doReset,[(144,118)(144,125)])
link(onEvent2,14513386:In,[])
}
Add(LineBreak,9049165,301,231)
{
link(Out,14993438:doWork2,[])
Primary=[9490176,-189,-140]
}
Add(LineBreak,13310815,301,252)
{
Caption="-"
link(Out,4694006:doStart,[(423,258)(423,237)])
Primary=[14513386,-210,-133]
}
Add(Thread,4694006,469,231)
{
Point(doStopFlag)
link(onExec,9916280:open COM port,[(695,237)(695,34)])
}
Add(HubEx,14993438,364,231)
{
link(onEvent,4694006:doStop,[(400,237)(400,244)])
}
END_SDK
Add(Hub,5481620,224,105)
{
OutCount=9
link(onEvent1,4296760:In,[(252,111)(252,97)])
link(onEvent2,10118343:In,[])
link(onEvent3,7489658:In,[(259,125)(259,139)])
link(onEvent4,9719234:In,[(252,132)(252,174)])
link(onEvent5,3259584:In,[(252,139)(252,188)])
link(onEvent6,5346630:doWork1,[(354,146)])
link(onEvent7,11961541:In,[(248,153)(248,230)])
link(onEvent8,5046149:In,[])
link(onEvent9,11875662:In,[])
}
Add(LineBreak,3186351,609,63)
{
link(Out,13896480:doRead,[])
Primary=[4296760,-343,28]
}
Add(LineBreak,15195906,609,119)
{
link(Out,3131760:doRead,[])
Primary=[10118343,-343,-7]
}
Add(LineBreak,15179638,616,175)
{
link(Out,9863913:doRead,[])
Primary=[7489658,-350,-42]
}
Add(LineBreak,338907,364,252)
{
link(Out,461059:doEvent1,[])
Primary=[9719234,-98,-84]
}
Add(LineBreak,9268360,476,350)
{
link(Out,4181219:Start,[(516,356)(516,412)])
Primary=[3259584,-210,-168]
}
Add(MultiElement,2878098,147,413)
{
link(onEvent1,5572925:doWork2,[])
link(Data1,15884623:Var,[])
}
BEGIN_SDK
Add(EditMulti,7293230,21,21)
{
EventCount=1
WorkCount=2
DataCount=1
Width=573
Height=487
link(doWork1,15646537:doEvent1,[])
link(doWork2,6757027:doCompare,[(115,34)(115,97)])
}
Add(DoData,7847080,399,119)
{
Data=String(S)
link(onEventData,6340300:doEvent2,[(419,125)(419,83)])
}
Add(Hub,6340300,434,70)
{
InCount=2
OutCount=1
link(onEvent1,7293230:onEvent1,[(479,76)(479,27)])
}
Add(DoData,2891777,385,63)
{
Data=String(A)
link(onEventData,6340300:doEvent1,[(425,69)(425,76)])
}
Add(Hub,1623713,294,91)
{
InCount=2
link(onEvent1,2891777:doData,[(346,97)(346,69)])
link(onEvent2,4915675:doTimer,[(326,104)(326,125)])
}
Add(If_else,6757027,210,91)
{
Op1=Integer(1)
link(onTrue,1623713:doEvent1,[])
link(Op2,7293230:Data1,[(223,84)(27,84)])
}
Add(Ini,3648801,245,147)
{
FileName="SIT.ini"
Section="S"
Key="S"
link(onResult,4915675:doInterval,[(310,153)(310,139)])
}
Add(Timer,4915675,343,119)
{
Interval=500
Enable=1
AutoStop=1
Point(doInterval)
link(onTimer,7847080:doData,[])
}
Add(LineBreak,10098050,252,126)
{
link(Out,1623713:doEvent2,[(288,132)(288,104)])
Primary=[12955779,-140,-70]
}
Add(Hub,15646537,35,21)
{
link(onEvent1,3648801:doRead,[(105,27)(105,153)])
link(onEvent2,12955779:In,[(81,34)(81,62)])
}
END_SDK
Add(LineBreak,2031558,105,413)
{
link(Out,2878098:doWork1,[])
Primary=[11875662,252,-252]
}
Add(MultiElementEx,16129343,203,504)
{
@Hint=#24:Эмулятор клавиш для AIMP|
link(Data,9006760:Var2,[])
AddHint(50,7,155,13,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,13115465,21,21)
{
WorkCount=#8:doEvent1|
DataCount=#4:Data|
Width=601
Height=536
link(doEvent1,102692:doEvent1,[(105,27)(105,195)])
}
Add(StrList,8476112,364,224)
{
@Hint=#8:0 - Prew|14:1 - Play/Pause|8:2 - Next|10:3 - Звук +|10:4 - Звук -|28:6 - Открыть плеер по лефолту|
Strings=#3:177|3:179|3:176|3:174|3:175|3:181|
Point(doGetString)
Point(onGetString)
Point(IdxToSelect)
link(onGetString,9758585:doPress,[(429,237)(429,324)(352,324)(352,405)])
AddHint(115,-1,152,78,@Hint)
}
Add(KeyEvent,9758585,378,399)
{
link(Handle,10838508:Value,[])
}
Add(Memory,10838508,378,336)
{
Default=Integer(0)
Point(Data)
}
Add(ChanelToIndex,1802464,315,231)
{
Count=6
link(onIndex,8476112:doGetString,[(356,237)(356,272)])
}
Add(Hub,102692,189,189)
{
OutCount=6
link(onEvent1,2965005:doCompare,[(210,195)(210,174)])
link(onEvent2,4372608:doCompare,[(210,202)(210,223)])
link(onEvent3,5189170:doCompare,[(210,209)(210,272)])
link(onEvent4,5415406:doCompare,[(210,216)(210,321)])
link(onEvent5,10270960:doCompare,[(210,223)(210,363)])
link(onEvent6,4628896:doCompare,[(210,230)(210,412)])
}
Add(If_else,2965005,224,168)
{
Op1=String(<)
link(onTrue,1802464:doWork1,[(289,174)(289,237)])
link(Op2,13928232:Var2,[])
}
Add(If_else,4372608,224,217)
{
Op1=String(PS)
link(onTrue,1802464:doWork2,[(289,223)(289,244)])
link(Op2,11965273:Var2,[])
}
Add(If_else,5189170,224,266)
{
Op1=String(>)
link(onTrue,1802464:doWork3,[(289,272)(289,251)])
link(Op2,7735617:Var2,[])
}
Add(If_else,5415406,224,315)
{
Op1=String(-)
link(onTrue,1802464:doWork4,[(289,321)(289,258)])
link(Op2,14888043:Var2,[])
}
Add(If_else,10270960,224,357)
{
Op1=String(+)
link(onTrue,1802464:doWork5,[(289,363)(289,265)])
link(Op2,10190159:Var2,[])
}
Add(If_else,4628896,224,406)
{
Op1=String(-+)
link(onTrue,1802464:doWork6,[(289,412)(289,272)])
link(Op2,10190159:Var1,[(237,377)(228,377)(228,348)])
}
Add(GetDataEx,7735617,231,252)
{
link(Data,11965273:Var1,[(237,230)(228,230)(228,208)])
}
Add(GetDataEx,14888043,231,301)
{
link(Data,7735617:Var1,[(237,286)(228,286)(228,257)])
}
Add(GetDataEx,10190159,231,343)
{
link(Data,14888043:Var1,[(237,331)(228,331)(228,306)])
}
Add(GetDataEx,13928232,231,147)
{
link(Data,13115465:Data,[(237,84)(27,84)])
}
Add(GetDataEx,11965273,231,203)
{
link(Data,13928232:Var1,[(237,185)(228,185)(228,152)])
}
END_SDK
Add(LineBreak,13179857,217,378)
{
Caption="Open COM port"
link(Out,10217366:doEvent1,[])
Primary=[14930966,273,98]
}
Add(Hub,10217366,322,378)
{
link(onEvent1,12038044:doWork1,[(340,384)])
link(onEvent2,5346630:doWork2,[])
}
Add(HubEx,5346630,350,385)
{
Angle=1
link(onEvent,4082497:doOpen,[(354,405)])
}
Add(HubEx,12038044,336,406)
{
link(onEvent,4082497:doClose,[])
}
Add(PipeServer,1963996,644,588)
{
PipeName="5645"
Point(doSendAll)
link(onReceive,5572925:doWork3,[(708,594)(708,507)(333,507)])
link(Data,12691373:Value,[])
}
Add(LineBreak,14279773,553,616)
{
Caption="Off"
link(Out,1963996:doStopServer,[(613,622)(613,608)])
Primary=[10916231,-294,-210]
}
Add(LineBreak,4222142,553,595)
{
Caption="On"
link(Out,1963996:doStartServer,[])
Primary=[11961541,-294,-371]
}
Add(Hub,10720847,217,399)
{
link(onEvent1,12038044:doWork2,[(305,405)(305,412)])
link(onEvent2,10916231:In,[])
}
Add(Memory,12691373,644,518)
{
}
Add(HubEx,5572925,329,413)
{
link(onEvent,4082497:doWrite,[])
}
Add(LineBreak,441049,105,434)
{
link(Out,2878098:doWork2,[(138,440)(138,426)])
Primary=[1510754,679,21]
}
Add(MultiElementEx,7026629,245,553)
{
link(Data,9006760:Var3,[(251,495)])
AddHint(28,73,15,13,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,15601419,21,14)
{
WorkCount=#8:doEvent1|6:doFind|
DataCount=#4:Data|
Width=762
Height=536
link(doEvent1,1604802:doEvent1,[(84,20)(84,125)])
link(doFind,9346543:doEvent1,[(199,27)(199,62)])
}
Add(FindWindow,1593706,504,49)
{
ClassName="AIMP2_RemoteInfo"
SkipParam=1
link(onFind,14227396:doCompare,[])
}
Add(FindWindow,10296752,441,56)
{
ClassName="AIMP.exe"
link(onFind,1593706:doFindChild,[])
}
Add(SendMessage,11820741,504,175)
{
Message=1
Point(Message)
link(Handle,7906447:Var2,[])
link(WParam,6035954:Value,[])
link(Message,11364012:Text,[(531,158)(580,158)])
}
Add(VisualStrings,11364012,574,112)
{
Lines=#4:1141|
}
Add(Memory,6035954,511,98)
{
}
Add(StrList,943397,336,119)
{
Strings=#2:18|2:14|2:17|0:|0:|0:|0:|
Point(doGetString)
Point(onGetString)
link(onGetString,2827077:doEvent1,[(404,132)(404,174)])
}
Add(Hub,2827077,434,168)
{
link(onEvent1,6035954:doValue,[(470,174)(470,104)])
link(onEvent2,10709031:doWork2,[])
}
Add(ChanelToIndex,2869401,245,161)
{
Count=6
link(onIndex,965654:doEvent1,[])
}
Add(Hub,1604802,119,119)
{
OutCount=6
link(onEvent1,1012004:doCompare,[(140,125)(140,104)])
link(onEvent2,12563700:doCompare,[(140,132)(140,153)])
link(onEvent3,9309559:doCompare,[(140,139)(140,202)])
link(onEvent4,14070600:doCompare,[(140,146)(140,286)])
link(onEvent5,16095412:doCompare,[(140,153)(140,349)])
link(onEvent6,8236400:doCompare,[(133,489)])
}
Add(If_else,1012004,154,98)
{
@Hint=#1:<|
Op1=String(<)
link(onTrue,2869401:doWork1,[(219,104)(219,167)])
link(Op2,2216596:Var2,[])
AddHint(56,-25,21,13,@Hint)
}
Add(If_else,12563700,154,147)
{
@Hint=#2:PS|
Op1=String(PS)
link(onTrue,2869401:doWork2,[(233,153)(233,174)])
link(Op2,8314231:Var2,[])
AddHint(74,-12,29,13,@Hint)
}
Add(If_else,9309559,154,196)
{
@Hint=#1:>|
Op1=String(>)
link(onTrue,2869401:doWork3,[(219,202)(219,181)])
link(Op2,2270546:Var2,[])
AddHint(-82,7,21,13,@Hint)
}
Add(If_else,14070600,175,280)
{
@Hint=#1:-|
Op1=String(-)
link(onTrue,9109087:doWork1,[(265,286)(265,314)])
link(Op2,2749053:Var2,[(188,270)(167,270)])
AddHint(-99,7,18,13,@Hint)
}
Add(If_else,16095412,175,343)
{
@Hint=#1:+|
Op1=String(+)
link(onTrue,9109087:doWork2,[(237,349)(237,321)])
link(Op2,10988798:Var2,[(188,334)(167,334)])
AddHint(-94,6,21,13,@Hint)
}
Add(If_else,8236400,138,483)
{
@Hint=#2:-+|
Op1=String(-+)
link(onTrue,16562268:doFindName,[])
link(Op2,10988798:Var1,[(151,334)])
AddHint(-69,6,24,13,@Hint)
}
Add(GetDataEx,2270546,161,182)
{
link(Data,8314231:Var1,[(167,160)(158,160)(158,138)])
}
Add(GetDataEx,10988798,161,329)
{
link(Data,2749053:Var1,[(167,293)(158,293)(158,257)])
}
Add(GetDataEx,2216596,161,77)
{
link(Data,15601419:Data,[(167,63)(27,63)])
}
Add(GetDataEx,8314231,161,133)
{
link(Data,2216596:Var1,[(167,115)(158,115)(158,82)])
}
Add(GetDataEx,2749053,161,252)
{
link(Data,2270546:Var1,[(167,216)(161,216)(161,187)])
}
Add(Hub,9346543,259,56)
{
OutCount=4
link(onEvent1,6275424:doWork2,[])
link(onEvent2,14036678:In,[])
}
Add(Registry,2980264,497,420)
{
HKey=2
Key="SOFTWARE\Clients\Media\AIMP\shell\open\command"
link(onRead,14953014:doValue,[])
}
Add(WinExec,10318314,574,476)
{
link(FileName,14953014:Value,[])
}
Add(Memory,14953014,574,420)
{
}
Add(LineBreak,10955059,455,420)
{
link(Out,2980264:doRead,[])
Primary=[14036678,-126,-357]
}
Add(EnumProcess,16562268,329,462)
{
Name="AIMP.exe"
Point(onFind)
Point(onNotFind)
Point(doFindName)
link(onNotFind,10318314:doExec,[])
}
Add(VisualStrings,11638514,511,224)
{
Lines=#4:1141|
}
Add(SendMessage,14059769,490,280)
{
Message=1
LParam=1
Point(Message)
link(onSend,14209029:doCompare,[])
link(Handle,7906447:Var1,[(496,145)])
link(Message,11638514:Text,[])
}
Add(GetDataEx,7906447,504,140)
{
link(Data,1593706:Handle,[])
}
Add(If_else,14209029,560,280)
{
Type=4
Op2=Integer(1)
link(onTrue,963534:doWork1,[(614,286)(614,251)])
link(onFalse,10988644:doEvent1,[])
}
Add(Hub,965654,287,161)
{
OutCount=3
link(onEvent1,943397:doGetString,[])
link(onEvent2,14059769:doSendMessage,[(395,174)(395,286)])
}
Add(HubEx,6275424,392,56)
{
link(onEvent,10296752:doFind,[])
}
Add(If_else,14227396,567,49)
{
Type=4
Op2=Integer(1)
link(onTrue,6862149:doCompare,[])
}
Add(ChanelToIndex,963534,637,245)
{
link(onIndex,9084697:In,[])
}
Add(Hub,10988644,602,287)
{
link(onEvent1,963534:doWork2,[(626,293)(626,258)])
link(onEvent2,6275424:doWork3,[(708,300)(708,164)(396,164)])
}
Add(If_else,6862149,630,49)
{
Op1=Integer(1)
link(onTrue,2897520:In,[])
link(Op2,5543792:Value,[])
}
Add(Memory,5543792,637,0)
{
}
Add(LineBreak,13939870,574,0)
{
link(Out,5543792:doValue,[])
Primary=[9084697,112,245]
}
Add(LineBreak,14454954,434,203)
{
link(Out,10709031:doWork3,[(473,209)])
Primary=[2897520,245,-154]
}
Add(HubEx,10709031,469,175)
{
link(onEvent,11820741:doSendMessage,[])
}
Add(KeyEvent,5135129,308,693)
{
Code=174
link(Handle,2637615:Value,[])
}
Add(Memory,2637615,308,644)
{
Default=Integer(0)
Point(Data)
}
Add(KeyEvent,3828447,364,756)
{
Code=175
link(Handle,4712869:Value,[])
}
Add(Memory,4712869,364,707)
{
Default=Integer(0)
Point(Data)
}
Add(MultiElement,9109087,322,308)
{
}
BEGIN_SDK
Add(EditMulti,9443824,14,14)
{
WorkCount=2
Width=601
Height=452
link(doWork1,2072440:doPrev,[(227,20)(227,83)])
link(doWork2,2072440:doNext,[(207,27)(207,76)])
}
Add(Timer,1847231,154,210)
{
Interval=100
AutoStop=10
link(onTimer,15314805:doEvent1,[])
}
Add(Math,7249571,217,105)
{
OpType=2
Op2=0.01
link(onResult,16759049:doSetVolume7,[])
}
Add(DoData,8073512,273,210)
{
link(onEventData,3565093:doOperation,[])
link(Data,16759049:VolumeLevel,[])
}
Add(Math,3565093,329,210)
{
OpType=2
Op2=100
ResultType=0
link(onResult,12321054:doCompare,[])
}
Add(InlineCode,16759049,273,105)
{
WorkPoints=#12:doSetVolume7|
VarPoints=#11:VolumeLevel|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|63:uses Debug, Share, Windows, Kol, ActiveX, ActiveKOL, KOLComObj;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|9: public|55: procedure doSetVolume7(var _Data:TData; Index:word);|54: procedure VolumeLevel(var _Data:TData; Index:word);|7: end;|0:|5:const|77:CLASS_IMMDeviceEnumerator : TGUID = '{BCDE0395-E52F-467C-8E3D-C4579291692E}';|75:IID_IMMDeviceEnumerator : TGUID = '{A95664D2-9614-4F35-A746-DE8DB63617E6}';|65:IID_IMMDevice : TGUID = '{D666063F-1587-4E43-81F1-B948E807363F}';|75:IID_IMMDeviceCollection : TGUID = '{0BD7A1BE-7A1A-44DB-8397-CC5392387B5E}';|76:IID_IAudioEndpointVolume : TGUID = '{5CDF2C82-841E-4546-9722-0CF74078229A}';|78:IID_IAudioMeterInformation : TGUID = '{C02216F6-8C67-4B5B-9D00-D008E73E0064}';|84:IID_IAudioEndpointVolumeCallback : TGUID = '{657804FA-D6AD-4496-8A60-352752AF4F89}';|0:|32:DEVICE_STATE_ACTIVE = $00000001;|35:DEVICE_STATE_UNPLUGGED = $00000002;|36:DEVICE_STATE_NOTPRESENT = $00000004;|33:DEVICE_STATEMASK_ALL = $00000007;|1: |4:type|21:EDataFlow = TOleEnum;|1: |5:const|20:eRender = $00000000;|21:eCapture = $00000001;|17:eAll = $00000002;|33:EDataFlow_enum_count = $00000003;|1: |4:type|17:ERole = TOleEnum;|1: |5:const|21:eConsole = $00000000;|24:eMultimedia = $00000001;|28:eCommunications = $00000002;|29:ERole_enum_count = $00000003;|1: |4:type|50:IAudioEndpointVolumeCallback = interface(IUnknown)|42:['{657804FA-D6AD-4496-8A60-352752AF4F89}']|4:end;|1: |42:IAudioEndpointVolume = interface(IUnknown)|42:['{5CDF2C82-841E-4546-9722-0CF74078229A}']|100:function RegisterControlChangeNotify(AudioEndPtVol: IAudioEndpointVolumeCallback): Integer; stdcall;|102:function UnregisterControlChangeNotify(AudioEndPtVol: IAudioEndpointVolumeCallback): Integer; stdcall;|57:function GetChannelCount(out PInteger): Integer; stdcall;|92:function SetMasterVolumeLevel(fLevelDB: single; pguidEventContext: PGUID): Integer; stdcall;|98:function SetMasterVolumeLevelScalar(fLevelDB: single; pguidEventContext: PGUID): Integer; stdcall;|70:function GetMasterVolumeLevel(out fLevelDB: single): Integer; stdcall;|76:function GetMasterVolumeLevelScalar(out fLevelDB: single): Integer; stdcall;|112:function SetChannelVolumeLevel(nChannel: Integer; fLevelDB: double; pguidEventContext: PGUID): Integer; stdcall;|118:function SetChannelVolumeLevelScalar(nChannel: Integer; fLevelDB: double; pguidEventContext: PGUID): Integer; stdcall;|90:function GetChannelVolumeLevel(nChannel: Integer; out fLevelDB: double): Integer; stdcall;|94:function GetChannelVolumeLevelScalar(nChannel: Integer; out fLevel: double): Integer; stdcall;|77:function SetMute(bMute: Boolean; pguidEventContext: PGUID): Integer; stdcall;|55:function GetMute(out bMute: Boolean): Integer; stdcall;|88:function GetVolumeStepInfo(pnStep: Integer; out pnStepCount: Integer): Integer; stdcall;|66:function VolumeStepUp(pguidEventContext: PGUID): Integer; stdcall;|68:function VolumeStepDown(pguidEventContext: PGUID): Integer; stdcall;|76:function QueryHardwareSupport(out pdwHardwareSupportMask): Integer; stdcall;|132:function GetVolumeRange(out pflVolumeMindB: double; out pflVolumeMaxdB: double; out pflVolumeIncrementdB: double): Integer; stdcall;|4:end;|1: |44:IAudioMeterInformation = interface(IUnknown)|42:['{C02216F6-8C67-4B5B-9D00-D008E73E0064}']|4:end;|1: |36:IPropertyStore = interface(IUnknown)|4:end;|1: |31:IMMDevice = interface(IUnknown)|42:['{D666063F-1587-4E43-81F1-B948E807363F}']|37:function Activate(const refId: TGUID;|16:dwClsCtx: DWORD;|28:pActivationParams: PInteger;|61:out pEndpointVolume: IAudioEndpointVolume): Hresult; stdCall;|98:function OpenPropertyStore(stgmAccess: DWORD; out ppProperties: IPropertyStore): Hresult; stdcall;|55:function GetId(out ppstrId: PLPWSTR): Hresult; stdcall;|56:function GetState(out State: Integer): Hresult; stdcall;|4:end;|1: |1: |41:IMMDeviceCollection = interface(IUnknown)|42:['{0BD7A1BE-7A1A-44DB-8397-CC5392387B5E}']|4:end;|1: |43:IMMNotificationClient = interface(IUnknown)|42:['{7991EEC9-7E89-4D85-8390-6C703CEC60C0}']|4:end;|1: |41:IMMDeviceEnumerator = interface(IUnknown)|42:['{A95664D2-9614-4F35-A746-DE8DB63617E6}']|125:function EnumAudioEndpoints(dataFlow: EDataFlow; deviceState: SYSUINT; DevCollection: IMMDeviceCollection): Hresult; stdcall;|99:function GetDefaultAudioEndpoint(EDF: SYSUINT; ER: SYSUINT; out Dev :IMMDevice ): Hresult; stdcall;|75:function GetDevice(pwstrId: pointer; out Dev: IMMDevice): HResult; stdcall;|96:function RegisterEndpointNotificationCallback(pClient: IMMNotificationClient): Hresult; stdcall;|4:end;|3: |14:implementation|0:|32:procedure SetVolume7(L: double);|41:var endpointVolume: IAudioEndpointVolume;|38:deviceEnumerator: IMMDeviceEnumerator;|25:defaultDevice: IMMDevice;|5:begin|8: try|119: CoCreateInstance(CLASS_IMMDeviceEnumerator, nil, CLSCTX_INPROC_SERVER, IID_IMMDeviceEnumerator, deviceEnumerator);|80: deviceEnumerator.GetDefaultAudioEndpoint(eRender, eConsole, defaultDevice);|97: defaultDevice.Activate(IID_IAudioEndpointVolume, CLSCTX_INPROC_SERVER, nil, endpointVolume);|39: if endpointVolume = nil then Exit;|56: endpointVolume.SetMasterVolumeLevelScalar(L, nil); |16: except end;|4:end;|0:|36:procedure GetVolume7(var L: single);|41:var endpointVolume: IAudioEndpointVolume;|38:deviceEnumerator: IMMDeviceEnumerator;|25:defaultDevice: IMMDevice;|5:begin|8: try|119: CoCreateInstance(CLASS_IMMDeviceEnumerator, nil, CLSCTX_INPROC_SERVER, IID_IMMDeviceEnumerator, deviceEnumerator);|80: deviceEnumerator.GetDefaultAudioEndpoint(eRender, eConsole, defaultDevice);|97: defaultDevice.Activate(IID_IAudioEndpointVolume, CLSCTX_INPROC_SERVER, nil, endpointVolume);|39: if endpointVolume = nil then Exit;|51: endpointVolume.GetMasterVolumeLevelScalar(L); |16: except end;|4:end;|0:|35:procedure THiAsmClass.doSetVolume7;|12:var L: real;|5:begin|24: L := ToReal(_Data);|32: if L < 0.0 then l := 0 else|28: if L > 1.0 then L := 1;|19: SetVolume7(L);|4:end;|0:|34:procedure THiAsmClass.VolumeLevel;|13:var L:single;|5:begin|19: GetVolume7(L);|22: dtReal(_Data, L);|4:end;|0:|4:end.|
}
Add(DoData,5675330,329,154)
{
link(onEventData,2072440:doValue,[(369,160)(369,90)])
link(Data,3565093:Result,[(335,143)(312,143)(312,254)(335,254)])
}
Add(If_else,12321054,371,210)
{
Type=4
Op2=Integer(1)
link(onTrue,9294492:doEvent1,[])
}
Add(CounterEx,2072440,392,70)
{
Default=1
Point(doPrev)
Point(doValue)
link(onNext,7249571:doOperation,[(464,76)(464,95)(205,95)(205,111)])
}
Add(Hub,15314805,203,210)
{
link(onEvent1,8073512:doData,[])
link(onEvent2,8502191:doWork,[(231,223)(231,307)])
}
Add(Message,7949295,483,308)
{
Message="Произошёл сбой в модуле "Звук"\r\nНынешнее значение звука неизвестно \r\nЗадать значение звука вручную?"
Caption="ARCL"
Type=2
Icon=4
Point(onYES)
}
Add(If_else,15695206,378,301)
{
Op2=Integer(10)
link(onTrue,6437856:doEvent1,[])
}
Add(CounterEx,4027420,329,301)
{
Max=10
Point(doReset)
link(onNext,15695206:doCompare,[])
}
Add(Hub,9294492,420,210)
{
OutCount=3
link(onEvent1,5675330:doData,[(443,216)(443,195)(296,195)(296,160)])
link(onEvent2,1847231:doTimer,[(505,223)(505,264)(142,264)(142,216)])
}
Add(Hub,6437856,427,301)
{
link(onEvent1,4027420:doReset,[(452,307)(452,354)(317,354)(317,314)])
link(onEvent2,7949295:doMessage,[])
}
Add(Check,8502191,252,301)
{
Check=1
link(onEvent,4027420:doNext,[])
}
END_SDK
END_SDK
Add(GetDataEx,9006760,203,490)
{
link(Data,12239910:Var,[])
}
Add(If_else,2959033,147,539)
{
Op2=Integer(1)
link(onTrue,7026629:doEvent1,[(212,545)(212,559)])
link(onFalse,16129343:doEvent1,[(191,552)(191,510)])
link(Op1,3690736:Text,[])
}
Add(LineBreak,2677873,182,581)
{
link(Out,7026629:doFind,[(228,587)(228,566)])
Primary=[5046149,133,-427]
}
Add(VisualStrings,3690736,147,483)
{
Lines=#1:1|
}


Редактировалось 1 раз(а), последний 2017-07-05 15:09:54
карма: 0
私はアニメが大好き
0
vip
#1.1контекстная реклама от партнеров
Ответов: 1925
Рейтинг: 172
#2: 2017-07-05 23:14:55 ЛС | профиль | цитата
Как IC вообще у вас запускается? Там же:
C:\Program Files\HiAsm_AltBuild\Elements\delphi\code\hiInlineCode_154FDE0.pas(143) Error: Illegal character in input file: '<' ($8B)

C:\Program Files\HiAsm_AltBuild\Elements\delphi\code\hiInlineCode_154FDE0.pas(144) Error: Illegal character in input file: '>' ($9B)

карма: 9
0
Ответов: 138
Рейтинг: 2
#3: 2017-07-06 08:12:56 ЛС | профиль | цитата
хм она криво на форум "встала"

Add(InlineCode,16759049,273,105)
{
WorkPoints=#12:doSetVolume7|
VarPoints=#11:VolumeLevel|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|63:uses Debug, Share, Windows, Kol, ActiveX, ActiveKOL, KOLComObj;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|9: public|55: procedure doSetVolume7(var _Data:TData; Index:word);|54: procedure VolumeLevel(var _Data:TData; Index:word);|7: end;|0:|5:const|77:CLASS_IMMDeviceEnumerator : TGUID = '{BCDE0395-E52F-467C-8E3D-C4579291692E}';|75:IID_IMMDeviceEnumerator : TGUID = '{A95664D2-9614-4F35-A746-DE8DB63617E6}';|65:IID_IMMDevice : TGUID = '{D666063F-1587-4E43-81F1-B948E807363F}';|75:IID_IMMDeviceCollection : TGUID = '{0BD7A1BE-7A1A-44DB-8397-CC5392387B5E}';|76:IID_IAudioEndpointVolume : TGUID = '{5CDF2C82-841E-4546-9722-0CF74078229A}';|78:IID_IAudioMeterInformation : TGUID = '{C02216F6-8C67-4B5B-9D00-D008E73E0064}';|84:IID_IAudioEndpointVolumeCallback : TGUID = '{657804FA-D6AD-4496-8A60-352752AF4F89}';|0:|32:DEVICE_STATE_ACTIVE = $00000001;|35:DEVICE_STATE_UNPLUGGED = $00000002;|36:DEVICE_STATE_NOTPRESENT = $00000004;|33:DEVICE_STATEMASK_ALL = $00000007;|1: |4:type|21:EDataFlow = TOleEnum;|1: |5:const|20:eRender = $00000000;|21:eCapture = $00000001;|17:eAll = $00000002;|33:EDataFlow_enum_count = $00000003;|1: |4:type|17:ERole = TOleEnum;|1: |5:const|21:eConsole = $00000000;|24:eMultimedia = $00000001;|28:eCommunications = $00000002;|29:ERole_enum_count = $00000003;|1: |4:type|50:IAudioEndpointVolumeCallback = interface(IUnknown)|42:['{657804FA-D6AD-4496-8A60-352752AF4F89}']|4:end;|1: |42:IAudioEndpointVolume = interface(IUnknown)|42:['{5CDF2C82-841E-4546-9722-0CF74078229A}']|100:function RegisterControlChangeNotify(AudioEndPtVol: IAudioEndpointVolumeCallback): Integer; stdcall;|102:function UnregisterControlChangeNotify(AudioEndPtVol: IAudioEndpointVolumeCallback): Integer; stdcall;|57:function GetChannelCount(out PInteger): Integer; stdcall;|92:function SetMasterVolumeLevel(fLevelDB: single; pguidEventContext: PGUID): Integer; stdcall;|98:function SetMasterVolumeLevelScalar(fLevelDB: single; pguidEventContext: PGUID): Integer; stdcall;|70:function GetMasterVolumeLevel(out fLevelDB: single): Integer; stdcall;|76:function GetMasterVolumeLevelScalar(out fLevelDB: single): Integer; stdcall;|112:function SetChannelVolumeLevel(nChannel: Integer; fLevelDB: double; pguidEventContext: PGUID): Integer; stdcall;|118:function SetChannelVolumeLevelScalar(nChannel: Integer; fLevelDB: double; pguidEventContext: PGUID): Integer; stdcall;|90:function GetChannelVolumeLevel(nChannel: Integer; out fLevelDB: double): Integer; stdcall;|94:function GetChannelVolumeLevelScalar(nChannel: Integer; out fLevel: double): Integer; stdcall;|77:function SetMute(bMute: Boolean; pguidEventContext: PGUID): Integer; stdcall;|55:function GetMute(out bMute: Boolean): Integer; stdcall;|88:function GetVolumeStepInfo(pnStep: Integer; out pnStepCount: Integer): Integer; stdcall;|66:function VolumeStepUp(pguidEventContext: PGUID): Integer; stdcall;|68:function VolumeStepDown(pguidEventContext: PGUID): Integer; stdcall;|76:function QueryHardwareSupport(out pdwHardwareSupportMask): Integer; stdcall;|132:function GetVolumeRange(out pflVolumeMindB: double; out pflVolumeMaxdB: double; out pflVolumeIncrementdB: double): Integer; stdcall;|4:end;|1: |44:IAudioMeterInformation = interface(IUnknown)|42:['{C02216F6-8C67-4B5B-9D00-D008E73E0064}']|4:end;|1: |36:IPropertyStore = interface(IUnknown)|4:end;|1: |31:IMMDevice = interface(IUnknown)|42:['{D666063F-1587-4E43-81F1-B948E807363F}']|37:function Activate(const refId: TGUID;|16:dwClsCtx: DWORD;|28:pActivationParams: PInteger;|61:out pEndpointVolume: IAudioEndpointVolume): Hresult; stdCall;|98:function OpenPropertyStore(stgmAccess: DWORD; out ppProperties: IPropertyStore): Hresult; stdcall;|55:function GetId(out ppstrId: PLPWSTR): Hresult; stdcall;|56:function GetState(out State: Integer): Hresult; stdcall;|4:end;|1: |1: |41:IMMDeviceCollection = interface(IUnknown)|42:['{0BD7A1BE-7A1A-44DB-8397-CC5392387B5E}']|4:end;|1: |43:IMMNotificationClient = interface(IUnknown)|42:['{7991EEC9-7E89-4D85-8390-6C703CEC60C0}']|4:end;|1: |41:IMMDeviceEnumerator = interface(IUnknown)|42:['{A95664D2-9614-4F35-A746-DE8DB63617E6}']|125:function EnumAudioEndpoints(dataFlow: EDataFlow; deviceState: SYSUINT; DevCollection: IMMDeviceCollection): Hresult; stdcall;|99:function GetDefaultAudioEndpoint(EDF: SYSUINT; ER: SYSUINT; out Dev :IMMDevice ): Hresult; stdcall;|75:function GetDevice(pwstrId: pointer; out Dev: IMMDevice): HResult; stdcall;|96:function RegisterEndpointNotificationCallback(pClient: IMMNotificationClient): Hresult; stdcall;|4:end;|3: |14:implementation|0:|32:procedure SetVolume7(L: double);|41:var endpointVolume: IAudioEndpointVolume;|38:deviceEnumerator: IMMDeviceEnumerator;|25:defaultDevice: IMMDevice;|5:begin|8: try|119: CoCreateInstance(CLASS_IMMDeviceEnumerator, nil, CLSCTX_INPROC_SERVER, IID_IMMDeviceEnumerator, deviceEnumerator);|80: deviceEnumerator.GetDefaultAudioEndpoint(eRender, eConsole, defaultDevice);|97: defaultDevice.Activate(IID_IAudioEndpointVolume, CLSCTX_INPROC_SERVER, nil, endpointVolume);|39: if endpointVolume = nil then Exit;|56: endpointVolume.SetMasterVolumeLevelScalar(L, nil); |16: except end;|4:end;|0:|36:procedure GetVolume7(var L: single);|41:var endpointVolume: IAudioEndpointVolume;|38:deviceEnumerator: IMMDeviceEnumerator;|25:defaultDevice: IMMDevice;|5:begin|8: try|119: CoCreateInstance(CLASS_IMMDeviceEnumerator, nil, CLSCTX_INPROC_SERVER, IID_IMMDeviceEnumerator, deviceEnumerator);|80: deviceEnumerator.GetDefaultAudioEndpoint(eRender, eConsole, defaultDevice);|97: defaultDevice.Activate(IID_IAudioEndpointVolume, CLSCTX_INPROC_SERVER, nil, endpointVolume);|39: if endpointVolume = nil then Exit;|51: endpointVolume.GetMasterVolumeLevelScalar(L); |16: except end;|4:end;|0:|35:procedure THiAsmClass.doSetVolume7;|12:var L: real;|5:begin|24: L := ToReal(_Data);|32: if L < 0.0 then l := 0 else|28: if L > 1.0 then L := 1;|19: SetVolume7(L);|4:end;|0:|34:procedure THiAsmClass.VolumeLevel;|13:var L:single;|5:begin|19: GetVolume7(L);|22: dtReal(_Data, L);|4:end;|0:|4:end.|
}

вот этот код работает
карма: 0
私はアニメが大好き
0
Ответов: 537
Рейтинг: 14
#4: 2017-07-06 08:38:09 ЛС | профиль | цитата
Вот еще IC записывает и отображает уровень звука с микрофона

Add(BASS_RecordCenter,14215196,224,105)
{
link(onInit,5066922:doStart,[])
}
Add(BASS_RecordStart,5066922,273,105)
{
Freq=16000
Mode=1
PColor(Freq,16711680)
link(onData,3584596:doRecData,[])
}
Add(MainForm,13083241,175,91)
{
Left=20
Top=105
Width=135
link(onCreate,14215196:doInit,[])
}
Add(InlineCode,3584596,329,105)
{
WorkPoints=#37:doStart=Установка начальных значений |35:doRecData=Потоковые звуковые данные|
EventPoints=#24:onSignalUpp=Выше задания|24:onSignalLow=Ниже задания|26:onMax=Максимальный уровень|
DataPoints=#34:UpperLimit=Задание верхнего уровня|33:LowerLimit=Задание нижнего уровня|39:SmoothingFactor=Коэффициент сглаживания|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|22: _SoundVol:double; |6: |9: public|25: _data_Data:THI_Event;|57: UpperLimit:THI_Event; //Задание верхнего уровня|56: LowerLimit:THI_Event; //Задание нижнего уровня|57: SmoothingFactor:THI_Event; //Коэффициент сглаживания|46: onSignalUpp:THI_Event; //Выше задания|46: onSignalLow:THI_Event; //Ниже задания|54: onMax:THI_Event; //Максимальный уровень|4: |51: procedure doStart(var _Data:TData; Index:word);|53: procedure doRecData(var _Data:TData; Index:word);|4:end;|0:|14:implementation|0:|31:procedure THiAsmClass.doStart; |6: begin|15: _SoundVol:=0;|5: end;|0:|32:procedure THiAsmClass.doRecData;|17: var St:PStream; |18: len:cardinal;|55: _Sound,SoundAbs,_LowerLimit,_UpperLimit:smallint; |15: i:integer;|31: _Smooth, _NoSmooth:double;|6: begin|79: St := ReadStream(_data,_data_Data,nil); //Читаем звуковой поток ~0.1 сек.|71: if St = nil then Exit; //Выход, если нет данных.|101: len := St.Size div 2; //Количество дискретных значений в потоке (по 2 байта).|86: _Smooth:= ReadReal(_data,SmoothingFactor,0.999); //Читаем коэффициент сглаживания|27: _NoSmooth:=1-_Smooth; |81: _UpperLimit:= ReadInteger(_data,UpperLimit,8000); //Читаем задание максимума|86: _LowerLimit:= ReadInteger(_data,LowerLimit,4000); //Читаем задание минимума |26: for i:=0 to len-1 do|12: begin|84: St.Read(_Sound,2); //Читаем 2 байта в переменную _Sound |75: if _Sound<0 then //Детектируем звуковые данные|30: SoundAbs:= -_Sound|33: else SoundAbs:=_Sound;|96: _SoundVol:=_SoundVol*_Smooth+SoundAbs*_NoSmooth; //Сглаживаем результирующее значение|11: end;|85: if _SoundVol>_UpperLimit then _hi_OnEvent(onSignalUpp,1) //Выше верхнего уровня|85: else _hi_OnEvent(onSignalUpp,0); //Ниже верхнего уровня|5: |84: if _SoundVol<_LowerLimit then _hi_OnEvent(onSignalLow,1) //Ниже нижнего уровня|84: else _hi_OnEvent(onSignalLow,0); //Выше нижнего уровня|5: |79: _hi_OnEvent(onMax,_SoundVol); //Выводим текущее значение для индикации |5: end;|1: |4:end.|
link(onMax,5705136:doPosition,[])
}
Add(ProgressBar,5705136,392,119)
{
Left=40
Top=5
Width=40
Height=255
Color=32768
Max=10000
Kind=1
ProgressColor=65280
}
карма: 4

0
Ответов: 138
Рейтинг: 2
#5: 2017-07-07 17:01:07 ЛС | профиль | цитата
предполагаю что со звуком на 7ой винде придётся попарится?
карма: 0
私はアニメが大好き
0
Ответов: 91
Рейтинг: 0
#6: 2017-07-17 18:24:45 ЛС | профиль | цитата
Уже парился, нашел http://www.nirsoft.net/utils/sound_volume_view.html. Можно рулить звуком.
карма: 0

0
Ответов: 497
Рейтинг: 16
#7: 2017-07-17 23:12:42 ЛС | профиль | цитата
на 10 полет нормальный
карма: 1
        ]  
0
7
Сообщение
...
Прикрепленные файлы
(файлы не залиты)