DOBON.NETプログラミング道掲示板

■ 「新規作成」から投稿できます。
■ マルチポストされた投稿を見つけたときは、その投稿に返信することによりご報告ください。その際は匿名で投稿し、マルチポストされている場所を併記してください。
■ スパム対策のため、メールアドレスの先頭に"_"という文字が付加されています。
RSS 2.0 RSS 2.0 | RSS 0.91 | 携帯電話用 | 自分専用のアイコンを使用するには | 掲示板への要望 | 管理人に連絡 | お気楽掲示板
■ 24時間以内に作成されたスレッドは New で表示されます。
■ 24時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
Nomal全角シフト中にアクセスキーが効かない(5) | NomalDataAdapter.Updateで構文エラー(6) | Nomal抽象クラスで実装したクラスの情報を知る(3) | Nomal画面遷移(モーダルとモードレス)(2) | NomalProcessクラスからbatファイル実行後、KILLできない(2) | NomalGetDirectoriesでルートを指定するとエラーになる(3) | Nomal兆億万表記の文字列を数値に変換できる?(3) | NomalLinqにおける明示的型指定の方法(3) | Nomal2つのradの数値から1つの角度を求めるコードを改善できますか?(C++)(2) | Nomalコンソールアプリで、WebView2の利用(2) | NomalEntity Frameworkは、使えるか?(2) | Nomalデータベースからのテーブル名一覧の効率的な取得方法(3) | NomalC#のlong型でオーバーフローになる(2) | Nomal正規表現のパターン表記方法(2) | NomalWebView2によるスクレ―ピング(4) | Nomalこういた物を作れますか?(2) | Nomalツールボックスにtableadapterが表示されない(1) | NomalC# Chart X軸上のグラフ表示(3) | NomalVB.NETでBluetoothデバイスの電池残量を取得する方法(3) | Nomalクリスタルレポート 明細部のサブレポート(0) | Nomal重なったPictureBox同士を透過する方法(7) | NomalWindowsフォームデザイナについて(3) | Nomalvb.netでExcelファイル操作(7) | NomalVB.NETからcmdでpingを実行した時の結果(5) | Nomalvb.netでのExcelファイルそうさ(2) | Nomalキーボード+バーコードでキーボード入力を無効にしたい(6) | NomalVB2022でクリスタルレポートが開けない(2) | Nomalファイルとして配置したマニフェストを優先したい(2) | NomalTabPageの背景色(5) | NomalC#でJpeg圧縮のTiffファイルを作成したい(4) | Nomalエクセルのみ監視ができない(2) | NomalDataGridViewのVirtualModeを有効した場合の実装方法(4) | NomalExcelの数値 -> 日付みたいな関数?(2) | Nomaljumbo icon(256x256)が存在するか知る方法(6) | NomalDrawstringでの透過文字作成(3) | NomalSpinWait()を使う理由(2) | Nomalantecedentってなんですか?(2) | Nomalワンタイムパスワードのサイトに自動ログインしてアクセストークンを得る(3) | Nomalstyle.displayだと効率悪いから違うやり方をしたいです。(5) | Nomalテーブルを順番通りに直すプログラムを外部で読み込めるようにしたいです。(4) | NomalJSONの複雑な入れ子内部の値を取りたい。(3) | Nomalグリッド表示レコードをJSONに変換(5) | Nomalシステム時計の設定(3) | NomalSeleniumで開いているページのTableを編集したい(5) | Nomalソケット通信入門 ひらがな(4) | NomalVisual Basicでエラーが出る(3) | Nomalインストーラにて、ローミングフォルダにファイルを配置したい(0) | NomalRGB値の所得(2) | Nomal時間変数(文字列)の扱い(4) | NomalVB.net からAccessDBへの接続(2) | Nomal画像のスクロール(6) | Nomalタイマーの一括処理(6) | NomalTreeViewとDataGridViewのスクロールを同期(シンクロ)させたい(4) | NomalTreeViewの現在位置とDataGridViewの現在位置を合わせたい(7) | NomalPictureBoxの画像を連続保存(11) | NomalDataGridViewの特定セルにボタンを配置する方法(5) | Nomalフォームのリサイズ時にDataGridViewが再描画されない(4) | NomalテキストボックスのValidatingイベントよりも先に発生するボタン発生イベントは何でしょう?(2) | NomalPDFをフォーム上で表示させる方法につきまして(4) | NomalDataGridViewの行ヘッダーに行番号を表示した時のエラー(4) | Nomal継承元フォームで各フォームのボタン動作を検知したい(3) | Nomalラジオボタンの一括設定(7) | NomalWindowsエクスプローラからのドラッグ&ドロップ(2) | NomalRichTextBoxのテキストをpictureBOXへ(12) | Nomalクリックイベントでexeを作成できるか(2) | Nomal作成した白黒画像をWordに貼り付けてから「図として保存」(8) | Nomalアセンブリ情報が載らない(1) | Nomal先頭に空白(スペース)があるファイルを読み込んでRichTextBoxへ書き出すとスペースが削除える(6) | Nomalc#で日付型の定義の仕方で質問があります。(2) | NomalExcel Com オブジェクトの増殖(13) | Nomal二次元マップから値の取得(1) | NomalアプリでHDMIへ出す解像度を変えたい(4) | Nomal列車の時間ごとの位置情報を表示したいです。(2) | Nomal画像の中心を基点に回転(4) | NomalDataGridViewのドロップダウンリストの表示と選択後の値を分けたい(1) | NomalVB.NetでVB6.0と同じFontを指定しても同様に印刷されない(9) | NomalタッチキーボードでIMEを自動で切替えたい(6) | NomalVSTOによるエクセルアドインのインストーラーでのアップデート(1) | NomalMP4動画を再生する方法について(5) | NomalUrlにアクセスするとダウンロードされるファイルを捕まえる(2) | NomalLableのカラー色を文字変数から変更したい(5) | NomalLabelで文字単位の背景色(7) | NomalTEXTBOXのプロパティを文字列に(7) | Nomalタブレット等でスワイプによるスクロールを実装(2) | NomalPDFをフォーム上で表示させる方法につきまして(6) | NomalChart X軸上の描画を切り替えたい(0) | NomalRichTextBoxへのドラッグ&ドロップしたExcelファイルの扱い(3) | Nomal特定のPCだけ発生する「パディングは無効なので削除できません」のエラーの原因(6) | NomalASP.NET WebApi内でXmlReader.Create(url)がタイムアウトする(4) | NomalDatagridViewでファンクションキーを止めたい(5) | Nomal表示動作が重くなる(3) | Nomalbitmapを複数スレッドで処理したい(2) | NomalLoadOptionのパラメータの意味(3) | Nomalフォーム背景のみを半透明にしたい(5) | Nomal読み出し元フォームの位置取得方法(2) | Nomalコンストラクターに続く{}の意味(2) | Nomal1行で書くことできますか?(3) | NomalCommandBuilderによって作られるCommandTextの内容(5) | Nomalvb.netで7zの圧縮・解凍をしたい。(2) |



