現在我在開發一個螢屏設定工具,我使用EnumDisplayDevices列舉到的顯示幕的編號與windows系統下螢屏識別的編號不一致,請問怎么樣才能獲得顯示幕的編號?
uj5u.com熱心網友回復:
不要沉了啊!!uj5u.com熱心網友回復:
什么叫編號 1 2 3 ?uj5u.com熱心網友回復:
To : derekrose是的,像1,2,3一樣,參考windows自帶的螢屏設定工具,當點擊識別時候,會在每個螢屏上自動彈出一個數字標識
uj5u.com熱心網友回復:
是的,像1,2,3一樣,參考windows自帶的螢屏設定工具,當點擊識別時候,會在每個螢屏上自動彈出一個數字標識
uj5u.com熱心網友回復:
我不懂,沒弄過這個,我猜想應該是你自己管理這個編號的意思是吧?
點擊識別的時候,每個螢屏上有一個id是吧?
uj5u.com熱心網友回復:
什么叫編號 1 2 3 ?
是的,像1,2,3一樣,參考windows自帶的螢屏設定工具,當點擊識別時候,會在每個螢屏上自動彈出一個數字標識
我不懂,沒弄過這個,我猜想應該是你自己管理這個編號的意思是吧?
點擊識別的時候,每個螢屏上有一個id是吧?
恩 是的,就是那個意思
uj5u.com熱心網友回復:
什么叫編號 1 2 3 ?
是的,像1,2,3一樣,參考windows自帶的螢屏設定工具,當點擊識別時候,會在每個螢屏上自動彈出一個數字標識
我不懂,沒弄過這個,我猜想應該是你自己管理這個編號的意思是吧?
點擊識別的時候,每個螢屏上有一個id是吧?
恩 是的,就是那個意思
所以你的困難是什么?問題在哪?
get不到所有的螢屏資訊? 因為編碼相當于是你自定義的,你需要自己convert一下,用一個map什么的
uj5u.com熱心網友回復:
什么叫編號 1 2 3 ?
是的,像1,2,3一樣,參考windows自帶的螢屏設定工具,當點擊識別時候,會在每個螢屏上自動彈出一個數字標識
我不懂,沒弄過這個,我猜想應該是你自己管理這個編號的意思是吧?
點擊識別的時候,每個螢屏上有一個id是吧?
恩 是的,就是那個意思
所以你的困難是什么?問題在哪?
get不到所有的螢屏資訊? 因為編碼相當于是你自定義的,你需要自己convert一下,用一個map什么的
我用的那個介面可以獲得所有螢屏的資訊,但是列舉到的顯示幕不是按系統的顯示幕順序來的,而我需要實作螢屏識別功能(使螢屏編號與系統一致)。
uj5u.com熱心網友回復:
什么叫系統的顯示幕順序uj5u.com熱心網友回復:
什么叫系統的顯示幕順序
我說的顯示幕順序其實指的就是系統分配給每個顯示幕的編號。像1,2,3,那樣。這樣當螢屏識別的時候,系統就可以相應的在每個顯示幕上顯示對應的所屬編號。
uj5u.com熱心網友回復:
實際上這個編號是你給定的吧,并不是系統分配的吧uj5u.com熱心網友回復:
什么叫系統的顯示幕順序
我已私信給你,方便的話可以加Q請教你
uj5u.com熱心網友回復:
實際上這個編號是你給定的吧,并不是系統分配的吧
uj5u.com熱心網友回復:
什么叫系統的顯示幕順序
我已私信給你,方便的話可以加Q請教你
誒 我在作業
uj5u.com熱心網友回復:
實際上這個編號是你給定的吧,并不是系統分配的吧
你每個螢屏給一個編號不就ok了
uj5u.com熱心網友回復:
什么叫系統的顯示幕順序
我已私信給你,方便的話可以加Q請教你
誒 我在作業
這個問題卡我幾天了,下班后可以加Q聊?
uj5u.com熱心網友回復:
你說一下難點在哪,比如我們get到了3個螢屏 m1 m2 m3 ,我們就分配給他們1 2 3不就ok了uj5u.com熱心網友回復:
實際上這個編號是你給定的吧,并不是系統分配的吧
你每個螢屏給一個編號不就ok了
開始打算這樣的,但是更改顯示幕外觀這一欄實作起來有點難度,我做的這個小工具不能完全代替windows自帶的螢屏設定,所以需要系統的編號
uj5u.com熱心網友回復:
系統的編號 是什么,用來做什么?uj5u.com熱心網友回復:
你說一下難點在哪,比如我們get到了3個螢屏 m1 m2 m3 ,我們就分配給他們1 2 3不就ok了
之前想過這個方法的,但是不太可行,主要原因有兩點
1.我這個工具無法完全替代windows自帶的螢屏設定,主要是很難實作更改顯示幕外觀
2.多個螢屏時候,有時候我要設定顯示幕的擴展方向,這時候就需要用到windows自帶的更改顯示幕外觀功能,而這個功能所依賴的編號就是系統分配的編號
uj5u.com熱心網友回復:
你要實作的東西是什么 更改顯示幕外觀這一欄?它的哪個功能你實作不了uj5u.com熱心網友回復:
所以你get不到系統的編號 而你卻需要用到這個編號?uj5u.com熱心網友回復:
所以你get不到系統的編號 而你卻需要用到這個編號?
恩 就是想獲得系統分配的編號
uj5u.com熱心網友回復:
Here's a list of API functions related to multiple monitors:ChangeDisplaySettingsEx: changes display settings
EnumDisplayDevices: enumerates all displays, including disabled ones
EnumDisplayMonitors: enumerates all enabled displays
EnumDisplaySettingsEx: gets display settings
GetMonitorInfo: gets information about a monitor such as the working area
MonitorFromPoint: returns the monitor containing a given point
MonitorFromRect: returns the monitor containing a given rectangle
MonitorFromWindow: returns the monitor containing a given window
API functions specific to Windows 7:
QueryDisplayConfig: returns current display settings
SetDisplayConfig: sets current display settings
看看有沒有需要的 我其實也不知道什么編號
uj5u.com熱心網友回復:
Here's a list of API functions related to multiple monitors:
ChangeDisplaySettingsEx: changes display settings
EnumDisplayDevices: enumerates all displays, including disabled ones
EnumDisplayMonitors: enumerates all enabled displays
EnumDisplaySettingsEx: gets display settings
GetMonitorInfo: gets information about a monitor such as the working area
MonitorFromPoint: returns the monitor containing a given point
MonitorFromRect: returns the monitor containing a given rectangle
MonitorFromWindow: returns the monitor containing a given window
API functions specific to Windows 7:
QueryDisplayConfig: returns current display settings
SetDisplayConfig: sets current display settings
看看有沒有需要的 我其實也不知道什么編號
恩 謝了
uj5u.com熱心網友回復:
版主大人的理解能力……
uj5u.com熱心網友回復:
這個累啊。樓主,自己轉貼子到windows子版,那才是你應該提問的地方。來這個版,太浪費你的時間了。
uj5u.com熱心網友回復:

物理上M個設備,邏輯上N個設備。
就像硬碟,一個physical硬碟,可磁區為多個logical 硬碟。
多個物理硬碟,也可通過JBOD, RAID讓系統認為是一個硬碟。然后又可再磁區為多個。
顯示幕,六個顯示幕,在windows看來,就是一個解析度為 5760*2160的單一顯示幕。
也可以把4臺顯示幕,讓系統認為是一臺,兩臺,三臺,....
uj5u.com熱心網友回復:
頂上去 希望大神能夠給出個答案uj5u.com熱心網友回復:
頂上去,別沉了uj5u.com熱心網友回復:
假如有一個無符號8位資料255賦給一個byte型別資料 a;溢位后的a是多少?a=-1?a=0?a=-2?uj5u.com熱心網友回復:
假如有一個無符號8位資料255賦給一個byte型別資料 a;溢位后的a是多少?a=-1?a=0?a=-2?
????
uj5u.com熱心網友回復:
http://download.csdn.net/detail/w_sx12553/5027326 這個demo或許對你有用.uj5u.com熱心網友回復:
http://download.csdn.net/detail/w_sx12553/5027326 這個demo或許對你有用.
跟我的方法差不多,都是列舉,不能得到相應的編號。但還是要謝謝你
uj5u.com熱心網友回復:
還沒找到答案呢。頂上去uj5u.com熱心網友回復:
還沒找到答案呢。頂上去uj5u.com熱心網友回復:
我寫過關于多顯示幕的程式,所以有些了解,但是如果有不對,還請指出。Windows系統從來不會給某一個顯示幕分配一個編號!
你所看到編號,不過是系統在配置的時候,為了讓你分辨不同的顯示幕而顯示的編號。
Windows系統中的顯示幕始終又隱含一個編號!
在Windows系統中,通常一塊顯卡可以包含多個:DISPLAY_DEVICE,每一個DISPLAY_DEVICE下面可以掛接一個Monitor。
我當時是這樣做的:列舉系統中的顯卡,然后列舉下面的DISPLAY_DEVICE,對于每一個DISPLAY_DEVICE,檢查(可以通過EnumDisplaySettingsEx)是否掛接得有Monitor。如果有,就計數。
你所看到的編號就是這些Monitor被列舉出來的順序。
上面的方法我是在Windows7與intel 核心顯卡HD4000上測驗過的。2個顯示幕確實與Windows系統的編號一致。
個人猜測:事實上這個列舉程序所出現的結果,與系統無關,而是與顯卡硬體、驅動有關。
至于:你提到的不一致,在沒有硬體,沒看到代碼的情況下,不知如何解答。
uj5u.com熱心網友回復:
http://download.csdn.net/detail/w_sx12553/5027326 這個demo或許對你有用.
跟我的方法差不多,都是列舉,不能得到相應的編號。但還是要謝謝你
哦哦. 是的. 這只是一個簡單的demo. 之前做過一個遠程操作類似于系統自帶的"螢屏解析度" 設定那樣的功能...
uj5u.com熱心網友回復:

