  | 
				VFP ·R¥ÎªÌªÀ°Ï ¥»°Q½×°Ï¬° Visual Foxpro ·R¥ÎªÌ¸gÅç¥æ¬yªº¦a¤è, ½Ð¦h¦h§Q¥Î"·j´M"ªº¥\¯à, ¥ý¬d¬Ý¬Ý¦³µL«e¨Ò¥i´`, ¦pªGÁÙ¦³¤£À´ªº¦Aµo°Ý. ³¡¥÷¥DÃD¦³ªþ¥[ÀÉ®×, ¶·¥ýµù¥U¦¨¬°ªÀ°Ï©~¥Á¤~¥i¥H¤U¸ü.   
				 | 
			 
		 
		 
	
		| ¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD   | 
	 
	
	
		| µoªí¤H | 
		¤º®e | 
	 
	
		sunghsia
 
 
  µù¥U®É¶¡: 2003-06-13 ¤å³¹: 52 ¨Ó¦Û: ¥x¥_
  ²Ä 1 ¼Ó
  | 
		
			
				 µoªí©ó: ¬P´Á¤ ¤E¤ë 30, 2005 2:07 pm    ¤å³¹¥DÃD: ¥Dµ¶q1 | 
				     | 
			 
			
				
  | 
			 
			
				¦b¶K<¥Dµ¶q>ªº®ÉÔ, ¦³¤@¨Ç¤å¦r¦n¹³·|³Q¦Y±¼,°õ¦æµ{¦¡®É,·|µo¥Í¿ù»~!!
 
 
¦³«þ³Æ<¥Dµ¶q>ªº¤H,½Ð§Q¥Î°O¨Æ¥»: 
 
 
±N:   repl(chr(0),4 && µ²ºc MIXERLINE_TARGET, 48 byte
 
´«¦¨: repl(chr(0),4  && µ²ºc MIXERLINE_TARGET, 48 byte
 
 
 
*********************************************************
 
* ÁYµu¥Dµ¶qªºµ{¦¡½X
 
*********************************************************
 
 
ouserform=CREATEOBJECT ("userform")
 
ouserform.SHOW
 
 
DEFINE CLASS userform AS form
 
  name="Form1"
 
  caption="Form1"
 
  left=47
 
  top=46
 
  width=100
 
  height=142
 
  maxbutton=.F.
 
  closable=.F.
 
  showwindow=2
 
  visible=.T.
 
 
add object label1 AS Label with left=12,top=8 , autosize=.T. ,caption=[Master Volumn]
 
add object label2 AS Label with left=12,top=26 , autosize=.T. ,caption=[µ¶q]
 
add object shape1 AS shape with left=4,top=24,width=90,height=2, specialEffect=0
 
add object timer1 AS Timer
 
 
 
PROCEDURE ACTIVATE
 
  _screen.windowstate=1
 
  _screen.visible=.F.
 
  READ EVENTS
 
ENDPROC
 
 
 
PROCEDURE CLICK  &&Â÷¶}
 
  = GlobalFree (hmem)
 
  RELEASE DLL
 
  CLEAR EVENTS
 
  _screen.visible=.T.
 
  _screen.windowstate=2
 
ENDPROC
 
 
 
PROCEDURE ERROR
 
  LPARAMETERS nError, cMethod, nLine
 
  messagebox("¿ù»~½X: "+ltrim(str(nError))+chr(13)+Message()+chr(13)+chr(13)+"±N PROCEDURE INIT ¨Æ¥óùتº COMCTL.Slider.1 ´«¦¨ MSComctlLib.Slider.2 ¸Õ¸Õ",16)
 
  QUIT
 
ENDPROC
 
 
 
PROCEDURE INIT
 
  this.addobject ("VSlider" , "Slider" , "COMCTL.Slider.1") &&«Ø¥ß Sliderª«¥ó
 
  this.VSlider.move(42,42,90,90)
 
  this.VSlider.tickStyle=3
 
  this.VSlider.orientation=1
 
 
  DECLARE INTEGER mixerOpen IN winmm INTEGER @ phmx, INTEGER uMxId, INTEGER dwCallback, INTEGER dwInstance, INTEGER fdwOpen
 
  DECLARE INTEGER mixerGetLineInfo IN winmm INTEGER hmxobj, STRING @ pmxl, INTEGER fdwInfo
 
  DECLARE INTEGER mixerGetLineControls IN winmm INTEGER hmxobj, STRING @ pmxlc, INTEGER fdwControls
 
  DECLARE INTEGER mixerGetControlDetails IN winmm INTEGER hmxobj, STRING @ pmxcd, INTEGER fdwDetails
 
  DECLARE INTEGER mixerSetControlDetails IN winmm INTEGER hmxobj, STRING @ pmxcd, INTEGER fdwDetails
 
  DECLARE INTEGER GlobalFree IN kernel32 INTEGER hMem
 
  DECLARE INTEGER GlobalLock IN kernel32 INTEGER hMem
 
  DECLARE INTEGER GlobalAlloc IN kernel32 INTEGER wFlags, INTEGER dwBytes
 
  DECLARE RtlMoveMemory IN kernel32 As CopyMemory STRING @ Destination, INTEGER Source, INTEGER nLength
 
 
 
  public hmixer, hmem, mxc, mxcd, ³Ì¤jµ¶q
 
 
  hmixer=0
 
  = mixerOpen(@hmixer, 0, 0, 0, 0)  &&¶}±Ò¹w³]¸Ë¸m
 
 
  * --------------------------------------------------------------------
 
  componentType = 4  && MIXERLINE_COMPONENTTYPE_DST_SPEAKERS &&¥Dµ¶qªº°Ñ¼Æ
 
  ctrlType = 1342177280 + 196608 + 1  && MIXERCONTROL_CONTROLTYPE_VOLUME
 
  * --------------------------------------------------------------------
 
 
  mxl = this.num2dword(168) + repl(chr(0),20) + this.num2dword(componentType) + repl(chr(0),140)
 
  = mixerGetLineInfo (hmixer, @mxl, 3) && MIXER_GETLINEINFOF_COMPONENTTYPE
 
 
  mxc = this.num2dword(152) + repl(chr(0),148)
 
  hMem = GlobalAlloc(64, len(mxc))
 
  _add = GlobalLock(hMem)
 
 
  dwLineID = substr(mxl, 13, 4)
 
  mxlc = this.num2dword(24) + dwLineID + this.num2dword(ctrlType) + this.num2dword(1) + this.num2dword(len(mxc)) + this.num2dword(_add)
 
  = mixerGetLineControls(hmixer, @mxlc, 2) &&MIXER_GETLINECONTROLSF_ONEBYTYPE
 
 
  = CopyMemory (@mxc , _add , len(mxc))
 
  = GlobalFree (hMem)
 
 
  ³Ì¤pµ¶q = this.buf2dword (substr(mxc,101,4))
 
  ³Ì¤jµ¶q = this.buf2dword (substr(mxc,105,4))
 
  this.VSlider.min = ³Ì¤pµ¶q
 
  this.VSlider.max = ³Ì¤jµ¶q
 
 
  vol = REPL(chr(0),4)
 
  hmem = GlobalAlloc(0, Len(vol))
 
  _add = GlobalLock(hmem)
 
 
  dwControlID = substr(mxc,5,4)
 
  mxcd =  this.num2dword(24) + dwControlID + this.num2dword(1) + this.num2dword(0) + this.num2dword(len(vol)) + this.num2dword(_add)
 
  thisform.¨ú±oµ¶q
 
 
  this.timer1.interval = 200  &&»Pwindowsªºµ¶q±±¨î¦P¨B, ¤£·Qªº¸Ü¥i¥H mark °_¨Ó
 
 
  * ------- ¤U±µ{¦¡·|¶}±Òwindowsªºµ¶q±±¨î,¥i¥H§â¥¦mark ------
 
  DECLARE INTEGER ShellExecute IN shell32 INTEGER, STRING, STRING, STRING, STRING, INTEGER
 
  = ShellExecute (0, "open", "Sndvol32.exe", "", "", 1)
 
ENDPROC
 
 
 
PROCEDURE Timer1.Timer
 
  thisform.¨ú±oµ¶q
 
ENDPROC
 
 
 
PROCEDURE ¨ú±oµ¶q
 
  DECLARE RtlMoveMemory IN kernel32 As CopyMemory INTEGER @ Destination, INTEGER Source, INTEGER nLength
 
 
  = mixerGetControlDetails (hmixer, @mxcd, 0) && MIXER_GETCONTROLDETAILSF_VALUE = 0
 
  _add = this.buf2dword(substr(mxcd,21,4)) &&¦s©ñ°Ïªº¦a§}
 
  vol = 4
 
  = CopyMemory (@vol, _add, vol)  &&±N _add«ü©w¦s©ñ°ÏªºÈ,«þ³Æµ¹vol
 
  this.VSlider.value = ³Ì¤jµ¶q - vol
 
ENDPROC
 
 
 
PROCEDURE ³]©wµ¶q
 
  DECLARE RtlMoveMemory IN kernel32 As CopyMemory INTEGER Destination, STRING @ Source, INTEGER nLength  
 
 
  _add = this.buf2dword(substr(mxcd,21,4)) &&¦s©ñ°Ïªº¦a§}
 
  vol = this.num2dword(³Ì¤jµ¶q - this.VSlider.value)  &&³]©wµ¶qªºÈ
 
  = CopyMemory (_add , @vol , 4) &&±NvolªºÈ,«þ³Æ¦Ü _add©Ò«üªº¦s©ñ°Ï
 
  = mixerSetControlDetails (hmixer, @mxcd, 0)
 
ENDPROC
 
 
 
 
PROCEDURE buf2Dword (v) &&±µ¦¬32¦ì¤¸¼ÆÈ¸ê®Æ,¦^¶Ç¤Q¶i¦ì
 
RETURN ;
 
   asc(substr(v, 1,1)) +;
 
   asc(substr(v, 2,1)) * 256 +;
 
   asc(substr(v, 3,1)) * 65536 +;
 
   asc(substr(v, 4,1)) * 16777216
 
ENDPROC
 
 
 
PROCEDURE num2Dword (lnValue) &&±µ¦¬¤Q¶i¦ì,¦^¶Ç32¦ì¤¸¼ÆÈ¸ê®Æ
 
#DEFINE m0       256 
 
#DEFINE m1     65536 
 
#DEFINE m2  16777216 
 
    LOCAL b0, b1, b2, b3 
 
    b3 = Int(lnValue/m2) 
 
    b2 = Int((lnValue - b3*m2)/m1) 
 
    b1 = Int((lnValue - b3*m2 - b2*m1)/m0) 
 
    b0 = Mod(lnValue, m0) 
 
RETURN Chr(b0)+Chr(b1)+Chr(b2)+Chr(b3) 
 
ENDPROC
 
 
 
ENDDEFINE
 
 
 
 
DEFINE CLASS Slider AS OLEcontrol
 
  visible=.T.
 
  PROCEDURE Scroll
 
    thisform.³]©wµ¶q
 
  ENDPROC
 
ENDDEFINE | 
			 
		  | 
	 
	
		| ¦^³»ºÝ | 
		 | 
	 
	
		  | 
	 
	
		sunghsia
 
 
  µù¥U®É¶¡: 2003-06-13 ¤å³¹: 52 ¨Ó¦Û: ¥x¥_
  ²Ä 2 ¼Ó
  | 
		
			
				 µoªí©ó: ¬P´Á¤ ¤E¤ë 30, 2005 2:18 pm    ¤å³¹¥DÃD:  | 
				     | 
			 
			
				
  | 
			 
			
				¦b¶K<¥Dµ¶q>ªº®ÉÔ, ¦³¤@¨Ç¤å¦r¦n¹³·|³Q¦Y±¼,°õ¦æµ{¦¡®É,·|µo¥Í¿ù»~!! 
 
 
¦³«þ³Æ<¥Dµ¶q>ªº¤H,½Ð§Q¥Î°O¨Æ¥»: 
 
 
±N: repl(chr(0),4 && µ²ºc MIXERLINE_TARGET, 48 byte 
 
´«¦¨: repl(chr(0),4¢·) && µ²ºc MIXERLINE_TARGET, 48 byte | 
			 
		  | 
	 
	
		| ¦^³»ºÝ | 
		 | 
	 
	
		  | 
	 
	
		garfield Site Admin
  
  µù¥U®É¶¡: 2003-01-30 ¤å³¹: 2160
 
  ²Ä 3 ¼Ó
  | 
		
			
				 µoªí©ó: ¬P´Á¤ ¤E¤ë 30, 2005 11:47 pm    ¤å³¹¥DÃD:  | 
				     | 
			 
			
				
  | 
			 
			
				ÁÂÁ¤À¨É,
 
¶K¤å«á,¬Y¨Ç¦r·|³Q¦Y±¼,
 
¬O¦]¬°¤å³¹¤º®e¹w³]ȬO¥i¥H¦³ªí±¡²Å¸¹¥\¯à,
 
Ãþ¦ü,    
 
 
§A¥i¥H¦b¶K¤å®É,
 
ª`·Nµe±³Ì¤U¤è¦³´XÓ¿ï¶µ,
 