■記事リスト / ▼下のスレッド
■35479 / 親記事)  キーボード+バーコードでキーボード入力を無効にしたい
□投稿者/ たろう 一般人(4回)-(2023/08/04(Fri) 10:03:12)
  • アイコン環境/言語:[windows11/Visual Studio 2022/C#] 
    分類:[.NET] 

    バーコードを利用したシステムで、バーコードから情報を読みこんでいるときにキーボードを触るとバーコードから読み込んだ文字列の間に文字が入ってしまいます。

    バーコードはキーボードエミュレーションのため上記は仕方がないのですが、なにか対策をしなければいけません。

    バーコード入力時は特定のテキストボックスにフォーカスがあるので、その時だけキーボードを無効にしてバーコードのみを有効にするような事ができれば良いのですが・・・。

    なにか手だてはないでしょうか。


違反を報告
引用返信

▽[全レス6件(ResNo.2-6 表示)]
■35481 / ResNo.2)  Re[2]: キーボード+バーコードでキーボード入力を無効にしたい
□投稿者/ たろう 一般人(5回)-(2023/08/04(Fri) 13:48:31)
  • アイコンNo35480に返信(魔界の仮面弁士さんの記事)
    > そういった恐れのある環境では、
    > HID エミュレート型ではなく、
    > Serial 型の製品が採用されます。

    そうですよね・・・。
    いえ、まったくおっしゃる通りです。
    このバーコードもキーボードエミュレーションではないモードを持っているようですが
    元請けからできるだけいまの仕組みを変えたくないと言われている状況で何か方法がないか検討しておりました。


    > なお、複数のキーボードが入力されているケースなどでは、
    > SharpDX.RawInput を使うことで、どちらのキーボードの
    > キーが押されたのかを拾うことはできていますが、

    なるほど、キーボードが2つある場合は判断ができるのですね。
    バーコードでも可能かどうかは分かりませんが、参考にさせていただきます。