你這樣得到的跟下面插槽對應的. 比如在插槽中你只能1,2,4,5對應有實際的顯示幕插好. 所以你獲取的是1,2,4,5的,但"螢屏解析度"那里一般多少個顯示幕就從1~n的顯示,所以你可以自己判斷對應 1->1,2->2, 4->3, 5->4.. ;(
rp近一年前搞的東西了. 沒有回去看原來工程,希望沒有說錯. 對你有點幫助.)
uj5u.com熱心網友回復:
你這樣得到的跟下面插槽對應的. 比如在插槽中你只能1,2,4,5對應有實際的顯示幕插好. 所以你獲取的是1,2,4,5的,但"螢屏解析度"那里一般多少個顯示幕就從1~n的顯示,所以你可以自己判斷對應 1->1,2->2, 4->3, 5->4.. ;(rp近一年前搞的東西了. 沒有回去看原來工程,希望沒有說錯. 對你有點幫助.)
這個問題一直放著沒有解決,今天特地進來看了下帖子。
我之前有過跟你一樣的想法那就是一一對應。但問題是我不能獲取到系統對應編號顯示的資訊,無法跟我的對應編號的顯示幕資訊做出對比
uj5u.com熱心網友回復:
現在可否獲取顯示幕的ID?uj5u.com熱心網友回復:
我遇到了相同的問題,不知道樓主有沒有解決?若解決,請您指教一下,謝謝啦,我的郵箱[email protected]uj5u.com熱心網友回復:
我就想指定物理埠輸出,大牛的意見很有幫助,有沒有詳細一點的demo?uj5u.com熱心網友回復:
我也遇到這個問題了,我也是希望從API中獲取Window7的解析度識別出來的螢屏序號?不知道樓主是否已經解決了?我用的是C#軟體,請發我郵箱[email protected]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/129884.html
標籤:Windows客戶端使用