¥un±N"Ãö³¬³o½g¤å³¹ªºªí±¡²Å¸¹¥\¯à"¥´¤Ä´N¥i¸Ñ¨M³oÓ°ÝÃD.
 
©Î¬O¥Î [ c o d e ] ..... [ / c o d e]±Nµ{¦¡½X¥]³ò°_¨Ó´N¥i¥H¤F. _________________ §Q¥Î>>·j´M<<ªº¥\¯à·|¤ñ°ÝªºÁÙn§Ö±o¨ìµª®×. | 
			 
		  | 
	 
	
		| ¦^³»ºÝ | 
		 | 
	 
	
		  | 
	 
	
		sunghsia
 
 
  µù¥U®É¶¡: 2003-06-13 ¤å³¹: 52 ¨Ó¦Û: ¥x¥_
  ²Ä 4 ¼Ó
  | 
		
			
				 µoªí©ó: ¬P´Á¤» ¤Q¤ë 01, 2005 10:09 am    ¤å³¹¥DÃD:  | 
				     | 
			 
			
				
  | 
			 
			
				| ¤F¸Ñ, ÁÂÁ¸ѻ¡ | 
			 
		  | 
	 
	
		| ¦^³»ºÝ | 
		 | 
	 
	
		  | 
	 
	
		css
 
 
  µù¥U®É¶¡: 2004-12-31 ¤å³¹: 33
 
  ²Ä 5 ¼Ó
  | 
		
			
				 µoªí©ó: ¬P´Á¤» ¤Q¤ë 01, 2005 12:49 pm    ¤å³¹¥DÃD:  | 
				     | 
			 
			
				
  | 
			 
			
				³o¤@¬q¥N½X½T¹ê¬Û·íºë±m¡I§ó´«¤@ÓÈcomponentType¡A§Y§ä¨ì¤F¨ä¥¦³]³Æµ¶q½Õ¸`ªº¤â¬q¡C«D±`·PÁ¡I
 
 