違反を報告
引用返信
■35483 / ResNo.3)  Re[1]: キーボード+バーコードでキーボード入力を無効にしたい
□投稿者/ とくま 一般人(3回)-(2023/08/04(Fri) 20:37:31)
  • アイコンNo35479に返信(たろうさんの記事)
    ざっくり検索して内容検証してないですが、ウィンドウズメッセージを解析する方向なら
    RAWINPUTHEADERの hDeviceが違うんじゃないかみたいな話とか
    https://teratail.com/questions/215793
    C++の分野だとか、デバイスドライバを自分で作るような話という方向の話はあるようです。

    本音は、
    バーコードリーダーが壊れたときとか、キーボード入力での代替作業が必要となるトラブルは
    必ず起こるので、そのような仕様自体、避けますけどね。現場に直接言われたなら、
    『USB端子をPCの前面に配置しますので、キーボード入力を避けたい場合は、物理的に抜く
    運用でどうでしょうか?』って言っちゃうw趣味で開発するならまだしも、費用対効果を考える
    システムでやる内容ではないようにも思います。
違反を報告
引用返信
■35484 / ResNo.4)  Re[3]: キーボード+バーコードでキーボード入力を無効にしたい
□投稿者/ kiku 一般人(1回)-(2023/08/07(Mon) 19:01:16)
  • アイコンNo35481に返信(たろうさんの記事)
    > ■No35480に返信(魔界の仮面弁士さんの記事)
    >>そういった恐れのある環境では、
    >>HID エミュレート型ではなく、
    >>Serial 型の製品が採用されます。
    >
    > そうですよね・・・。
    > いえ、まったくおっしゃる通りです。
    > このバーコードもキーボードエミュレーションではないモードを持っているようですが
    > 元請けからできるだけいまの仕組みを変えたくないと言われている状況で何か方法がないか検討しておりました。
    >
    >
    >>なお、複数のキーボードが入力されているケースなどでは、
    >>SharpDX.RawInput を使うことで、どちらのキーボードの
    >>キーが押されたのかを拾うことはできていますが、
    >
    > なるほど、キーボードが2つある場合は判断ができるのですね。
    > バーコードでも可能かどうかは分かりませんが、参考にさせていただきます。

    魔界の仮面弁士さんのコメントが妥当と思います。

    もし、入力文字列の長さが固定であれば、
    文字列長で判定し、キーボードからの入力があった場合
    文字列長が想定より長くなることで、
    判定できるのではと思いました。

違反を報告
引用返信
■35485 / ResNo.5)  Re[2]: キーボード+バーコードでキーボード入力を無効にしたい
□投稿者/ たろう 一般人(6回)-(2023/08/08(Tue) 10:48:27)
  • アイコンNo35483に返信(とくまさんの記事)

    デバイスドライバを作ったりということはさすがに難易度が高いので難しいですね…

    とりあえず、「キーボードを触らないで」とお願いする方向になるかもです。
    (「触ってねぇよ。システムの不具合だろう」って言われそうな気もしますが)

違反を報告
引用返信
■35486 / ResNo.6)  Re[4]: キーボード+バーコードでキーボード入力を無効にしたい
□投稿者/ たろう 一般人(7回)-(2023/08/08(Tue) 10:51:27)
  • アイコンNo35484に返信(kikuさんの記事)
    > 魔界の仮面弁士さんのコメントが妥当と思います。

    そうですね…
    文字列は固定長とは限らず、チェックデジットもないというか、フリーフォーマットのようで、用紙ごとに何が書いてあるかは分からないそうで、なかなか難しいです。

    キーボード入力だけはじくというのは簡単ではなさそうなので、本件はこれにて終了といたします。


解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-6]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35466 / 親記事)  VB2022でクリスタルレポートが開けない
□投稿者/ zingbay 一般人(1回)-(2023/07/08(Sat) 22:02:52)
  • アイコン環境/言語:[Win10/Win11 .net4.8] 
    分類:[その他] 

    VB2012+バンドル版のクリスタルレポートで動かしているシステムがあり、それをマイグレーションしようとしています。
    マイグレ先はVB2022+同じくバンドル版のクリスタルレポートです。
    CRforVS6413SP33_0-80007712.EXEをSAPのサイトよりダウンロードし、インストールしました。
    
    Visual Studioでvb2021のプロジェクトを開き、含まれているレポート(.rptファイル)をクリックして開こうとしたところ、「クラスが登録されていません」が表示され、開く事ができません。
    
    対応方法が分からず、こちらへポストさせて頂きました。
    SAP公式の掲示板で同じような事象が無いかを調べたのですが、見つける事ができませんでした。
    
    何か、調べる手立てや対応方法をご教示頂けませんか?
    
    
    

違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■35473 / ResNo.1)  Re[1]: VB2022でクリスタルレポートが開けない
□投稿者/ とくま 一般人(1回)-(2023/07/11(Tue) 23:13:38)
  • アイコン2023/08/04(Fri) 20:19:32 編集(投稿者)

    No35466に返信(zingbayさんの記事)
    Crystal Reportsは、名前は同じですが、途中で開発元会社が変わっており、バージョンの違いで
    運用方法なども違いが出てきます。
    https://ja.wikipedia.org/wiki/Crystal_Reports
    そのうち、バンドル版と呼ばれるのは、Visusl Studioに同梱されてインストールされていた
    VS2008までのものを指すと思います。
    https://userapps.support.sap.com/sap/support/knowledge/ja/1514084
    >VB2012+バンドル版のクリスタルレポート
    →存在しません
    >VB2022+同じくバンドル版のクリスタルレポート
    →存在しません
    >SAPのサイトよりダウンロードし、
    →「SAP Crystal Reports」と呼びますが、機能的に呼ぶならプラグイン版です。バンドル版とは別物になります。

    ただ、ここで落とし穴は、Visusl Studioが下位互換で、ターゲットフレームワークを
    変えられることです。PCにインストールされているのはVS2015で、とあるプロジェクトは
    VS2008と同じビルドという場合があります。プロジェクトのプロパティ画面で「対象のフレームワーク」
    となっている部分に .NET Framework のバージョンの何が設定されているかになります。
    https://learn.microsoft.com/ja-jp/visualstudio/ide/visual-studio-multi-targeting-overview?view=vs-2022
    .NET FrameworkとVisusl Studioの対応表は以下。
    https://qiita.com/nskydiving/items/3af8bab5a0a63ccb9893

    ここまでで、マイグレーション元の
    >VB2012+バンドル版のクリスタルレポート
    で、正確な@ビルド時の.NET Framework のバージョンとACrystal Reportsのバージョンを調べてください。
    https://wiki.scn.sap.com/wiki/display/BOBJ/Which+Crystal+Reports+assembly+versions+are+supported+in+which+versions+of+Visual+Studio+.NET
    https://wiki.scn.sap.com/wiki/display/BOBJ/SAP+Crystal+Products+-+End+of+Mainstream+Maintenance+Dates

