| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		kechange
 
 
  註冊時間: 2004-12-16 文章: 81
 
  第 1 樓
  | 
		
			
				 發表於: 星期一 一月 10, 2005 10:19 am    文章主題: 我已經會切換螢幕解析度了.不過切換時頻率都鎖定在60.我有沒有辦法偵測原有的頻率來切換呢? | 
				     | 
			 
			
				
  | 
			 
			
				我會切換800*600 到 1024 * 768 的解析度了.
 
 
不過切換過去都一直鎖住頻率60....
 
 
有沒有辦法偵側使用者原有的頻率.切換過去時一樣保持呢??
 
 
麻煩各位先進幫我解答一下..感激不盡.. | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		horace
 
 
  註冊時間: 2004-11-25 文章: 36 來自: 新竹
  第 2 樓
  | 
		
			
				 發表於: 星期一 一月 10, 2005 10:38 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 可使用 SYSMETRIC() | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		kechange
 
 
  註冊時間: 2004-12-16 文章: 81
 
  第 3 樓
  | 
		
			
				 發表於: 星期一 一月 10, 2005 2:16 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				我試過了...我由SYSMETRIC(1) ....連續試到  SYSMETRIC(35) ...超過就有錯誤訊息了..
 
 
由1-35裡..我看不出來那一個是頻率的...鳴鳴鳴...救人哦... | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		Mibh
 
 
  註冊時間: 2004-02-21 文章: 19
 
  第 4 樓
  | 
		
			
				 發表於: 星期一 一月 10, 2005 7:11 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				試試看吧,我已修改過了,只有動到解析度,其他不動
 
 
1.偵測原本的解析度的方法 
 
nScreenWidth = SysMetric(1) 
 
nScreenHeight = SysMetric(2) 
 
 
2.變更解析度的方法 
 
Function ChangeRes
 
Lparameters tnWidth, tnHeight
 
Local  lcDevMode
 
lcDevMode = REPLICATE(CHR(0), 156)
 
Declare INTEGER EnumDisplaySettings IN Win32API STRING lpszDeviceName,;
 
	INTEGER iModeNum, STRING @lpDevMode
 
Declare INTEGER ChangeDisplaySettings IN Win32API STRING @lpDevMode ,;
 
	INTEGER dwFlags
 
EnumDisplaySettings(NULL,-1, @lcDevMode)
 
lcDevMode = STUFF(lcDevMode, 109, 4, LongToStr(tnWidth))
 
lcDevMode = STUFF(lcDevMode, 113, 4, LongToStr(tnHeight))
 
ChangeDisplaySettings(@lcDevMode, 0)
 
Endfunc
 
 
 
Function LongToStr
 
Lparameters lnLongVal
 
Local lnCnt, lcRetStr
 
lcRetStr = ''
 
For lnCnt = 24 TO 0 STEP -8
 
	lcRetStr = CHR(INT(lnLongVal/(2^lnCnt))) + lcRetStr
 
	lnLongVal = MOD(lnLongVal, (2^lnCnt))
 
Next
 
Return lcRetStr
 
Endfunc
 
 
 
3.使用方法 
 
3.1.先偵測原本的解析度,存入nScreenWidth 及nScreenHeight 
 
3.2.假設解析度變更為1024*768→ChangeRes(1024,768) 
 
3.3.解析度變更回來ChangeRes(nScreenWidth,nScreenHeight ) 
 
 
4.補充說明 
 
4.1.此解析度變更非永久性變更,關機重開後會變回原設定 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		kechange
 
 
  註冊時間: 2004-12-16 文章: 81
 
  第 5 樓
  | 
		
			
				 發表於: 星期三 一月 12, 2005 12:05 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				3Q..感激不盡...太感動了......
 
 
您的大恩大德..小弟盡生難忘.. | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		bin1x
 
 
  註冊時間: 2004-08-27 文章: 462
 
  第 6 樓
  | 
		
			
				 發表於: 星期六 五月 14, 2005 11:12 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				changeres 是幾版的命令   (眼睛太大了)  
  bin1x 在 星期日 五月 15, 2005 8:22 am 作了第 4 次修改 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		garfield Site Admin
  
  註冊時間: 2003-01-30 文章: 2160
 
  第 7 樓
  | 
		
			
				 發表於: 星期日 五月 15, 2005 12:11 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | bin1x 寫到: | 	 		  | changeres 是幾版的命令 | 	  
 
是 Mibh, 創造出來的版本    _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		yctsai
 
 
  註冊時間: 2003-04-11 文章: 180
 
  第 8 樓
  | 
		
			
				 發表於: 星期一 五月 16, 2005 2:52 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 請問當800*600切到1024*768時,下方的工具列(開始..)會變成在畫面中間地帶,這是正常的嗎? thanks | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |