LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

LabVIEWのライブラリ関数呼び出し

パソコン起動時に解像度が変更されてしまう問題を解決したく、
LabVIEW7.1で、
ライブラリ関数呼び出しノードを使って
WINAPI関数を操作することを検討しています。
しかし、User32.dllの
「EnumDisplaySettingsA」で解像度が取得できません。
引数の構造体をクラスタで作成していますが、
戻り値が0(異常)になります。
取得完了後に「ChangeDisplaySettingsA」で解像度を設定する予定です。
御社でサンプルがあれば、頂きたいのですが・・・。
あるいは、私が作成中のVIを送付させて頂き、
不備な点をご指摘頂けないでしょうか?
0 Kudos
Message 1 of 6
(3,821 Views)

いつもお世話になっております。
日本ナショナルインスツルメンツ技術部のタンと申します。

弊社のサンプルの中にはありませんが、フォーラム投稿"Changing Windows Resolution/color" では同じ動作を行うサンプルがありました。ご参照いただければと思います。

今後ともよろしくお願い致します。

Thant Sin Naing
Application Engineer
日本ナショナルインスツルメンツ技術部

 

 

0 Kudos
Message 2 of 6
(3,808 Views)
いつもお世話になっております。
ベスト測器 木山です。
 
ご回答有難うございました。
早速、サンプル「SetDisplayMode.vi」を確認させて頂きました。
ただ、lpDevMode入力が配列では項目が不明なため、
lpDevModeをクラスタで定義し、それを配列に変換して入力したいと考えております。
なぜ、lpDevMode配列の26番目がBitPerPixelなのでしょうか?
(dmDeviceNameやdmFormNameはどのように定義するのでしょうか。)
 
以上、よろしくお願い致します。
0 Kudos
Message 3 of 6
(3,793 Views)

いつもお世話になっております。
日本ナショナルインスツルメンツ技術部のタンと申します。

恐縮ですが、「EnumDisplaySettingsA」はWindowsのDLLの関数でありますので、パラメタの詳細に関してはMSDN等でご確認いただければと思います。

よろしくお願い致します。

Thant Sin Naing
Application Engineer
日本ナショナルインスツルメンツ技術部

0 Kudos
Message 4 of 6
(3,768 Views)

いつもお世話になっております。

ベスト測器 木山です。

パラメータの詳細は既に確認しています。

サンプル「SetDisplayMode.vi」では、

lpDevMode配列の26番目でなぜ、BitPerPixelが設定できるのでしょうか?
26番目までに存在するdmDeviceNameやdmFormNameは

数値配列でどのように定義しているのでしょうか?

(dmDeviceNameやdmFormNameは何番目で設定できるのでしょうか。)

※弊社製品で、VIを実行する前に毎回Windows上で解像度を変更しなければならず、大変困っています。

(VI処理内で解像度も変更したいと考えています。)

0 Kudos
Message 5 of 6
(3,756 Views)

いつもお世話になっております。
日本ナショナルインスツルメンツ技術部のタンと申します。

こちらで分かっていることでありましたらお役に立てたいと思いますが、Windows OS内のDLLの関数に関しましては分かりかねまのでご理解いただければと思います。上記に紹介いたしましたサンプル自体もユーザーから投稿されたサンプルで、共有していただきたいと思い、紹介いたしました。

一つアドバイスとしましてはEnumDisplaySettingsA関数かたの戻り値であるlpDevMode配列の、中身を確認してみてください。その数値データからお調べの情報が分かるかもしてません。

よろしくお願い致します。

Thant Sin Naing
Application Engineer
日本ナショナルインスツルメンツ技術部

0 Kudos
Message 6 of 6
(3,746 Views)