違反を報告
引用返信
■35482 / ResNo.2)  Re[1]: VB2022でクリスタルレポートが開けない
□投稿者/ とくま 一般人(2回)-(2023/08/04(Fri) 20:21:36)
  • アイコンNo35466に返信(zingbayさんの記事)
    反応ないので、内容は当たり前のことかもしれないけど、備忘録としてまとめ。

    バンドル版というのが本当であれば、プロジェクトはVB2012だけど、ソースコード及びレポートファイルはVB2008で
    実質、『VB2008+バンドル版クリレポ』→『VB2022+プラグイン版最新クリレポ』のマイグレーションとかなるわけです。

    私は、バンドル版→プラグイン版の時点で、配布の手間が多かったため、見送りました。まず、ランタイムが全く別で
    ある点。そしてマージモジュールを含むインストーラを用意しないと正常に稼働しないという情報があったから
    です。Win11で.NetFramework3.5以下が廃止に向けて分離されてる臭いですが、2,3年はまだ延命できるでしょう。
    そうすればシステム全体を見直す余地も出てきます。ユーザ数が多いと、こんな判断も必要かもしれません。

    さて、
    VBもクリレポも、基本的にはバージョン違いを同じ端末にインストール可能だと思われますが、こういう
    マイグレーション時は別のPCを用意したほうが良いです。
    >Visual Studioでvb2021のプロジェクトを開き、含まれているレポート(.rptファイル)をクリックして開こうとしたところ
    いきなりこんなことせず、まずは『VB2022+プラグイン版最新クリレポ』で新規レポートを作成して正常稼働できる
    確認が必要です。プラグイン版クリレポは、開発環境にランタイムをインストールすると不具合が起きるという
    情報もあり、開発PCとテストPCも別のほうが良いでしょう。
    https://trapemiya.hatenablog.com/entry/2020/02/19/021446

    『VB2022+プラグイン版最新クリレポ』が動かないなら、公式サポートを受けるのが早いと思います。
    で、正常稼働ができることを確認してから、レポートの自動アップグレードが可能かテストします。
    アップグレードが走らなければ、おそらくそのまま移行はできないと思われます。
    そうなると、旧開発環境でレポートを開き、設定を見ながら、新規レポートで再作成するしかないと
    思われます。
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-2]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35476 / 親記事)  ファイルとして配置したマニフェストを優先したい
□投稿者/ ぺんたごん 一般人(6回)-(2023/07/20(Thu) 16:15:00)
  • アイコン環境/言語:[Windows 10 .NET 4.6.2] 
    分類:[.NET] 

    ごぶさたしてます。

    タイトル通りなんですが、経緯としては
    他社製ゆえにバイナリをいじれないWinForms使ったexeがあり、
    こちらはプラグインとしてアセンブリdllを作ってる状況です。

    このdllでもWinFormsで画面を出すようになってますが、
    そこにはWPF製のコントロールを配置してます。
    高DPI環境で動かすと、この画面が表示されるタイミングで
    親(exe)も子(dll)もフォームサイズが急に小さくなります。
    exeが高DPI対応してない(文字がぼやけてる)からだと思いますが、
    似た構成の実験exe+実験dllでも同じ現象となりました。

    (実験exeで)埋め込みマニフェストのdpiAwareをtrueにすると
    当然正しく動きますが、そうではない状態で
    diAwareをtrueにした〇〇.exe.manifestを
    exeと同じ場所に配置しても効いていない状態です。

    既にexeにマニフェストが埋め込まれている場合は外部マニフェストファイルは無視されるようですが、
    exeをいじらずにファイルの方を優先させる手段はあるのでしょうか。
    あるいは、exeのマニフェストを(リビルドせずバイナリ操作で)差し替えるツールなどはあるのでしょうか。

    ※exeのファイルプロパティの互換性タブで高DPI対応できるのは知ってますが、
     セットアップ端末全てで実施が必要なので最終手段です

    よろしくおねがいします。
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■35477 / ResNo.1)  Re[1]: ファイルとして配置したマニフェストを優先したい
□投稿者/ 魔界の仮面弁士 大御所(1557回)-(2023/07/20(Thu) 17:36:48)
  • アイコンNo35476に返信(ぺんたごんさんの記事)
    > exeのマニフェストを(リビルドせずバイナリ操作で)差し替えるツールなどはあるのでしょうか。

    Visual Studio の [ファイル]-[開く]-[ファイル] メニューで
    exe を開けば、RT_MANIFEST を直接改竄できます。


    ただし電子署名付の実行ファイルの場合は注意が必要です。

    改竄行為によって、署名検証を通過しなくなるためです(たとえば下記)。
     signtool verify /pa /v X:\target.exe
    その場合、無効な署名のままで放置するのか、それとも
    自前でコードサイニングを埋め直すか…という判断になるかと思います。
