問題タブ [edid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
13833 参照

windows - Windows XP/7 で EDID を取得するための Win32 コード

このページを見つけましたが、そこから有用な情報を取得できませんでした (レジストリで何かを検索しますが、見つからず、無限ループに陥ります)。

モニターのシリアル UID (「EDID 情報」) の取得に関するこの質問では、Linux ではなくWin32 C コード (または C/C++ DDKコードなど)の観点から同じ情報が必要です。

0 投票する
2 に答える
1854 参照

linux - Linuxで画面ベンダーとシリアル番号を取得する

Gdk::Screenコンピューターに接続されたモニターを表すインスタンスがあります。そのモニターのベンダーIDやシリアル番号を読み取るにはどうすればよいですか?

XScreenからベンダーIDとシリアル番号を取得することも十分です。

モニターのEDIDを読み取ることでも十分です。

何か案は?ありがとう!

0 投票する
3 に答える
5815 参照

c++ - モニターのシリアル番号を取得するには?

接続されているモニターのシリアル番号を C または C++ で取得する方法を知っている人はいますか? いくつかのコードを見つけましたが、それらは理解できない vbs で書かれています。C または C++ で記述されたサンプル コードが必要です。シリアル番号が EDID から読み取られることはわかっていますが、残念ながら方法がわかりません :( 誰か助けてくれませんか?

ありがとう

更新: モニターの種類も必要ですが、これも EDID から読み取ることができます。

0 投票する
2 に答える
1637 参照

c++ - EDIDから数値データを解析する方法

nVidia APIを使用してモニターのEDID情報を取得する方法があります。これにより、128個の符号なし文字の配列が得られます。しかし、ウィキペディアでedidデータ形式を読んでいると、製造元IDの文字(バイト8〜9)が5ビットの数値で表されていることに気付きました。そのため、意味のあるデータとしてC++に読み取る方法がわかりません。 。

私の計画は、edidの形式に一致する構造体型を定義し、char配列をその構造体型にキャストすることでしたが、C ++で知っている最小サイズのデータ​​型は1バイトであるため、それが可能かどうかはわかりません。サイズで。

ありがとう。

明細書。

0 投票する
1 に答える
5167 参照

windows - EDID情報を監視するためのForms.Screen.DeviceNameの信頼できるマッピングを探しています

EDIDブロックから派生した情報(モニターモデル、ID、S / Nなど)を対応するモニターのダイアログに表示するアプリケーションを開発しています。

このコードは、ディスプレイのEDID情報を見つけるために機能します。HKLM \ SYSTEM \ CurrentControlSet \ Enum \ DISPLAY \ [Monitor] \ [PnPID] \ Device Parameters\EDIDの下にあるDISPLAYキーを列挙してEDID情報を抽出します。

更新:上記のコードは、レジストリのPnP使用の「副作用」に依存しています。現在、SetupAPIを使用してモニターを列挙しています。これは、接続/削除されているモニターを正しく処理します(上記のリンクのコードとは異なります)。

Windows.Forms.Screen.AllScreens [](\\。\ DISPLAY1、\\。\ DISPLAY2など)の各画面を、上記のレジストリ検査から返されたエントリと関連付けようとしています。

注:以下のコードブロックでは、DisplayDetails.GetMonitorDetails()が、SetupAPIを使用してより堅牢なレジストリ列挙コードに置き換えられましたが、返されるデータは同じです。

例えば

出力:

情報:モデル:DELL P2411H、MonitorID:DELA06E、PnPID:5&2e2fefea&0&UID1078018、Serial#:F8NDP0C ... PU

これは画面:\\。\ DISPLAY1と相関関係がありますか?

情報:モデル:DELL P2411H、MonitorID:DELA06E、PnPID:5&2e2fefea&0&UID1078019、Serial#:F8NDP0C ... AU

これは画面:\\。\ DISPLAY2と相関関係がありますか?


回答:いいえ

テストでは、これらが確実に相関していないことがわかりました(最初に列挙されるディスプレイが\\。\ DISPLAY2であるシステムがあります)。

私の質問: 特定のForms.ScreenのEDID情報を確実に取得する方法はありますか? EDIDブロックを取得できますが、これをUIトップレベルフォームに関連付けるパスが見つかりません。私のユースケースでは、2つ(またはそれ以上)のモニターが同じモデルと解像度であり、S / Nが数桁異なるだけなので、ユーザーにプロンプ​​トを表示することは望ましくありません。

Forms.Screen API、Win32 EnumDisplay、その他のレジストリGUID(PnPおよびドライバー関連)に続くパスを探しましたが、有望なパスは見つかりませんでした。

WMI Win32_DesktopMonitor API(Windows 7)も調査しましたが、Windows.Forms.Screen.AllScreens[]エントリとの関連付けに役立つ情報がこれ以上ないようです。

これを行う方法があるかどうかは疑わしいです。それはSetupAPIを介して行われますが、まだ見つけていません。

0 投票する
1 に答える
3214 参照

c++ - EDIDからモニターの型番を読み取るには?

レジストリには、持っているモニターの数に応じて、1 つ (または複数) のキーがあります。私の場合、これは次のとおりです。

私の質問は、C または C++ を使用してすべての情報ではなく、モニターのモデル (「SyncMaster」など) のみを読み取るにはどうすればよいですか?

EDID の形式については、http: //en.wikipedia.org/wiki/Extended_display_identification_dataで説明しています。

0 投票する
0 に答える
113 参照

edid - 時々間違った文字を返すときの EDID の使い方

皆さん、

環境: Ubuntu 12.04 最小 + openbox。

C ベースのアプリケーションでは、承認されたディスプレイ デバイスにのみ情報を表示できます。EDID を使用して、接続されたディスプレイ デバイスの情報を取得します。

すべてが期待どおりに機能します。ただし、EDID で文字化けが返されることがあります。たとえば、SAMSUNGとして出てくる場合がありますSAMSyNG

EDID 情報を取得するためのプログラミング ロジックは簡単です。EDID自体の信頼性が低い気がします。他の誰かがそのような問題に直面したことがあるかどうか、そして問題を克服するためにプログラムで何をしたか疑問に思っています。

ご意見をお寄せいただきありがとうございます。

よろしく、
ピーター

0 投票する
1 に答える
2923 参照

c# - モニターから直接 EDID を読み取ります。ドライバーはありません。

をモニターから直接抽出しようとしているこのプロジェクトを取得しました。目標は、ドライバーをインストールせずにを使用して情報を取得できることはわかっていますが、ドライバーがインストールされていないと正しい情報が提供されないため、このプロジェクトではこれは不可能です。インストールを試行すると動作しないため、ドライバーに解決策を尋ねていると思います。ドライバーがインストールされている場合、解像度を表示できるコードは次のとおりです。

0 投票する
1 に答える
454 参照

c# - AMD ADL を使用して C# でモニター EDID を取得する

AMD ADL を使用して、システムに接続されたディスプレイを列挙および操作しています。私が必要とする機能の 1 つは、ディスプレイ EDID を読み取って解析する機能です。EDID のバイト配列表現を解析できますが、EDID を取得できません。ADL ドキュメントに基づいて、ADLDisplayEDIDData 構造体を定義し、ADL_Display_EdidData_Get 関数をインポートしました。ただし、私のコードを実行すると、retvalue -3 のエラーが発生します。この戻り値は、無効なパラメーターを示します。

EDIDData 構造:

DLL インポート:

宣言に誤りはありますか? ADL を使用して EDID 情報を取得した経験のある人はいますか?

前もって感謝します。