µyı¿ò¾Ñªº¬O¡A¯Ê¤Ö¤FÀRµ¤§¶}±Ò»PÃö³¬¡C·í¬Y¤@Ó³]³Æ¡uÀRµ¡v®É¡AµL½×¦p¦ó½Õ¸`¨äµ¶q¡A§¡¬O®{³Òªº¡C | 
			 
		  | 
	 
	
		| ¦^³»ºÝ | 
		 | 
	 
	
		  | 
	 
	
		sunghsia
 
 
  µù¥U®É¶¡: 2003-06-13 ¤å³¹: 52 ¨Ó¦Û: ¥x¥_
  ²Ä 6 ¼Ó
  | 
		
			
				 µoªí©ó: ¬P´Á¤» ¤Q¤ë 01, 2005 1:44 pm    ¤å³¹¥DÃD:  | 
				     | 
			 
			
				
  | 
			 
			
				| ÀRµ¤]¥i¥H±±¨î.. | 
			 
		  | 
	 
	
		| ¦^³»ºÝ | 
		 | 
	 
	
		  | 
	 
	
		garfield Site Admin
  
  µù¥U®É¶¡: 2003-01-30 ¤å³¹: 2160
 
  ²Ä 7 ¼Ó
  | 
		
			
				 µoªí©ó: ¬P´Á¤G ¤Q¤ë 04, 2005 9:38 am    ¤å³¹¥DÃD:  | 
				     | 
			 
			
				
  | 
			 
			
				½Ðsunghsia, ¤j®v¶}¥Ü¦p¦ó¯à¤Á´«ÀRµ. _________________ §Q¥Î>>·j´M<<ªº¥\¯à·|¤ñ°ÝªºÁÙn§Ö±o¨ìµª®×. | 
			 
		  | 
	 
	
		| ¦^³»ºÝ | 
		 | 
	 
	
		  | 
	 
	
		sunghsia
 
 
  µù¥U®É¶¡: 2003-06-13 ¤å³¹: 52 ¨Ó¦Û: ¥x¥_
  ²Ä 8 ¼Ó
  | 
		
			
				 µoªí©ó: ¬P´Á¤G ¤Q¤ë 04, 2005 11:03 am    ¤å³¹¥DÃD:  | 
				     | 
			 
			
				
  | 
			 
			
				| garfield ¥S, ªñ¨Ó³£¦b«¾ã¸ê®Æ, ©Ò¥H¨S¦³¶KÀRµªº±±¨î | 
			 
		  | 
	 
	
		| ¦^³»ºÝ | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
±z µLªk ¦b³oÓª©±µoªí¤å³¹ ±z µLªk ¦b³oÓª©±¦^ÂФ峹 ±z µLªk ¦b³oÓª©±½s¿è¤å³¹ ±z µLªk ¦b³oÓª©±§R°£¤å³¹ ±z µLªk ¦b³oÓª©±¶i¦æ§ë²¼ ±z µLªk ¦b³oÓª©±ªþ¥[ÀÉ®× ±z µLªk ¦b³oÓª©±¤U¸üÀÉ®×
  | 
   
  
  
Powered by phpBB © 2001, 2005 phpBB Group ¥¿Å餤¤å»y¨t¥Ñ phpbb-tw ºûÅ@»s§@ 
		 |