違反を報告
引用返信
■35478 / ResNo.2)  Re[2]: ファイルとして配置したマニフェストを優先したい
□投稿者/ ぺんたごん 一般人(7回)-(2023/07/21(Fri) 12:08:10)
  • アイコンNo35477に返信(魔界の仮面弁士さんの記事)
    ありがとうございます。
    exe改変も最終手段としておきます
    ※実際には私はWPFコントロール部品しか作っておらず、
     このdllを作ってるのはさらに別チームで、今回の現象を
     相談されてるだけなのでexeの詳細を知らない状態です

    あと調べていたらVista以降は埋め込まれたマニフェストが優先されるようですね…
    回避手段はなさそう

違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-2]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35467 / 親記事)  TabPageの背景色
□投稿者/ くるり 一般人(1回)-(2023/07/08(Sat) 22:40:02)
  • アイコン環境/言語:[.NET Framework 4.8 , Windows11 , VB.Net] 
    分類:[.NET] 

    お世話になっています。

    TabPageにTextboxを設置し、背景色(BackColor)をTabPageと同色にしようと試みていますが、TabPageの背景色初期値がTransparentのため、Textboxの背景色には設定できません。
    TabPageの親コントロールであるTabControlにはそもそも背景色を設定するプロパティはなく、かといって、Formの背景色ともTabPageの背景色は異なります。

    イメージとしては、ファイルなどのプロパティにある編集不可のTextboxのように親コントロールと同色のReadonlyのTextboxを設置したいのですが、何か良い方法はあるでしょうか。
    (Labelコントールは、テキストを選択できないのでNG)

    最後の手段としては、TabPageの背景色である#F9F9F9を直接指定しようと思いますが、コントロールの色や形状はOSのバージョンに依存するので、できれば、TabPageと同色の背景色を自動で設定できるようにしたいと考えています。
違反を報告
引用返信

▽[全レス5件(ResNo.1-5 表示)]
■35468 / ResNo.1)  Re[1]: TabPageの背景色
□投稿者/ くるり 一般人(2回)-(2023/07/08(Sat) 22:47:17)
  • アイコン補足です。

    >TabPageの背景色である#F9F9F9を直接指定しようと思いますが

    この色は、TabPageのスクリーンショットを取って、ペイントで確認したものです。
