HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2018
0524
ぺけぽんWindows10でのデスクトップサイズの取得方法6解決


ぺけぽん

リンク

2018/5/24(Thu) 11:29:13|NO.84484

お世話になります。

デスクトップサイズをginfo_dispx、ginfo_dispy、あるいはginfo(20)、ginfo(21)で
取得する場合、例えばWindows10では、「拡大縮小とレイアウト」を設定しておりますと、
前述の命令で正しいデスクトップサイズを取得できない場合があります。

仮に「拡大縮小とレイアウト」の設定にて「150%」と設定しますと、
デスクトップの幅が「2736 pixel」であっても、ginfo_dispxの値は「1824 pixel」
となり、1824 を 1.5倍にする計算を行わなければ、デスクトップの幅を正しく取得
できない状況です。

もちろん、「拡大縮小とレイアウト」における倍率を取得できれば、その情報をもとに
デスクトップサイズを正しく取得できますし、そもそも、「拡大縮小とレイアウト」を
100%に設定すれば、このような問題は回避できるのですが、倍率設定に関係なく、
正しいサイズを取得したいと考えております。

そこでお知恵をお借りしたいのですが、このような問題を解消するためのヒントを
いただければ幸いです。
倍率設定の値を取得する方法をご教示いただく形でも構いません。

よろしくお願い申し上げます。



この記事に返信する


沢渡

リンク

2018/5/24(Thu) 11:40:45|NO.84485

この↓サイトを参考にしてマニフェストを書き換え、高DPIに対応させるとどうでしょうか?
http://d.hatena.ne.jp/tsukaban/20130623/p1



ソラ

リンク

2018/5/24(Thu) 11:51:29|NO.84486

くっ・・・一歩遅れた。
同じく沢渡さんが貼ったURLのやり方で出来ると思います。

#include "gdi32.as" #define LOGPIXELSX $00000058 #define LOGPIXELSY $0000005A #define ctype XSIZ(%1) (double(%1)*XDPI/96) #define ctype YSIZ(%1) (double(%1)*YDPI/96) GetDeviceCaps hdc,LOGPIXELSX:XDPI=double(stat);X方向のdpiを取得 GetDeviceCaps hdc,LOGPIXELSY:YDPI=double(stat);Y方向のdpiを取得 mes "DPI:"+XDPI+"x"+YDPI+"" mes "取得された値は"+ginfo_dispx+"x"+ginfo_dispy+"" mes "正しい値は"+XSIZ(ginfo_dispx)+"x"+YSIZ(ginfo_dispy)+""



MIZUHIKI

リンク

2018/5/24(Thu) 16:42:38|NO.84488

補足でマニフェストの書き換え方です。


#packopt manifest "manifest.txt"

1. スクリプト冒頭に上記を追加。
2. 沢渡さんに紹介して頂いたリンク先のマニフェスト全文をコピペして"manifest.txt"としてスクリプトと同じフォルダに保存する。
3. メニュー>HSP>実行ファイル自動作成(Ctrl+F9)

スクリプトエディタから直接実行(F5)してもマニフェストは反映されません。
実行ファイル作成時に書き換えられますので、ご注意ください。



MIZUHIKI

リンク

2018/5/24(Thu) 16:49:00|NO.84489

すみません、再補足です。

上記マニフェストの書き換えはHSP3.5で追加された機能です。
バージョンが3.5未満の場合はアップデートしてください。



ぺけぽん

リンク

2018/5/24(Thu) 17:35:35|NO.84490

沢渡さん、ソラさん、早速アドバイスをいただき本当にありがとうございます。

沢渡さんから紹介いただいたWebページ上のサンプルプログラム、ソラさんから頂いた
サンプルプログラムを実行してみましたが、残念ながらそのままでは問題を解決できま
せんでした。
私のマシンはWindows10、開発環境はHSP3.5でありますが、私のマシン固有の問題である
可能性もあるかと思います。

大変貴重なヒントを頂きましたので、現在、自身で解決できるよう調べておりますが、
もし、他にヒントとなるような情報がございましたら、恐れ入りますが提供して
いただけると助かります。

よろしくお願い申し上げます。



ぺけぽん

リンク

2018/5/24(Thu) 17:44:27|NO.84491

MIZUHIKIさん、貴重なアドバイス、まことにありがとうございます。
MIZUHIKIさんからのコメントに気付かず、沢渡さんとソラさんへ返信して
しまいました。

結論ですが、解決できました。

沢渡さんとソラさんのご教示どおりにプログラムを作成した上で
マニフェストを作成して読み込み、実行ファイルを作ることで、見事に解決できました。

まことにありがとうございました。



ONION software Copyright 1997-2021(c) All rights reserved.