OS 側での状況を確認して見ましょう。
分かったからと言っても、個人では、手が出無い のですが、
何かの参考にはなるかな?。
先の投稿 OS と [Alt]+[PrtScrn] に絡んで では、
アプリ側の QA サイト(バグ報告)で、報告してある旨、書きました。
其の中で、開発者さんが、GIMP 側から見た状況を上げてくれていましたね。
では、
本家本元、Microsoft さんの .Netframework を使って、Clipboard の中が どうなっているか、確かめて見ます。
そう、Windows 側から見た状況 になります。
先に書いた様に、Windows 10 側の キーバインド で、
Print Screen キー に Snipping Tool を割り当てましたから、
Windows 10 と 11 とで、似た設定になっている前提です。
共に、キー操作で画像を取り込んだ状態で、データ種類を列挙します。
少し専門的になるので、勘弁して下さい。
コードの触り も載せる予定。
久しぶりに C# で書いたので、
四苦八苦 でしたが、数時間の奮闘でした。
余計に時間が掛かったのは OS 情報の取得部分 です。
別投稿 で取り上げても良いのかも。
先ずは、結果を。
双方の OS で、
Snipping Tool 経由で転送した場合 と、
従前のキー操作 [Alt}+[Print Screen] で転送した場合。
合計4種類 です。
取り込ませるのは、Window の画像 Screen Shot。
同じ実行ファイルを 両 OS 上で実行しました。
結構な差異があるもんですね。
成程!。
では、コード部分を掲載しましょうか。
C# Form .Netframework 抜粋 です。
IDataObject data = Clipboard.GetDataObject();
System.Text.StringBuilder sb = new System.Text.StringBuilder();
string item = "";
if (data != null)
{
if (data.GetDataPresent(DataFormats.Text))
{
item = "Text";
}
if (data.GetDataPresent(DataFormats.Bitmap))
{
item = "Image";
}
foreach (string fmt in data.GetFormats())
{
sb.Append(fmt);
sb.Append(Environment.NewLine);
}
label1.Text = item;
textBox1.Text = sb.ToString();
}
いやぁ、OS の進化 って 厄介な事も あるんですね。
0 件のコメント:
コメントを投稿