違反を報告
引用返信
■35469 / ResNo.2)  Re[1]: TabPageの背景色
□投稿者/ KOZ 一般人(21回)-(2023/07/09(Sun) 19:46:06)
  • アイコン
    No35467に返信(くるりさんの記事)
    > 親コントロールと同色のReadonlyのTextboxを設置したいのですが、何か良い方法はあるでしょうか。
    
    DrawToBitmap で bmp に描画して、GetPixel で色を取得するとか。
    
    Public Class Form1
    
        Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
            Dim sz = TabPage1.Size
            Using bmp As New Bitmap(sz.Width, sz.Height)
                TabPage1.DrawToBitmap(bmp, New Rectangle(Point.Empty, sz))
                Dim bkColor = bmp.GetPixel(1, 1)
                TextBox1.BackColor = bkColor
            End Using
        End Sub
    
    End Class

違反を報告
引用返信
■35470 / ResNo.3)  Re[2]: TabPageの背景色
□投稿者/ くるり 一般人(3回)-(2023/07/10(Mon) 04:39:52)
  • アイコン>DrawToBitmap で bmp に描画して、GetPixel で色を取得するとか。

    サンプルコードをご提示いただき、ありがとうございます。
    こんな簡単に色情報を取得できるのですね。目からうろこです。

    ご提示いただいたコードを参考にすることで、目的としている機能の実装ができました。
    ありがとうございます。
解決み!
違反を報告
引用返信
■35471 / ResNo.4)  Re[3]: TabPageの背景色
□投稿者/ 魔界の仮面弁士 大御所(1556回)-(2023/07/10(Mon) 11:02:30)
  • アイコンNo35470に返信(くるりさんの記事)
    > こんな簡単に色情報を取得できるのですね。目からうろこです。

    ちなみに、TabPage の背景色は単色とは限りません。

    OS 側の設定テーマによっては、グラデーションがかかっているなど、
    座標ごとに複数の色が使用されていることがあります。
    http://dobon.net/vb/dotnet/graphics/drawvisualcontrol.html

    https://rarara.org/community/programming/%E3%82%BF%E3%83%96%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E3%81%AE%E8%83%8C%E6%99%AF%E8%89%B2%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%EF%BC%9F/
解決み!
違反を報告
引用返信
■35472 / ResNo.5)  Re[4]: TabPageの背景色
□投稿者/ くるり 一般人(4回)-(2023/07/10(Mon) 23:44:17)
  • アイコン2023/07/11(Tue) 12:09:39 編集(投稿者)
    2023/07/11(Tue) 12:06:40 編集(投稿者)

    > ちなみに、TabPage の背景色は単色とは限りません。
    > OS 側の設定テーマによっては、グラデーションがかかっているなど、
    > 座標ごとに複数の色が使用されていることがあります。

    情報ありがとうございます。

    なるほど。
    実は、どこかののプロパティなどから取得できないものか、
    もやもやしたものがありましたが、TabPageの背景色はグラデーションが
    設定されているなどOSのテーマに依存しており、プロパティから取得できる類の
    ものではなさそうですね。

    教えていただいたURLも参考になりそうです。ありがとうございます。

    サンプルはC++でしたが、VB.Netでグラデーションを想定した対応を実装するとすれば
    ・同じサイズのTabPage背景をメモリ上に描画(http://dobon.net/vb/dotnet/graphics/drawvisualcontrol.html)
    ・Textboxがある座標の画像を切り抜き、ブラシを作成
    ・ブラシを用いてTextboxを描画(OwnerDraw)
    といった流れですね。おそらく。

解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-5]



