Driving the PC master sound volume

Published on by Yousfi Benameur

    

this code makes some works around the system master sound volume.it runs on the systray (traybar).
its known that the old XP winAPI waveOutGetVolume and WaveOutSetVolume to get/set the master audio volume  dont work for OS vista and above.
Actually ,each device on PC have its independant control of volume.
VFP9 have no solution actually to dig into modern interfaces as coreAudio APIs.I dont found any COM dll to embed it into the vfp object browser.
i found  for that goal a small DOS utility as exe (32ko) to get the master audio volume  in this link: https://sourceforge.net/projects/mplayer-edl/files/adjust_get_current_system_volume_vista_plus.exe/download
(and can also set it-here i used only the get volume).

the code below can :
 -get the current master volume of the system.(its the main difficulty)
 -increase/decrease/mute/unMute the master volume sound.(see the contextuel systray menu).mute/unMute uses the same code alternativelly(as switch).
  to adjust the volume mouseWheel on the green area and you see the value (increase or decrease).
 -fire the system sndvol.exe (in 32 bits it was old sndvol32.exe.no longer actually).can use arrow/up,down or pgup,down to move the sliders (even with shell.sendkeys or keybd api).

*the code re creates the yget_set_sound.exe pointed above and erases it when release app.
*it creates also the systray icon with a contexuel menu.
*systray class must also in source folder (set path dont work correctly !).the code copy the systray.vcx/vct here for a prg use.( can copy them manually to source folder).
(its needed only when using a prg file (for exe its compiled inside).
of course the goal is to compile an utility under hand to drive the master sound volume for any PC.
*Note : the code shows also how to embed a big litteral string ( as a converted exe) inside text /endtext (this is new trick cutting the vfp limitation to 8192 octets on a litteral string (thanks to Marco plaza help.with this can go to 16.7 Mo and more inside text/endtext with clause "pretext 1+2+4+8").i give nextly a code below to achieve/demonstrate this (in another post).
*the code also shows how to return value from any DOS executable to vfp.

[Post 268]


Click on code to select [then copy] -click outside to deselect

*1* created on 31 of march 2018
*run the code and read the summary help.

If ! _vfp.StartMode=0
On Shutdown Quit
Endi
clear all

set safe off
set talk off
_screen.windowstate=1
local m.yrep
m.yrep=Justpath(Sys(16,1))
Set Defa To  addbs(m.yrep)

if  _vfp.startmode=0 and !file("systray.vcx") and ! file("systray.vct")
try
copy file (home(1)+"samples\solution\toledo\systray.vcx") to  (m.yrep)
copy file (home(1)+"samples\solution\toledo\systray.vct") to  (m.yrep)
catch
messagebox("Copy systray.vcx/vct failed (class in use)- can copy them manaually.",16+4096,'',1300)
endtry
inke(2)
endi

=yicon()
=ybigstr()
inke(2)

if !file("yget_set_sound.exe")
messagebox("yget_set_sound.exe not created...canceling!",16+4096,1300)
return .f.
endi

do ydeclare

Publi oSystray
oSystray = Createobject("oSystray")

*#define NIIF_NOSOUND    0x00000010	&& Windows XP and later.
m.oSystray.ShowBalloonTip('System Volume functions',"yVolSound",0,2)  && shellversion>=5

Read Events

Define Class oSystray As Systray Of  "Systray.VCX"
	IconFile ="ySound.ico"       &&home(1)+"GRAPHICS\ICONS\MISC\VOLUME01.ICO"
	TipText = "Adjust Volume"
	MenuText = "1;Adjust Volume;2;Mute;3;UnMute;4;SndVol;5;Current volume;6;Help;7;Exit"

procedure iconclickEvent
 local m.myvar
		text to m.myvar noshow
		yget_set_sound.exe >asup.txt
		endtext
		strtofile(m.myvar,"ybat.bat")
		
		try
		result = ShellExecute(0, "open", "ybat.bat","","",0)
		inke(0.2)
		local m.response
		m.response=filetostr("asup.txt")
		if !empty(m.response)
		this.tipText="Current volume:"+m.response +" %"
		messagebox( "Current volume= "+m.response+"%" ,0+32+4096,1300)
		endi
		erase ybat.bat		
		erase asup.txt
		catch
		endtry
endproc

	Procedure ProcessMenuEvent
	Lparameters nMenuItemID
	Do Case
	Case nMenuItemID = 0
* User cleared the menu. Do nothing.

	case nMenuItemID=1
PUBLIC oform
oform=NEWOBJECT("yvolSound")
   with oform as form
   .top=sysmetric(2)-.height-34
*   .left=
   endwith
oform.Show

	Case nMenuItemID=2
#Define  APPCOMMAND_VOLUME_MUTE  0x80000
#Define  APPCOMMAND_VOLUME_UP  0xA0000
#Define  APPCOMMAND_VOLUME_DOWN  0x90000
#Define  WM_APPCOMMAND 0x319
SendMessage(_vfp.HWnd, WM_APPCOMMAND, _vfp.HWnd, APPCOMMAND_VOLUME_MUTE)

Case nMenuItemID=3
#Define  APPCOMMAND_VOLUME_MUTE  0x80000
#Define  APPCOMMAND_VOLUME_UP  0xA0000
#Define  APPCOMMAND_VOLUME_DOWN  0x90000
#Define  WM_APPCOMMAND 0x319
SendMessage(_vfp.HWnd, WM_APPCOMMAND, _vfp.HWnd, APPCOMMAND_VOLUME_DOWN)

   Case nMenuItemId=4
   try
   run/n sndvol
   catch
   messagebox("sndvol.exe not found!",16+4096)
   endtry

   case nMenuItemId=5
   local m.myvar
		text to m.myvar noshow
		yget_set_sound.exe >asup.txt
		endtext
		strtofile(m.myvar,"ybat.bat")
		
       try
		result = ShellExecute(0, "open", "ybat.bat","","",0)
		inke(0.5)
		local response
		m.response=filetostr("asup.txt")
		if !empty(m.response)
		messagebox( "Current volume= "+m.response+"%" ,0+32+4096,1300)
		endi
		erase ybat.bat	
		erase asup.txt
       catch
       endtry

     Case nMenuItemId=6
     yhelp()

	Case nMenuItemID=7
		This.RemoveIconFromSystray()	
		this.ClearIconList()	
		osystray=null
		release osystray	
    erase asup.txt
		erase ysound.ico	
		erase yget_set_sound.exe	
	  		
		Clear Events		
	Endcase
	
	Endproc
Enddefine

PROCEDURE ydeclare
	    DECLARE INTEGER ReleaseCapture IN WIN32API
		DECLARE INTEGER SendMessage IN WIN32API INTEGER, INTEGER, INTEGER, INTEGER
		Declare Integer SendMessage In user32;
					INTEGER HWnd,;
					INTEGER Msg,;
					INTEGER wParam,;
					INTEGER Lparam

	DECLARE INTEGER ShellExecute IN SHELL32.DLL INTEGER nWinHandle,;
	STRING cOperation,;
	STRING cFileName,;
	STRING cParameters,;
	STRING cDirectory,;
	INTEGER nShowWindow
ENDPROC

*!*
DEFINE CLASS yvolsound AS form
	BorderStyle = 0
	Top = 638
	Left = 1217
	Height = 60
	Width = 130
	ShowWindow = 2
	Caption = ""
	ControlBox = .F.
	MaxButton = .F.
	MinButton = .T.
	AlwaysOnTop = .T.
	BackColor = RGB(144,238,144)
	showtips=.t.
	Name = "Form1"

	ADD OBJECT label1 AS label WITH ;
		AutoSize = .F., ;
		FontBold = .T., ;
		FontSize = 32, ;
		Alignment = 2, ;
		BackStyle = 0, ;
		Caption = "", ;
		Height = 59, ;
		Left = 2, ;
		Top = 1, ;
		Width = 114, ;
		ForeColor = RGB(255,0,0), ;
		tooltiptext="Mousewheel to adjust vol",;
		Name = "Label1"
	
	Add Object shp as shape with ;
	left=117,;
	width=12,;
	height=12,;
	top=27,;
	curvature=99,;
	backcolor=rgb(128,0,64),;
	tooltiptext="mute/unMute" ,;
	mousepointer=15,;
	name="shp"	

	ADD OBJECT label2 AS label WITH ;
		AutoSize = .T., ;
		FontBold = .T., ;
		FontSize = 11, ;
		BackStyle = 0, ;
		BorderStyle = 0, ;
		Caption = "X", ;
		Height = 20, ;
		Left = 119, ;
		MousePointer = 15, ;
		Top = 0, ;
		Width = 12, ;
		ForeColor = RGB(255,0,0), ;
		Name = "Label2"

	PROCEDURE getvol
		local m.myvar
		text to m.myvar noshow
		yget_set_sound.exe >asup.txt
		endtext
		strtofile(m.myvar,"ybat.bat")
		
	    try
		result = ShellExecute(0, "open", "ybat.bat","","",0)
		inke(0.2)
		local m.response
		m.response=filetostr("asup.txt")
		if !empty(m.response)
		thisform.label1.caption=m.response
		endi
		erase ybat.bat
		erase asup.txt
		catch
		endtry	
	ENDPROC

	PROCEDURE Activate
		thisform.getvol()
	ENDPROC

	PROCEDURE Init
		sys(2002)
		Thisform.TitleBar=0
		This.Width=60
		set defa to addbs(justpath(sys(16,1)))
		set safe off		
	ENDPROC

	PROCEDURE KeyPress
		LPARAMETERS nKeyCode, nShiftAltCtrl
		if nkeycode=27
		thisform.release
		endi
	ENDPROC	

	PROCEDURE Destroy
		ospeak=null
		release ospeak
		sys(2002,1)
	ENDPROC

	PROCEDURE label1.DblClick
		thisform.release
	ENDPROC

	PROCEDURE label1.MouseWheel
		LPARAMETERS nDirection, nShift, nXCoord, nYCoord
		#Define  APPCOMMAND_VOLUME_MUTE  0x80000
		#Define  APPCOMMAND_VOLUME_UP  0xA0000
		#Define  APPCOMMAND_VOLUME_DOWN  0x90000
		#Define  WM_APPCOMMAND 0x319

		 do case		
		 case  ndirection<0
		 SendMessage(_vfp.HWnd, WM_APPCOMMAND, _vfp.HWnd, APPCOMMAND_VOLUME_UP)

		case ndirection>0
		SendMessage(_vfp.HWnd, WM_APPCOMMAND, _vfp.HWnd, APPCOMMAND_VOLUME_DOWN)

		endcase
		thisform.getvol()
	ENDPROC

	PROCEDURE label1.MouseDown
		LPARAMETERS nButton, nShift, nXCoord, nYCoord
		lnHandle = THISFORM.HWND    &&getFocus()
		param1 = 274
		param2 = 0xF012		
		thisform.mousepointer=15
		bb=ReleaseCapture()
		bb=SendMessage(lnHandle, param1, param2,0)
		thisform.mousepointer=0
	ENDPROC
	
	Procedure mousewheel
	LPARAMETERS nDirection, nShift, nXCoord, nYCoord
	thisform.label1.mousewheel(nDirection)
	endproc

	PROCEDURE label2.Click
		thisform.release
	ENDPROC
	
	procedure shp.click
	#Define  APPCOMMAND_VOLUME_MUTE  0x80000
	 SendMessage(_vfp.HWnd, WM_APPCOMMAND, _vfp.HWnd, APPCOMMAND_VOLUME_MUTE)
	endproc
			
ENDDEFINE
*
*-- EndDefine: yvolSound


function yhelp()
local m.myvar
text to m.myvar noshow
this code makes some works around the system master sound volume.it runs on the systray (traybar).
its known that the old winAPI waveOutGetVolume and WaveOutSetVolume to get/set the master audio volume  dont work for OS vista and above.
Actually ,each device on PC have its independant control of volume
VFP9 have no solution actually to dig into modern interfaces as coreAudio APIs.
i found  for that goal a small DOS utility as exe (32ko) to get the master audio volume  in this link: https://sourceforge.net/projects/mplayer-edl/files/adjust_get_current_system_volume_vista_plus.exe/download
(and can also set it).

the code below can :
 -get the current master volume of the system.
 -increase/decrease/mute/unMute the master volume sound.(see the contextuel systray menu).
  to adjust the volume mouseWheel on the green area and you see the value (increase or decrease).
 -fire the system sndvol.exe (in 32 bits it was old sndvol32.exe.no longer actually).can use arrow/up,down or pgup,down to move the sliders (even with shell.sendkeys or keybd api).

*the code re creates the yget_set_sound.exe pointed above and erases it when release app.
*it creates also the systray icon with a contexuel menu.
*systray class must also in source folder (set path dont work correctly !).the code copy the systray.vcx/vct here for a prg use. if fails copy them manually to source folder.
(its needed only when using a prg file (for exe its compiled inside).
of course the goal is to compile an utility under hand to drive the master soun volume for any PC.
endtext
local oshell
oshell = Createobject('WScript.Shell')
oshell.Popup(m.myvar,0, 'Summary help', 0+32+4096)
oshell=Null
endfunc

function ybigstr()
	local file, filebin
	m.file=[yget_set_sound.exe]
	if file(m.file)
		return m.file
	endif

		*-  file yget_set_sound.exe 32ko is stored here a&s a big string inside text/endtext with a special trick avoiding vfp capacity limit.
text to m.filebin noshow pretext 1+2+4+8
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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBgAAAAAAAAAAAAADBkAAD8YAAAkGAAAAAAAAAAAAAAmGQAADxhAADsYAAAAAAAAAAAAACwZAAAmGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqGEAAMBhAADYYQAA5mEAAPRhAAAEYgAAGGIAACpiAAA6YgAAVmIAAG5iAAB+YgAAnGIAAKpiAAC8YgAAAAAAAMxiAADcYgAA7GIAAPpiAAAMYwAAFmMAAB5jAAAoYwAANGMAAEBjAABIYwAAUmMAAFpjAABkYwAAbGMAAHZjAACAYwAAimMAAJRjAACcYwAApmMAALBjAAAAAAAAvGMAANBjAADgYwAAAAAAAKhhAADAYQAA2GEAAOZhAAD0YQAABGIAABhiAAAqYgAAOmIAAFZiAABuYgAAfmIAAJxiAACqYgAAvGIAAAAAAADMYgAA3GIAAOxiAAD6YgAA
DGMAABZjAAAeYwAAKGMAADRjAABAYwAASGMAAFJjAABaYwAAZGMAAGxjAAB2YwAAgGMAAIpjAACUYwAAnGMAAKZjAACwYwAAAAAAALxjAADQYwAA4GMAAAAAAADPAERlbGV0ZUNyaXRpY2FsU2VjdGlvbgDsAEVudGVyQ3JpdGljYWxTZWN0aW9uAAAXAUV4aXRQcm9jZXNzAGABRnJlZUxpYnJhcnkA/gFHZXRMYXN0RXJyb3IAABECR2V0TW9kdWxlSGFuZGxlQQAAQQJHZXRQcm9jQWRkcmVzcwAAnwJHZXRWZXJzaW9uRXhBAN4CSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbgAuA0xlYXZlQ3JpdGljYWxTZWN0aW9uAAAxA0xvYWRMaWJyYXJ5QQAAdARTZXRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIAlQRUbHNHZXRWYWx1ZQC9BFZpcnR1YWxQcm90ZWN0AAC/BFZpcnR1YWxRdWVyeQAANwBfX2dldG1haW5hcmdzAE0AX19wX19lbnZpcm9uAABPAF9fcF9fZm1vZGUAAGMAX19zZXRfYXBwX3R5cGUAAJMAX2NleGl0AAAKAV9pb2IAAH8BX29uZXhpdACqAV9zZXRtb2RlAAAaAl93aW5tYWpvcgBHAmFib3J0AE4CYXRleGl0AABPAmF0b2YAAFMCY2FsbG9jAABxAmZyZWUAAHkCZndyaXRlAACqAm1lbWNweQAArAJtZW1zZXQAALECcHJpbnRmAAC0AnB1dHMAAMICc2lnbmFsAADLAnN0cmNtcAAA7AJ2ZnByaW50ZgAADABDb0NyZWF0ZUluc3RhbmNlAAAlAENvSW5pdGlhbGl6ZQAASABDb1VuaW5pdGlhbGl6ZQAAAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAABLRVJORUwzMi5kbGwAAAAAFGAAABRgAAAUYAAAFGAAABRgAAAUYAAAFGAAABRgAAAUYAAAFGAAABRgAAAUYAAAFGAAABRgAAAUYAAAFGAAABRgAAAUYAAAFGAAABRgAAAUYAAAFGAAAG1zdmNydC5kbGwAAChgAAAoYAAAKGAAAE9MRTMyLmRsbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAF0AAABdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGYBAAByAQAAIUEAABHBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAAgAAAAAAgQwAAEYMAABfX0NUT1JfTElTVF9fAGMMAABfX0RUT1JfTElTVF9fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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Q0hfUFJFRElDVElPTl9ISU5UUwAFCFg4Nl9UVU5FX0RPVUJMRV9XSVRIX0FERAAGCFg4Nl9UVU5FX1VTRV9TQUhGAAcIWDg2X1RVTkVfTU9WWAAICFg4Nl9UVU5FX1BBUlRJQUxfUkVHX1NUQUxMAAkIWDg2X1RVTkVfUEFSVElBTF9GTEFHX1JFR19TVEFMTAAKCFg4Nl9UVU5FX1VTRV9ISU1PREVfRklPUAALCFg4Nl9UVU5FX1VTRV9TSU1PREVfRklPUAAMCFg4Nl9UVU5FX1VTRV9NT1YwAA0IWDg2X1RVTkVfVVNFX0NMVEQADghYODZfVFVORV9VU0VfWENIR0IADwhYODZfVFVORV9TUExJVF9MT05HX01PVkVTABAIWDg2X1RVTkVfUkVBRF9NT0RJRllfV1JJVEUAEQhYODZfVFVORV9SRUFEX01PRElGWQASCFg4Nl9UVU5FX1BST01PVEVfUUlNT0RFABMIWDg2X1RVTkVfRkFTVF9QUkVGSVgAFAhYODZfVFVORV9TSU5HTEVfU1RSSU5HT1AAFQhYODZfVFVORV9RSU1PREVfTUFUSAAWCFg4Nl9UVU5FX0hJTU9ERV9NQVRIABcIWDg2X1RVTkVfUFJPTU9URV9RSV9SRUdTABgIWDg2X1RVTkVfUFJPTU9URV9ISV9SRUdTABkIWDg2X1RVTkVfQUREX0VTUF80ABoIWDg2X1RVTkVfQUREX0VTUF84ABsIWDg2X1RVTkVfU1VCX0VTUF80ABwIWDg2X1RVTkVfU1VCX0VTUF84
AB0IWDg2X1RVTkVfSU5URUdFUl9ERk1PREVfTU9WRVMAHghYODZfVFVORV9QQVJUSUFMX1JFR19ERVBFTkRFTkNZAB8IWDg2X1RVTkVfU1NFX1BBUlRJQUxfUkVHX0RFUEVOREVOQ1kAIAhYODZfVFVORV9TU0VfVU5BTElHTkVEX01PVkVfT1BUSU1BTAAhCFg4Nl9UVU5FX1NTRV9TUExJVF9SRUdTACIIWDg2X1RVTkVfU1NFX1RZUEVMRVNTX1NUT1JFUwAjCFg4Nl9UVU5FX1NTRV9MT0FEMF9CWV9QWE9SACQIWDg2X1RVTkVfTUVNT1JZX01JU01BVENIX1NUQUxMACUIWDg2X1RVTkVfUFJPTE9HVUVfVVNJTkdfTU9WRQAmCFg4Nl9UVU5FX0VQSUxPR1VFX1VTSU5HX01PVkUAJwhYODZfVFVORV9TSElGVDEAKAhYODZfVFVORV9VU0VfRkZSRUVQACkIWDg2X1RVTkVfSU5URVJfVU5JVF9NT1ZFUwAqCFg4Nl9UVU5FX0lOVEVSX1VOSVRfQ09OVkVSU0lPTlMAKwhYODZfVFVORV9GT1VSX0pVTVBfTElNSVQALAhYODZfVFVORV9TQ0hFRFVMRQAtCFg4Nl9UVU5FX1VTRV9CVAAuCFg4Nl9UVU5FX1VTRV9JTkNERUMALwhYODZfVFVORV9QQURfUkVUVVJOUwAwCFg4Nl9UVU5FX0VYVF84MDM4N19DT05TVEFOVFMAMQhYODZfVFVORV9TSE9SVEVOX1g4N19TU0UAMghYODZfVFVORV9BVk9JRF9WRUNUT1JfREVDT0RFADMIWDg2X1RVTkVfUFJPTU9URV9ISU1PREVfSU1VTAA0CFg4Nl9UVU5FX1NMT1dfSU1VTF9JTU0zMl9NRU0ANQhYODZfVFVORV9TTE9XX0lNVUxfSU1NOAA2CFg4Nl9UVU5FX01PVkVfTTFfVklBX09SADcIWDg2X1RVTkVfTk9UX1VOUEFJUkFCTEUAOAhYODZfVFVORV9OT1RfVkVDVE9STU9ERQA5CFg4Nl9UVU5FX1VTRV9WRUNUT1JfRlBfQ09OVkVSVFMAOghYODZfVFVORV9VU0VfVkVDVE9SX0NPTlZFUlRTADsIWDg2X1RVTkVfRlVTRV9DTVBfQU5EX0JSQU5DSAA8CFg4Nl9UVU5FX09QVF9BR1UAPQhYODZfVFVORV9MQVNUAD4ACWl4ODZfYXJjaF9pbmRpY2VzAAQCjwECCQAACFg4Nl9BUkNIX0NNT1ZFAAAIWDg2X0FSQ0hfQ01QWENIRwABCFg4Nl9BUkNIX0NNUFhDSEc4QgACCFg4Nl9BUkNIX1hBREQAAwhYODZfQVJDSF9CU1dBUAAECFg4Nl9BUkNIX0xBU1QABQACBARmbG9hdAACCARkb3VibGUAB1ZBUkVOVU0ABANzkQsAAAhWVF9FTVBUWQAACFZUX05VTEwAAQhWVF9JMgACCFZUX0k0AAMIVlRfUjQABAhWVF9SOAAFCFZUX0NZAAYIVlRfREFURQAHCFZUX0JTVFIACAhWVF9ESVNQQVRDSAAJCFZUX0VSUk9SAAoIVlRfQk9PTAALCFZUX1ZBUklBTlQADAhWVF9VTktOT1dOAA0IVlRfREVDSU1BTAAOCFZUX0kxABAIVlRfVUkxABEIVlRfVUkyABIIVlRfVUk0ABMIVlRfSTgAFAhWVF9VSTgAFQhWVF9JTlQAFghWVF9VSU5UABcIVlRfVk9JRAAYCFZUX0hSRVNVTFQAGQhWVF9QVFIAGghWVF9TQUZFQVJSQVkAGwhWVF9DQVJSQVkAHAhWVF9VU0VSREVGSU5FRAAdCFZUX0xQU1RSAB4IVlRfTFBXU1RSAB8IVlRfUkVDT1JEACQIVlRfSU5UX1BUUgAlCFZUX1VJTlRfUFRSACYIVlRfRklMRVRJTUUAwAAIVlRfQkxPQgDBAAhWVF9TVFJFQU0AwgAIVlRf
U1RPUkFHRQDDAAhWVF9TVFJFQU1FRF9PQkpFQ1QAxAAIVlRfU1RPUkVEX09CSkVDVADFAAhWVF9CTE9CX09CSkVDVADGAAhWVF9DRgDHAAhWVF9DTFNJRADIAAhWVF9CU1RSX0JMT0IA/x8IVlRfVkVDVE9SAIAgCFZUX0FSUkFZAIDAAAhWVF9CWVJFRgCAgAEIVlRfUkVTRVJWRUQAgIACCFZUX0lMTEVHQUwA//8DCFZUX0lMTEVHQUxNQVNLRUQA/x8IVlRfVFlQRU1BU0sA/x8AAggDY29tcGxleCBmbG9hdAACEANjb21wbGV4IGRvdWJsZQACDARsb25nIGRvdWJsZQACGANjb21wbGV4IGxvbmcgZG91YmxlAAIQBF9fZmxvYXQxMjgAAiADX191bmtub3duX18ABmZ1bmNfcHRyAAQrBwwAAAUEDQwAAAoBC1QBAAAaDAAADAANX2lvYgABmg8MAAABAQ1faW9iAAGaDwwAAAEBC/cLAABGDAAADokAAAABAA9fX0NUT1JfTElTVF9fAAWsCDYMAAABBQM4IUAAD19fRFRPUl9MSVNUX18ABa0INgwAAAEFA0QhQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEQElCBMLAwgbCBEBEgEQBgAAAiQACws+CwMIAAADEwEDCAsLOgs7CwETAAAEDQADCDoLOwtJEzgKAAAFDwAL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LnRleHQAAAAAEAAAAQAAAAMALmRhdGEAAAAMAAAAAgAAAAMALmJzcwAAAACcAAAABAAAAAMALmlkYXRhJDdUBAAABQAAAAMALmlkYXRhJDVQAQAABQAAAAMALmlkYXRhJDSkAAAABQAAAAMALmlkYXRhJDYWAwAABQAAAAMALnRleHQAAAAAEAAAAQAAAAMALmRhdGEAAAAMAAAAAgAAAAMALmJzcwAAAACcAAAABAAAAAMALmlkYXRhJDdABAAABQAAAAMALmlkYXRhJDU8AQAABQAAAAMALmlkYXRhJDSQAAAABQAAAAMALmlkYXRhJDbMAgAABQAAAAMALnRleHQAAAAIEAAAAQAAAAMALmRhdGEAAAAMAAAAAgAAAAMALmJzcwAAAACcAAAABAAAAAMALmlkYXRhJDdIBAAABQAAAAMALmlkYXRhJDVEAQAABQAAAAMALmlkYXRhJDSYAAAABQAAAAMALmlkYXRhJDbsAgAABQAAAAMALnRleHQAAAAQEAAAAQAAAAMALmRhdGEAAAAMAAAAAgAAAAMALmJzcwAAAACcAAAABAAAAAMALmlkYXRhJDdEBAAABQAAAAMALmlkYXRhJDVAAQAABQAAAAMALmlkYXRhJDSUAAAABQAAAAMALmlkYXRhJDbcAgAABQAAAAMALnRleHQAAAAYEAAAAQAAAAMALmRhdGEAAAAMAAAAAgAAAAMALmJzcwAAAACcAAAABAAAAAMALmlkYXRhJDdQBAAABQAAAAMALmlkYXRhJDVMAQAABQAAAAMALmlkYXRh
JDSgAAAABQAAAAMALmlkYXRhJDYMAwAABQAAAAMALnRleHQAAAAgEAAAAQAAAAMALmRhdGEAAAAMAAAAAgAAAAMALmJzcwAAAACcAAAABAAAAAMALmlkYXRhJDdcBAAABQAAAAMALmlkYXRhJDVYAQAABQAAAAMALmlkYXRhJDSsAAAABQAAAAMALmlkYXRhJDYoAwAABQAAAAMALnRleHQAAAAoEAAAAQAAAAMALmRhdGEAAAAMAAAAAgAAAAMALmJzcwAAAACcAAAABAAAAAMALmlkYXRhJDeMBAAABQAAAAMALmlkYXRhJDWIAQAABQAAAAMALmlkYXRhJDTcAAAABQAAAAMALmlkYXRhJDacAwAABQAAAAMALnRleHQAAAAwEAAAAQAAAAMALmRhdGEAAAAMAAAAAgAAAAMALmJzcwAAAACcAAAABAAAAAMALmlkYXRhJDeIBAAABQAAAAMALmlkYXRhJDWEAQAABQAAAAMALmlkYXRhJDTYAAAABQAAAAMALmlkYXRhJDaUAwAABQAAAAMALnRleHQAAAA4EAAAAQAAAAMALmRhdGEAAAAMAAAAAgAAAAMALmJzcwAAAACcAAAABAAAAAMALmlkYXRhJDeABAAABQAAAAMALmlkYXRhJDV8AQAABQAAAAMALmlkYXRhJDTQAAAABQAAAAMALmlkYXRhJDaAAwAABQAAAAMALnRleHQAAABAEAAAAQAAAAMALmRhdGEAAAAMAAAAAgAAAAMALmJzcwAAAACcAAAABAAAAAMALmlkYXRhJDeEBAAABQAAAAMALmlkYXRhJDWAAQAABQAAAAMALmlkYXRhJDTUAAAABQAAAAMALmlkYXRhJDaKAwAABQAAAAMALnRleHQAAABIEAAAAQAAAAMALmRhdGEAAAAMAAAAAgAAAAMALmJzcwAAAACcAAAABAAAAAMALmlkYXRhJDeQBAAABQAAAAMALmlkYXRhJDWMAQAABQAAAAMALmlkYXRhJDTgAAAABQAAAAMALmlkYXRhJDamAwAABQAAAAMALnRleHQAAABQEAAAAQAAAAMALmRhdGEAAAAMAAAAAgAAAAMALmJzcwAAAACcAAAABAAAAAMALmlkYXRhJDdsBAAABQAAAAMALmlkYXRhJDVoAQAABQAAAAMALmlkYXRhJDS8AAAABQAAAAMALmlkYXRh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ZGVyZWdpc3Rlcl9mcmFtZQAudGV4dCRfWjE0X19taW5nd191dWlkb2ZJMTlJTU1EZXZpY2VFbnVtZXJhdG9yRVJLNV9HVUlEdgBfX1oxNF9fbWluZ3dfdXVpZG9mSTE5SU1NRGV2aWNlRW51bWVyYXRvckVSSzVfR1VJRHYALnJkYXRhJF9aWjE0X19taW5nd191dWlkb2ZJMTlJTU1EZXZpY2VFbnVtZXJhdG9yRVJLNV9HVUlEdkUxMV9fdXVpZF9pbnN0AC50ZXh0JF9aMTRfX21pbmd3X3V1aWRvZkkxOE1NRGV2aWNlRW51bWVyYXRvckVSSzVfR1VJRHYAX19aMTRfX21pbmd3X3V1aWRvZkkxOE1NRGV2aWNlRW51bWVyYXRvckVSSzVfR1VJRHYALnJkYXRhJF9aWjE0X19taW5nd191dWlkb2ZJMThNTURldmljZUVudW1lcmF0b3JFUks1X0dVSUR2RTExX191dWlkX2luc3QALnRleHQkX1oxNF9fbWluZ3dfdXVpZG9mSTIwSUF1ZGlvRW5kcG9pbnRWb2x1bWVFUks1X0dVSUR2AF9fWjE0X19taW5nd191dWlkb2ZJMjBJQXVkaW9FbmRwb2ludFZvbHVtZUVSSzVfR1VJRHYALnJkYXRhJF9aWjE0X19taW5nd191dWlkb2ZJMjBJQXVkaW9FbmRwb2ludFZvbHVtZUVSSzVfR1VJRHZFMTFfX3V1aWRfaW5zdABfX190bHJlZ2R0b3IAX19fZHluX3Rsc19kdG9yQDEyAF9fX2R5
bl90bHNfaW5pdEAxMgBfX19taW5nd19tdGhyZWFkX2hkbGwAX19fY3B1X2ZlYXR1cmVzX2luaXQAX19fcmVwb3J0X2Vycm9yAF9fX3dyaXRlX21lbW9yeQBfX3BlaTM4Nl9ydW50aW1lX3JlbG9jYXRvcgBfd2FzX2luaXQuMzEwODcAX19fZG9fZ2xvYmFsX2R0b3JzAF9fX2RvX2dsb2JhbF9jdG9ycwBfaW5pdGlhbGl6ZWQAX19mcHJlc2V0AF9fX21pbmd3dGhyX3J1bl9rZXlfZHRvcnMAX19fbWluZ3d0aHJfY3NfaW5pdABfX19taW5nd3Rocl9jcwBfa2V5X2R0b3JfbGlzdABfX19taW5nd19UTFNjYWxsYmFjawBfX19fdzY0X21pbmd3dGhyX3JlbW92ZV9rZXlfZHRvcgBfX19fdzY0X21pbmd3dGhyX2FkZF9rZXlfZHRvcgBwc2V1ZG8tcmVsb2MtbGlzdC5jAC5kZWJ1Z19hYmJyZXYALmRlYnVnX2luZm8ALmRlYnVnX2xpbmUALmRlYnVnX3B1Ym5hbWVzAC5kZWJ1Z19wdWJ0eXBlcwBfX19mcGNsYXNzaWZ5AF9fX0pDUl9FTkRfXwBfcmVnaXN0ZXJfZnJhbWVfY3RvcgAuY3RvcnMuNjU1MzUAX19aWjE0X19taW5nd191dWlkb2ZJMjBJQXVkaW9FbmRwb2ludFZvbHVtZUVSSzVfR1VJRHZFMTFfX3V1aWRfaW5zdABfVmlydHVhbFByb3RlY3RAMTYAX19fUlVOVElNRV9QU0VVRE9fUkVMT0NfTElTVF9fAF9faW1wX19fc2V0bW9kZQBfX2RhdGFfc3RhcnRfXwBfRnJlZUxpYnJhcnlANABfX19EVE9SX0xJU1RfXwBfX2ltcF9fVmlydHVhbFByb3RlY3RAMTYALndlYWsuX19Kdl9SZWdpc3RlckNsYXNzZXMuX19fZ2NjX3JlZ2lzdGVyX2ZyYW1lAF9faW1wX19fb25leGl0AF9fX3BfX2Ztb2RlAF9faW1wX19HZXRMYXN0RXJyb3JAMABfX2ltcF9fR2V0VmVyc2lvbkV4QUA0AF9fWloxNF9fbWluZ3dfdXVpZG9mSTE4TU1EZXZpY2VFbnVtZXJhdG9yRVJLNV9HVUlEdkUxMV9fdXVpZF9pbnN0AF9TZXRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXJANABfX2ltcF9fVmlydHVhbFF1ZXJ5QDEyAF9fX3Rsc19zdGFydF9fAF9faW1wX19UbHNHZXRWYWx1ZUA0AF9fbGlibXN2Y3J0X2FfaW5hbWUAX19pbXBfX0luaXRpYWxpemVDcml0aWNhbFNlY3Rpb25ANABfRGVsZXRlQ3JpdGljYWxTZWN0aW9uQDQAX19pbXBfX2Fib3J0AF9fZGxsX2NoYXJhY3RlcmlzdGljc19fAF9fc2l6ZV9vZl9zdGFja19jb21taXRfXwBfX3NpemVfb2Zfc3RhY2tfcmVzZXJ2ZV9fAF9fbWFqb3Jfc3Vic3lzdGVtX3ZlcnNpb25fXwBfX19jcnRfeGxfc3RhcnRfXwBfX19jcnRfeGlfc3RhcnRfXwBfX19jcnRfeGlfZW5kX18AX19pbXBfX0NvVW5pbml0aWFsaXplQDAAX0dldExhc3RFcnJvckAwAF9faW1wX19fX3BfX2Vudmlyb24AX1ZpcnR1YWxRdWVyeUAxMgBfbWluZ3dfaW5pdGx0c2Ryb3RfZm9yY2UAX19pbXBfX19pb2IAX0dldE1vZHVsZUhhbmRsZUFANABfX2Jzc19zdGFydF9fAF9faW1wX19Db0luaXRpYWxpemVANABfX19SVU5USU1FX1BTRVVET19SRUxPQ19MSVNUX0VORF9fAF9fc2l6ZV9vZl9oZWFwX2NvbW1pdF9fAF9faW1wX19Db0NyZWF0ZUluc3RhbmNlQDIwAF9fX3BfX2Vudmly
b24AX19pbXBfX0dldFByb2NBZGRyZXNzQDgAX0dldFByb2NBZGRyZXNzQDgAX19fY3J0X3hwX3N0YXJ0X18AX19fbWluZ3dfZ01US2V5RHRvcgBfX19jcnRfeHBfZW5kX18AX19pbXBfX3NpZ25hbABfX2ltcF9fcHV0cwBfX21pbm9yX29zX3ZlcnNpb25fXwBfX2ltcF9fYXRleGl0AF9faGVhZF9saWJtc3ZjcnRfYQBfX2ltYWdlX2Jhc2VfXwBfR2V0VmVyc2lvbkV4QUA0AF9fc2VjdGlvbl9hbGlnbm1lbnRfXwBfTG9hZExpYnJhcnlBQDQAX19pbXBfX0ZyZWVMaWJyYXJ5QDQAX19saWJvbGUzMl9hX2luYW1lAF9fUlVOVElNRV9QU0VVRE9fUkVMT0NfTElTVF9fAF9Db0NyZWF0ZUluc3RhbmNlQDIwAF9faW1wX19fX3BfX2Ztb2RlAF9fdGxzX3N0YXJ0AF9FeGl0UHJvY2Vzc0A0AF9fZGF0YV9lbmRfXwBfX19nZXRtYWluYXJncwBfX0NUT1JfTElTVF9fAF9fX3NldF9hcHBfdHlwZQBfX2Jzc19lbmRfXwBfX0NSVF9mbW9kZQBfX19jcnRfeGNfZW5kX18AX190bHNfaW5kZXgAX19fY3J0X3hjX3N0YXJ0X18AX19fQ1RPUl9MSVNUX18AX0NvVW5pbml0aWFsaXplQDAAX19pbXBfX21lbWNweQBfX1paMTRfX21pbmd3X3V1aWRvZkkxOUlNTURldmljZUVudW1lcmF0b3JFUks1X0dVSUR2RTExX191dWlkX2luc3QAX19pbXBfX3N0cmNtcABfX2ZpbGVfYWxpZ25tZW50X18AX19pbXBfX0xlYXZlQ3JpdGljYWxTZWN0aW9uQDQAX19tYWpvcl9vc192ZXJzaW9uX18AX0NvSW5pdGlhbGl6ZUA0AF9fdGxzX2VuZABfX2ltcF9fR2V0TW9kdWxlSGFuZGxlQUA0AF9fRFRPUl9MSVNUX18AX0VudGVyQ3JpdGljYWxTZWN0aW9uQDQAX19pbXBfX21lbXNldABfX3NpemVfb2ZfaGVhcF9yZXNlcnZlX18AX19fY3J0X3h0X3N0YXJ0X18AX19fSW1hZ2VCYXNlAF9faGVhZF9saWJvbGUzMl9hAF9fc3Vic3lzdGVtX18AX19fbWluZ3dfZ01UUmVtb3ZlS2V5RHRvcgBfX19taW5nd191c2VtdGhyZWFkX2RsbABfX2ltcF9fY2FsbG9jAF9fSnZfUmVnaXN0ZXJDbGFzc2VzAF9faW1wX19fX2dldG1haW5hcmdzAF9faW1wX19fd2lubWFqb3IAX19fdGxzX2VuZF9fAF9faW1wX19FeGl0UHJvY2Vzc0A0AF9taW5nd19pbml0bHRzc3VvX2ZvcmNlAF9Jbml0aWFsaXplQ3JpdGljYWxTZWN0aW9uQDQAX19fY3B1X2ZlYXR1cmVzAF9faW1wX19mcmVlAF9faW1wX19TZXRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXJANABfX21ham9yX2ltYWdlX3ZlcnNpb25fXwBfX2xvYWRlcl9mbGFnc19fAF9fQ1JUX2dsb2IAX19zZXRtb2RlAF9faW1wX19wcmludGYAX19oZWFkX2xpYmtlcm5lbDMyX2EAX19pbXBfX19jZXhpdABfX21pbm9yX3N1YnN5c3RlbV92ZXJzaW9uX18AX19taW5vcl9pbWFnZV92ZXJzaW9uX18AX19pbXBfX3ZmcHJpbnRmAF9faW1wX19fX3NldF9hcHBfdHlwZQBfX2ltcF9fYXRvZgBfbWluZ3dfaW5pdGx0c2R5bl9mb3JjZQBfVGxzR2V0VmFsdWVANABfX2ltcF9fRGVsZXRlQ3JpdGljYWxTZWN0aW9uQDQAX0xlYXZlQ3JpdGljYWxTZWN0aW9uQDQAX19pbXBfX0xvYWRMaWJy
YXJ5QUA0AF9fUlVOVElNRV9QU0VVRE9fUkVMT0NfTElTVF9FTkRfXwBfX2xpYmtlcm5lbDMyX2FfaW5hbWUAX19fZHluX3Rsc19pbml0X2NhbGxiYWNrAF9fdGxzX3VzZWQAX19fY3J0X3h0X2VuZF9fAF92ZnByaW50ZgBfX2ltcF9fRW50ZXJDcml0aWNhbFNlY3Rpb25ANABfX2ltcF9fZndyaXRlAA==
endtext	
	=strtofile( strconv(m.filebin,14), m.file)
	if !file(m.file)
		return ""
	endif
	return m.file
	
endfunc


function yicon()
text to m.myvar noshow
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
endtext
strtofile(strconv(m.myvar,14),"ysound.ico")
return .t.
endfunc


Driving the PC master sound volume
Driving the PC master sound volume
Driving the PC master sound volume
Driving the PC master sound volume

Click on code to select [then copy] -click outside to deselect


*2* created on  sunday 01 of april 2018
*this use a Pad defined menu of the main vfp menu to drive the master sound volume with shell object
*note that the system slider appear always and i dont found a way to hide it.can set volume directly on this slider when it shows.

*note: can also use as well the API keybd_event for same purpose with these keys
*Volume Mute key:  VK_VOLUME_MUTE 0xAD
*Volume Down key:  VK_VOLUME_DOWN 0xAE
*Volume Up key  :  VK_VOLUME_UP 0xAF


Set Sysmenu To Defa
Set Color Of Scheme 1 To N+/w*,GR+/N*,,,,w+/R   &&the vfp menu system override it here
Define Pad padVol Of _Msysmenu   Prompt "\<                                              yVolSound"  Message "Choose action to run" color scheme 1    &&the spaces are  to position the pad menu

Define Popup popVol Margin


Define Bar 1 Of popVol   Prompt "1. Increase Volume"    Message "Increase master volume by +2%"      && Picture "D:\________ytest2017\yicons_start\1.ico"  &&can set custom icons here (hardcoded only or can specify PictureName in a relative path.)
Define Bar 2 Of popVol   Prompt "2. Decrease Volume "   Message  "decrease master volume  by -2%"    && Picture "D:\________ytest2017\yicons_start\2.ico"
Define Bar 3 Of popVol   Prompt "3. Mute/Unmute"        Message  "mut/unmute(switch)"                && Picture "D:\________ytest2017\yicons_start\3.ico"
Define Bar 4 Of popVol   Prompt "4. Sndvol"             Message  "system sndVol interface"           && Picture "D:\________ytest2017\yicons_start\4.ico"
Define Bar 5 Of popVol   Prompt "5. Restore menu"       Message  "Restore main vfp menu"
On Pad padVol Of _Msysmenu Activate Popup popVol

On Selection Bar 1 Of popVol  proc1()
On Selection Bar 2 Of popVol  proc2()
On Selection Bar 3 Of popVol  proc3()
On Selection Bar 4 Of popVol  proc4()
On Selection Bar 5 Of popVol Set Sysmenu To Defa
*menu can be also on a vfp top level form menu

Function proc1()
  *Inncrease volume level:
  Local oShell
  oShell = Newobject("WScript.Shell")
  oShell.SendKeys(Chr(0xAF))
  oShell=Null
Endfunc

Function proc2()
  *Decrease volume level:
  Local oShell
  oShell = Newobject("WScript.Shell")
  oShell.SendKeys(Chr(0xAE))
  oShell=Null
Endfunc

Function proc3()
  *mute/unmute
  Local oShell
  oShell = Newobject("WScript.Shell")
  oShell.SendKeys(Chr(0xAD))  &&mute/unMute
  oShell=Null
Endfunc

Function proc4()
  Try
    Run/N sndvol
  Catch
    Messagebox("snvol.exe not installed!",16+4096,'Error',1300)
  Endtry
Endfunc




Driving the PC master sound volume

Click on code to select [then copy] -click outside to deselect

*3* created on monday 02 of april 2018
*String2menu
* Builds a contextuel iconed menu from a formatted menu string.this avoids the built of mpr menu and codes directly the string menu.Actions are not code here.
*this extends systray class (menuText property).its one column menu.
*from systray.vcx class (home(1)+"samples\solution\toledo\systray.vcx)
*note: can use designer and ismenuMPR=.t. to avoid menutext in systray class.here can install pictures or pictres (as resource) for each contextuel menu item.

*type a string meu formatted like this:(3 items+2sperators here...to customize)
MenuText = [1; API Viewer  ; 2;\-;3;Summary help;4;\-;5;Documentation;6; Exit]

Local lnMenuItems, lcMenuName, laMenuItems[1], lnCurrentMenuItem
Local lnToken, lcText, lnBarNum
lnMenuItems = Alines(m.laMenuItems, MenuText, .T., ";")
If m.lnMenuItems = 0
  Release loTempForm
  Return .F.
Endif
If m.lnMenuItems % 2 != 0
  *  Incorrect number of items in MenuText property.
  If m.lnMenuItems > 1
    lnMenuItems = lnMenuItems - 1
  Else
    Release loTempForm
    Return .F.
  Endif
Endif
lcMenuName = Sys(2015)
* Make private variable to receive the ID of the selected menu item.
Private __systray_menu_return
__systray_menu_return = 0

*  Build the menu.
Define Popup (m.lcMenuName) SHORTCUT Relative From Mrow(),Mcol()
For lnCurrentMenuItem = 1 To m.lnMenuItems Step 2
** add custom pictures here*
  Do Case
    Case lnCurrentMenuItem=1
      m.ypict=Home(1)+"graphics\icons\misc\misc01.ico"
    Case lnCurrentMenuItem=5
      m.ypict=Home(1)+"graphics\icons\misc\misc05.ico"
   Case lnCurrentMenuItem=9
     m.ypict=Home(1)+"graphics\icons\misc\misc15.ico"
    Otherwise
      m.ypict=""
  Endcase

  lnToken = Val(m.laMenuItems[m.lnCurrentMenuItem])
  lcText = m.laMenuItems[m.lnCurrentMenuItem + 1]
  lnBarNum = Floor(m.lnCurrentMenuItem/2) + 1
  Define Bar (lnBarNum) Of (m.lcMenuName) Prompt (m.lcText) Picture (m.ypict)  &&add picture clause here or pictres if the case
  lcOnSelectionBar = "ON SELECTION BAR " + Transform(m.lnBarNum) + " OF " + ;
    TRANSFORM(m.lcMenuName) + " __systray_menu_return = " + Transform(m.lnToken)
  &lcOnSelectionBar
Endfor
Set Escape Off

*  Display the menu and wait for user action.
Activate Popup (m.lcMenuName)


Click on code to select [then copy] -click outside to deselect


*4* created on monday 02 of april 2018
*cursor2menu
* Builds a contextuel iconed menu from a prepared cursor.this avoids the built of mpr menu and codes directly the contextuel menu.code can be pasted diretly in a prg or form.
*the menu is its one column one.
*action can be customized (here return nothing)

Create Cursor ycurs(Id i,xtext c(100),Pict c(100),pictr c(30),action c(100))
Insert Into ycurs Values (1,"API Viewer",Home(1)+"graphics\icons\misc\misc01.ico","","")
Insert Into ycurs Values (2,"\-","","","")  &&separator
Insert Into ycurs Values (3,"Copy","","_med_copy","")
Insert Into ycurs Values (4,"Cut","","_med_cut","")
Insert Into ycurs Values (5,"Paste","","_med_paste","")
Insert Into ycurs Values (6,"unddo","","_med_undo","")
Insert Into ycurs Values (7,"redo","","_med_redo","")
Insert Into ycurs Values (8,"Select all","","_med_slcta","")

Insert Into ycurs Values (9,"\-","","","")  &&separator
Insert Into ycurs Values (10,"Summary Help",Home(1)+"graphics\icons\misc\misc05.ico","","")
Insert Into ycurs Values (11,"\-","","","")  &&separator
Insert Into ycurs Values (12,"Exit",Home(1)+"graphics\icons\misc\misc15.ico","","")
*brow


Local m.myvar,m.cr,m.lcmenuName,m.x1,m.x2,m.x3
m.lcmenuName = Sys(2015)
m.cr=Chr(13)
m.x=[Define Popup ]+m.lcmenuName+[ SHORTCUT Relative From Mrow(),Mcol()]
*Define Bar (lnBarNum) Of (m.lcMenuName) Prompt (m.lcText) Picture (m.ypict)
Scan
  m.x1=Iif(!Empty(Pict) ,'  PICTURE "'+Allt(Pict)+'"',"")  &&must have picture or pictres clause only.
  m.x2=Iif(!Empty(pictr),'  PICTRES '+Allt(pictr)+'',"")
  m.x3="ON SELECTION BAR " + Trans(Id) + " OF " + (m.lcmenuName )

  m.x=m.x+cr+'Define Bar '+Trans(Id)+' Of '+(m.lcmenuName)+'  Prompt "'+Allt(xtext)+'"'  + m.x1  +m.x2+cr+m.x3+cr
Endscan

m.x=m.x+cr+'Activate Popup '+m.lcmenuName+cr

_Cliptext=m.x

Execscript(m.x)  &&show the contextuel menu here

Retu



Driving the PC master sound volume

                     

Yousfi Benameur


Driving the PC master sound volume

Important:All Codes above are tested on VFP9SP2 & windows 10 pro 64 bits version 1709(fall creator) & IE11 emulation. Navigator: firefox - screen:32 pouces.

To be informed of the latest articles, subscribe:
Comment on this post