問題タブ [getsystemmetrics]
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.
c# - .Net の Nativemethods.GetSystemMetrics 関数の入力値
この関数は、あらゆる種類のシステム値にアクセスする方法のようです。たとえば、nativemethods.GetSystemMetrics(4096) は、セッションがリモートかローカルかを返します。ウェブ上で見つけることができるのは特定の例だけです。入力パラメータ値/それらが返すものの完全なリストをどこで見つけることができるか知っている人はいますか? とても重宝しそうです。
c - GetSystemMetrics()のリンクエラーを解決するにはどうすればよいですか?
メインディスプレイの高さと幅を取得するために、次を使用しようとしています。
ただし、未解決の外部リンクエラー(LNK1120
)では失敗します。user32.lib(ここに記載されている)にリンクしようとしましたが、同じエラーとwmbase.lib(ここに記載されている)にリンクすると、wmbase.libが存在しないというエラーが表示されました。私は何が間違っているのですか?
私はC++ではなくプレーンオールCのみを使用していることに注意してください。これは、メインディスプレイの画面解像度(ピクセル単位)を取得するために使用するのに適切な関数ですか?
現在、これをMSVCでコンパイルしようとしていますが、他のコンパイラに移植可能なソリューションをお勧めします。
ありがとう。
編集
したがって、私が探していたパラメータはSM_CXSCREEN
andであり、andでSM_CYSCREEN
はないように見えます。しかし、私はまだこれをコンパイルすることができません。SM_CXBORDER
SM_CYBORDER
それが何かを明らかにした場合の実際のエラーは次のとおりです(user32.libにリンクされている場合):
(Python / Cモジュールをコンパイルしようとしているので、奇妙なディレクトリが表示されます)
windows - デスクトップ設定の変更についてWindowsに通知するにはどうすればよいですか?
プログラムによって一部の外観設定が変更されたことをWindowsシステムに通知するにはどうすればよいですか?
私が取り組んでいるのは:
HKEY_CURRENT_USER\コントロールパネル\デスクトップ->FontSmoothing+ FontSmoothingType
標準的な方法は何ですか?たぶんメッセージがあります。どこに送ればいいですか?
excel - Excel VBAで外部モニターのサイズを見つける
モニターのサイズを見つけるために、私は以下を使用しています:
その後:
これはメイン モニターでは問題なく機能しますが、外部モニターのサイズを確認するにはどうすればよいですか?
winapi - ダイアログを含めるために必要な最小サイズの計算
ダイアログを含む垂直方向と水平方向の両方の最小サイズを計算したいと思います。GetClientRect を使用して幅と高さを決定しました。次に、垂直スクロール バーが必要な場合の幅について、GetSystemMetrics (SM_CXVSCROLL) + GetSystemMetrics (SM_CXSIZEFRAME) を追加しましたが、数ピクセル足りないようです。
スクロール バーの有無にかかわらず、水平方向と垂直方向の両方の寸法について、どの GetSysMetrics を考慮する必要がありますか?
c# - ウィンドウのドロップシャドウの寸法を取得する
ウィンドウのドロップシャドウの寸法を知る必要があります。GetSystemMetrics WinAPI関数を介して値を受信しようとしましたが、渡すパラメーターが見つかりませんでした。この値をグローバルに(または単一のウィンドウハンドルに対して)取得する方法について何かアイデアはありますか?ドロップシャドウの幅はウィンドウの種類(ダイアログ/通常など)によって異なることを知っています。IbwはC#を使用してこの機能を実装しますが、C++でも問題ありません。
c# - GetSystemMetrics() が .NET 4.5 と .NET 4.0 で異なる結果を返す
.NET 4.0 -> .NET 4.5 アプリケーションの移行プロセス中に、非常に奇妙な動作を発見しました。この短いコード スニペットまで、この問題を追跡することができました。
Target Framework = 4.0
(および2.0、3.0、3.5)でコンパイルすると、出力されます8x8
でコンパイルするとTarget Framework = 4.5
、出力されます4x4
このサンプルを MSVS2012 デバッガーで実行すると、常に出力も出力されます4x4
(任意のターゲット フレームワークを使用)。
他のオプション (ターゲット フレームワーク プロファイル、ターゲット プラットフォーム、Aero の有効化/無効化) は結果に影響しません。出力を変更するのは、ターゲット フレームワークとデバッガーでの実行だけです。この問題は 3 台のコンピューターで再現できましたが、残念ながら、インストールされているソフトウェアに関してはほとんど同じです。
- Windows 7 Ultmate SP1 (ロシア語、すべての更新プログラムがインストール済み)、MSVS2012 (英語/ロシア語) Update 1
- Windows 8 (仮想マシン上)
SystemParameters
現在、リフレクションを使用して呼び出すいくつかの .NET クラス (たとえば) にパッチを適用することを考えていますGetSystemMetrics()
が、正しいメトリック値を取得する方法がわかりません。
質問:
- 何か不足していますか?
GetSystemMetrics()
ターゲット フレームワークによってどのように影響を受ける可能性がありますか? GetSystemMetrics()
.NET 4.5 アプリから呼び出して正しい結果を得る方法はありますか?
この問題を解決するための提案をお待ちしております。また、問題を再現できない場合は、システムの簡単な説明をコメントに残してください。
c++ - MFC C++ でデスクトップ解像度を取得する
私は、MFC C++ で書かれた部分的に開発された 10 年前のコードをいくつか継承しました。私はアプリの更新と完成を任されています。
CDialogChild クラスでは、.h ファイルで次のようになります。
私はまだコードとその背後にあるロジックを理解しようとしていますが、解決策を動的に取得することにしました。.h とマジック ナンバーから "static" キーワードを削除し、コンストラクターの初期化リストでそれらを定義しようとしました。
私の解像度は 1366x768 です。Visual Studio 2013 デバッガーで得られる数値は、"メモリにアクセスできません" から数百万の数値までさまざまです。
次に、初期化リストではなく、コンストラクターでそれらを初期化することにしました。ヘッダーの「const」キーワードを両方の変数から削除し、デバッグ出力にそれらの値を出力すると考えました。これは私のコードです(それほどエレガントではありませんが、MFCの規則を理解しています):
実行すると、「ss2 >> src2」で例外がスローされ、[16 進アドレス] へのアクセス違反書き込みが発生します。
それで、何が起こっていて、さらにどのような情報を提供する必要がありますか? 私が直面している問題は、別の問題のトラブルシューティング中に発生したものです。そのため、どちらかまたは両方のヘルプがあれば素晴らしいです!
編集
Mark のコメントのおかげで、すべての LPTSTR 変数の初期化を「new TCHAR()」に変更し、その特定の問題を修正しました。デバッグ出力で文字列を実行することができました。これは正しい解像度を示していました (VS デバッガー自体では間違っていましたが)。どうもありがとうございました! これは、変数をコンストラクターの初期化リストに戻し、それらを再び「const」にした場合でも機能します:)
ただし、新しいエラーが発生しました。これは最終的にはこの #ifdef ブロックで発生する問題ではありませんが、現在発生しているエラーは、私が書いた他のコードでポップアップする可能性があります。
コード:
ランタイムが削除コマンドに達したときにエラーが発生し、.exe ファイルがブレークポイントをトリガーしたことが原因です。
python-2.7 - Windows PC を使用して Python で GetSystemMetrics() が異なる/間違った値を返さないようにするにはどうすればよいですか?
Python 2.7 を使用して、Surface Pro 第 1 世代 Win 8.1 PC からモニターの解像度を出力するために、このコードを使用しています。
しかし、問題は、コマンド プロンプトを介して実行する場合と、Python シェルを介してスクリプトを実行する場合で、異なる結果が得られることです。
スクリプトを実行すると 1280x720 になりますが、IDLE シェルを使用すると 1920x1080 になります。
現在、これを Surface Pro で実行しているので、これが DPI スケーリングと関係があることはほぼ確実です (誰かがここで同様の問題を提起しました)。この場合、DPI スケーリングが Python IDLE で無効になっていることが原因であるに違いありません。
では、このコードの実行方法や実行しているマシンの種類、または DPI スケーリングが無効になっているかどうかに関係なく、このコードを実行したときに一貫した正確な結果が得られるようにするにはどうすればよいでしょうか? 多分CEF Python?
どんな助けでも大歓迎です。ありがとうございました。