■記事リスト / ▲上のスレッド
■35461 / 親記事)  C#でJpeg圧縮のTiffファイルを作成したい
□投稿者/ たろう 一般人(1回)-(2023/06/26(Mon) 10:58:52)
  • アイコン環境/言語:[Windows10 / C# / VisualStudio2015 / .Net Framework4.0] 
    分類:[.NET] 

    過去、Visual Studio 2015を使って、Tiffファイルを作成するアプリケーションを作成しました。

    最近になって「LEADTOOLSではJpeg圧縮のTiffファイルが作れるのに、あなたのソフトではできないのか?」といった問い合わせをもらいました。
    どうやらTiffでイメージ保存をしたいが、カラー画像だとサイズが大きいので画像はJpegにしたい(でもファイル形式はTiffのまま)ということのようです。

    私が作成した保存処理はTiffBitmapEncoderを使用しており、Compressionプロパティにセットできるものを調べるとJpegはありませんでした。

    有料のライブラリなどを使用せず、Jpeg圧縮のTiffファイルを保存する方法はないものでしょうか。
    (LEADTOOLSはライセンス料が高額なため使用したくない、という理由で.Netの機能を使用して画像保存を作成した経緯があります)

違反を報告
引用返信

▽[全レス4件(ResNo.1-4 表示)]
■35462 / ResNo.1)  Re[1]: C#でJpeg圧縮のTiffファイルを作成したい
□投稿者/ Hongliang 大御所(643回)-(2023/06/26(Mon) 12:48:38)
  • アイコンとりあえず、Windows 10 22H2では、 TiffBitmapEncoderを使っては無理みたいですね。
    // System.Windows.Media.Imaging.TiffCompressOptionには未定義の7というのも指定可能でしたが、これもLZWベースのようです。
    System.Drawingの方でも有効そうなものは見つからないので、少なくとも現時点では、恐らく.NET標準ライブラリでは扱えないでしょう。

    // System.Windows.Media.ImagingにせよSystem.DrawingにせよOSの機能をそのまま呼び出しているだけなので、そのうちWindowsのTIFFエンコーダがサポートするようになる可能性はゼロではないですが、期待薄と思います。

    どうしてもというなら、何らかのサードパーティ製ライブラリを使用するしかないでしょうね。
    NugetにはいくつかTIFFのライブラリがあるようです。ライセンスを確認の上で試されてみてはいかがでしょうか。
違反を報告
引用返信
■35463 / ResNo.2)  Re[2]: C#でJpeg圧縮のTiffファイルを作成したい
□投稿者/ たろう 一般人(2回)-(2023/06/26(Mon) 16:47:50)
  • アイコンNo35462に返信(Hongliangさんの記事)

    > どうしてもというなら、何らかのサードパーティ製ライブラリを使用するしかないでしょうね。
    > NugetにはいくつかTIFFのライブラリがあるようです。ライセンスを確認の上で試されてみてはいかがでしょうか。

    なるほど、やはり現在の.Netの標準ライブラリでは無理そうですね。
    商用利用もできて、安価もしくは無料で利用できるライブラリがないか探してみます。


違反を報告
引用返信
■35464 / ResNo.3)  Re[3]: C#でJpeg圧縮のTiffファイルを作成したい
□投稿者/ KOZ 一般人(20回)-(2023/06/27(Tue) 09:33:53)
  • アイコン
    2023/06/27(Tue) 09:36:20 編集(投稿者)
    
    ■No35463に返信(たろうさんの記事)
    
    Magick.NET でイケるようです。(ライセンスは Apache License 2.0)
    NuGet から Magick.NET.Core と Magick.NET-Q16-AnyCPU をインストールしてください。
    
    using ImageMagick;
    static class Program
    {
        [STAThread]
        static void Main() {
            using (MagickImage image = new MagickImage(@"z:\temp\test.png")) {
                image.Format = MagickFormat.Tiff;
                image.Settings.Compression = CompressionMethod.JPEG;
                image.Write(@"z:\temp\test.tif");
            }
        }
    }
    

違反を報告
引用返信
■35465 / ResNo.4)  Re[4]: C#でJpeg圧縮のTiffファイルを作成したい
□投稿者/ たろう 一般人(3回)-(2023/06/27(Tue) 15:47:44)
  • アイコンNo35464に返信(KOZさんの記事)
    > Magick.NET でイケるようです。(ライセンスは Apache License 2.0)


    情報ありがとうございます!
    試してみます。


解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-4]






Mode/  Pass/


- Child Tree -

2024/03/28(Thu) 21:37:58 に作成されたキャッシュを表示しています。
生のデータを表示する | キャッシュを最新にする