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

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

記事リスト ( )内の数字はレス数
Nomalユーザーフォームに埋め込んだAutoCADの変化を捉える(0) | Nomalシステムドライブ以外へのページング設定が反映されない(5) | Nomalブラウザでコピーした透過PNGを貼り付けたい(4) | Nomalforeachでループ回数を取得(2) | Nomalbitmapが保存できない(2) | Nomal特定ピクセルで画像を読み込みたい(2) | NomalDataGridViewでAlt+Enterで改行したい(2) | 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) |



■記事リスト / ▼下のスレッド
■35165 / 親記事)  タブレット等でスワイプによるスクロールを実装
□投稿者/ 炎の妖精さん 一般人(7回)-(2022/10/13(Thu) 10:06:36)
  • アイコン環境/言語:[Windows10(64bit)_VB.NET] 
    分類:[.NET] 

    お世話になっております。

    表題の通り、スワイプでのスクロールを実装したいと考えております。
    Windowsフォーム上に以下のコントロールを配置しました。

    ■FlowLayoutPanel(スクロールを表示してここでスクロールしたい)
    └■UserControl(5*10のボタンが並べられている)
     ├■Button01
     ├■Button02
     …
     ├■Button49
     └■Button50


    なぜこのような配置の仕方をしている理由ですが、
    タブレットの解像度が1920*1280、ボタンや文字もなるべく大きめということもあり、
    5*10のボタンを配置する場合にはタブレットの画面に入りきらない為、スクロールを実装することになりました。

    DataGridViewでは自動でスワイプによるスクロールが出来るのですが、
    上記のような配置の場合ではスクロールが出来ませんでした。
    ※もちろんマウスホイールによるスクロールは可能でした

    処理としてはUserControlのスクロール移動量を取得して
    FlowLayoutPanelにスクロール移動量を付加させるというような処理になるのでしょうか?

    スクロールに関しての処理は初めての為、ご教授いただければ幸いです。
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■35167 / ResNo.1)  Re[1]: タブレット等でスワイプによるスクロールを実装
□投稿者/ 魔界の仮面弁士 大御所(1454回)-(2022/10/13(Thu) 11:14:13)
  • アイコン2022/10/13(Thu) 11:18:44 編集(投稿者)

    Windows Touch あるいは スタイラス対応のタブレット デバイスが
    現在手元に無いため、動作を確認せずに回答しています。
    余裕があれば追って確認しますが…とりあえず状況把握として逆質問。


    No35165に返信(炎の妖精さんさんの記事)
    > 上記のような配置の場合ではスクロールが出来ませんでした。
    マウスホイールによる操作の場合、
    「ホバーしたときに非アクティブウィンドウをスクロールする」
    が On / Off の状態で動作が変わるかと思いますが、スワイプの場合、
    上記の設定切替に近い動作にしたいのでしょうか。それともスワイプは
    上記設定によらず、常に同じ動作になって欲しいのでしょうか。
    https://dynabook.com/assistpc/faq/pcdata2/017955.htm


    > Windowsフォーム上に以下のコントロールを配置しました。
    Button, UserControl, FlowLayoutPanel のそれぞれに対して
     ・AutoSize プロパティによって自動変更されるもの
     ・Dock や Anchor などによってリサイズされうるもの
     ・固定サイズで配置されるもの
    などがどうなっているのか定かでは無いので、
    当方で状況を読み切れていない部分があるかもしれませんが:


    今回、FlowLayoutPanel が採用されている理由は何ですか?
    FlowLayoutPanel 内にあるコントロールが UserControl 一つだけなら
    フローレイアウトになることも無さそうなので、素の Panel で良いような。

    (案1) デザイン時にスクロールできない
     Panel1 (AutoScroll = False)
     └UserControl1 (AutoScroll = True , Dock = Fill, Anchor = Top,Left)

    (案2) デザイン時にもスクロール可能だが、カプセル化しにくいかも?
     Panel1 (AutoScroll = True)
     └UserControl1 (AutoScroll = False, Dock = None, Anchor = Top,Left)


    FlowLayoutPanel 版は、Panel 版の 案2 に近い設計なのかと予想していますが、
    上記それぞれを試した時、
     a) マウス(あるいはタッチパッド)によるホイール回転操作
     b) マウスによるパン操作(ホイールを押しながらのドラッグ)あるいは同等のタッチパッド操作
     c) スタイラス(ペン)を画面に押し付けた状態でのスワイプ操作
     d) スタイラスのスクロールボタンを押した状態でのホバー操作
     e) Windows Touch によるスワイプ操作
    の動作に違いが生じるでしょうか。それとも 案1/案2 で変わらないでしょうか。

    a と d は非アクティブ状態でも操作できるのに対して、
    b, c, e はタップ(あるいはクリック)操作が先に入るので、
    常にアクティブウィンドウに対して操作することになるという違いがありそうです。


    ところで、今回のスワイプ操作はどの場所から始める想定でしょうか?
     ア) FlowLayoutPanel のスクロールバー部
     イ) FlowLayoutPanel の余白部(UserControl の外側)
     ウ) UserControl のクライアント領域
     エ) 各ボタンの上
     オ) 上記以外

    フォーカスを受け取れるコントロール、かつ、スクロール可能なコントロールの
    上でスワイプ操作を開始すると、スクロールが発生し無さそうなので
    念のために確認しています。
違反を報告
引用返信
■35168 / ResNo.2)  Re[1]: タブレット等でスワイプによるスクロールを実装
□投稿者/ 炎の妖精さん 一般人(8回)-(2022/10/13(Thu) 11:16:02)
  • アイコンすみません。解決しました。

    他社サイト様にて
    C#で書かれたコードをVB.NETに書き直し
    一部のコードを直したら想定通りの動作となりました。

    ■Windowsフォームアプリにおけるスワイプによるスクロールについて
     ※URLは長いので省略させていただきます。
解決み!
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35151 / 親記事)  PDFをフォーム上で表示させる方法につきまして
□投稿者/ 炎の妖精さん 一般人(1回)-(2022/09/29(Thu) 13:47:51)
  • アイコン環境/言語:[Windows10(64bit)_VB.NET] 
    分類:[.NET] 

    お世話になっております。

    表題の件についてですが、
    Windowsフォーム上にPDFを表示させる方法は何かありますでしょうか?

    @WebBrowerコントロールをフォーム上に配置しました。
     結果としては何も表示されずPDFをダウンロードされるような挙動になりました
    Aライブラリは使用せずに標準のツールで可能か?
    ※ライブラリを使用するとしたら"acrobat developer center"のライブラリではPDFの表示は可能ではと考えております

    @でのコードは以下の通りです。
    ======================================================
    Public Class Form1

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

    With WebBrowser1
    .AllowWebBrowserDrop = False
    .IsWebBrowserContextMenuEnabled = False
    .WebBrowserShortcutsEnabled = False

    .Navigate(Application.StartupPath & "\TEST.pdf")
    .Refresh()
    End With
    End Sub
    End Class
    ======================================================
違反を報告
引用返信

▽[全レス6件(ResNo.2-6 表示)]
■35154 / ResNo.2)  Re[2]: PDFをフォーム上で表示させる方法につきまして
□投稿者/ 炎の妖精さん 一般人(3回)-(2022/09/30(Fri) 08:39:02)
  • アイコン魔界の仮面弁士様
    ご確認ありがとうございます。

    >>Windowsフォーム上にPDFを表示させる方法は何かありますでしょうか?
    > OS 標準機能だと、 WinRT の Windows.Data.Pdf 名前空間とか。
    > https://qiita.com/kenichiuda/items/6617c25da6580eef85d1
    > https://bit.ly/3E3wPqG
    >
    > あるいは、Chromium の PDF エンジンである PDFium を使う手もあります。
    > https://caddiary.com/?p=2458
    > https://note.com/takase_hiroyuki/n/ne7117c13edea
    これらが使用できるか確認させていただきます。


    >>ライブラリは使用せずに標準のツールで可能か?
    > nuget は使用禁止ですか?
    本開発環境では使用できないようです(Visual Studio 2010 Express)
違反を報告
引用返信
■35155 / ResNo.3)  Re[3]: PDFをフォーム上で表示させる方法につきまして
□投稿者/ 炎の妖精さん 一般人(4回)-(2022/10/03(Mon) 09:06:43)
  • アイコン> >>Windowsフォーム上にPDFを表示させる方法は何かありますでしょうか?
    >>OS 標準機能だと、 WinRT の Windows.Data.Pdf 名前空間とか。
    >>https://qiita.com/kenichiuda/items/6617c25da6580eef85d1
    >>https://bit.ly/3E3wPqG
    Nugetによるインストールが必要でしたので
    外部ライブラリ/パッケージは此度では使用しないで実施したいです。
    参照設定せずに標準機能でPDFを表示したいです。

    >>あるいは、Chromium の PDF エンジンである PDFium を使う手もあります。
    >>https://caddiary.com/?p=2458
    >>https://note.com/takase_hiroyuki/n/ne7117c13edea
    > これらが使用できるか確認させていただきます。
    こちらもNugetによるインストール/ZIP形式でのダウンロードが可能でした。
    こちらも外部パッケージ/ライブラリである為、使用しません。


    Q標準機能限定でWebBrowerで表示する他に何かありますでしょうか?
    ※WebBrowerで表示する際でも予めAdobe Readerをインストールしている必要があるようですが、そうなのですか?
     もしかしてと思い、アドオンが有効になっていないから表示されずダウンロードされるのかなと思い、インターネットオプションとアドオンの管理を確認したのですが、有効になっていました。

違反を報告
引用返信
■35156 / ResNo.4)  Re[1]: PDFをフォーム上で表示させる方法につきまして
□投稿者/ よっし〜 一般人(14回)-(2022/10/03(Mon) 11:50:57)
  • アイコンNo35151に返信(炎の妖精さんさんの記事)
    > 表題の件についてですが、
    > Windowsフォーム上にPDFを表示させる方法は何かありますでしょうか?

    単なる案だけで申し訳ないのですが、gswin32にてPDFを画像に変換してから扱うのはいかがでしょうか??

    以上、板汚しですみません。

違反を報告
引用返信
■35157 / ResNo.5)  Re[4]: PDFをフォーム上で表示させる方法につきまして
□投稿者/ 炎の妖精さん 一般人(5回)-(2022/10/03(Mon) 16:06:51)
  • アイコンファイルの関連付けをリセットして
    WebBrowerコントロールで再度確認したら
    PDFが正常に表示されました。


    想定通りに出来ましたので解決とさせていただきます。
解決み!
違反を報告
引用返信
■35158 / ResNo.6)  Re[4]: PDFをフォーム上で表示させる方法につきまして
□投稿者/ Azulean 大御所(533回)-(2022/10/04(Tue) 07:11:04)
  • アイコン2022/10/04(Tue) 07:11:50 編集(投稿者)

    No35155に返信(炎の妖精さんさんの記事)
    > Q標準機能限定でWebBrowerで表示する他に何かありますでしょうか?
    > ※WebBrowerで表示する際でも予めAdobe Readerをインストールしている必要があるようですが、そうなのですか?

    WebBrowser での表示は Adobe Reader 依存のはずです。
    実際に表示させてみると、裏で Adobe Reader のプロセスが立ち上がっていることを確認できると思われます。

    本当に「OS 標準機能」縛りであれば、Adobe Reader 依存ゆえに条件を満たせていないと思います。

    もっとも、VS2010 縛りの時点で「OS 標準機能で実現」はかなり無理があります。
解決み!
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35150 / 親記事)  Chart X軸上の描画を切り替えたい
□投稿者/ Masa 一般人(1回)-(2022/09/16(Fri) 14:33:07)
  • アイコン環境/言語:[Windows10 /Visual Studio 2019 C#/ .NetFramework4.8.04084] 
    分類:[.NET] 

    Chartコントロールで折れ線グラフを作成しています。
    X軸を黒色とします。
    pointsを(0,0)と(10,0)を指定し、X軸上に赤色で描画します。
    @X軸上の前面に赤色で表示する設定
    AX軸上に黒色のみ表示する設定(X軸のみ表示する設定)
    X軸上の描画を@とAで切り替えたいと考えています。

    上記2点の設定方法を教えて下さい。よろしくお願いします。
違反を報告
引用返信



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35144 / 親記事)  RichTextBoxへのドラッグ&ドロップしたExcelファイルの扱い
□投稿者/ うっきー 一般人(1回)-(2022/08/30(Tue) 18:44:02)
  • アイコン環境/言語:[Windows10 C#.net] 
    分類:[.NET] 

    RichTextBoxにExcelファイルをそのまま貼り付けようとしています。

    AllowDrop=Trueにすると
    ドラッグ&ドロップで簡単に貼り付けることはできるのですが
    表示される名称が「Excelワークシート」のようになってしまいます

    このファイル名称を設定するにはどのようにすればよいでしょうか?
    よろしくお願いいたします。
182×117
イメージ
1661852642.png
/1KB
違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■35145 / ResNo.1)  Re[1]: RichTextBoxへのドラッグ&ドロップしたExcelファイルの扱い
□投稿者/ 魔界の仮面弁士 大御所(1449回)-(2022/08/30(Tue) 18:56:41)
  • アイコンNo35144に返信(うっきーさんの記事)
    > このファイル名称を設定するにはどのようにすればよいでしょうか?

    COM 版の RichTextBox を使ってみるとか。

    http://bbs.wankuma.com/index.cgi?mode=al2&namber=63101&KLOG=106
    http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=10815
違反を報告
引用返信
■35146 / ResNo.2)  Re[2]: RichTextBoxへのドラッグ&ドロップしたExcelファイルの扱い
□投稿者/ うっきー 一般人(2回)-(2022/08/31(Wed) 10:52:41)
  • アイコン魔界の仮面弁士さん、早速のアドバイスありがとうございます!

    参考にさせていただきます。

    おそらく、ファイルそのものを添付する形ではなく
    リンクを登録する形で対応することになりそうです。
    (そもそも名前を設定することは難しいということにすらたどりつけなかったので助かりました)

    ありがとうございました。
違反を報告
引用返信
■35147 / ResNo.3)  Re[3]: RichTextBoxへのドラッグ&ドロップしたExcelファイルの扱い
□投稿者/ うっきー 一般人(3回)-(2022/08/31(Wed) 10:55:03)
  • アイコンチェックし忘れました・・・
    解決済とさせていただきます。
解決み!
違反を報告
引用返信

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



■記事リスト / ▲上のスレッド
■35135 / 親記事)  特定のPCだけ発生する「パディングは無効なので削除できません」のエラーの原因
□投稿者/ わっしー 一般人(1回)-(2022/08/24(Wed) 21:33:40)
  • アイコン環境/言語:[Windows10] 
    分類:[.NET] 

    インストーラーを作成して、社内の人に配布をして利用していただいております。
    100人以上の方に問題なく使っていただけてますか、1名だけ「パディングは無効なので削除できません」とエラーが発生します。
    アンインストール→インストールを何度か試していただきましたが改善せず
    再度インストーラーを作り直して、インストールしてみましたが改善できませんでした。

    コード内に暗号化/復号の処理があるため、そこでのエラーと思われますが、特定のPCだけで発生しているため、全く原因がわからない状態です。

    皆様にお力添えいただきたく、よろしくお願いいたします。
450×167 => 250×92
イメージ
1661344420.png
/16KB
違反を報告
引用返信

▽[全レス6件(ResNo.2-6 表示)]
■35138 / ResNo.2)  Re[2]: 特定のPCだけ発生する「パディングは無効なので削除できません」のエラーの原因
□投稿者/ 魔界の仮面弁士 大御所(1446回)-(2022/08/25(Thu) 02:12:25)
  • アイコンNo35137に追記(魔界の仮面弁士の記事)
    > 参考情報としてこのあたり。
    > https://social.msdn.microsoft.com/Forums/security/ja-JP/fbd89c41-0af8-4b1a-8106-fa9a69e4488b/24489214952127012395123881235612390?forum=vbgeneralja

    もう一つこの辺りの回答も。手前味噌ですが。
    http://bbs.wankuma.com/index.cgi?mode=al2&namber=78391&KLOG=133
違反を報告
引用返信
■35139 / ResNo.3)  Re[2]: 特定のPCだけ発生する「パディングは無効なので削除できません」のエラーの原因
□投稿者/ わっしー 一般人(2回)-(2022/08/26(Fri) 13:11:37)
  • アイコンNo35137に返信(魔界の仮面弁士さんの記事)

    ご回答ありがとうございます。
    URLを参照してパディングに意味がわかりました。

    暗号化/復号は下記のURLの内容をそのまま使用しています。
    https://dobon.net/vb/dotnet/string/encryptfile.html

    上記の方法の場合にご指摘いただいた理由でエラーになる可能性はございますでしょうか?

    エラー画面の詳細のキャプチャも添付させていただきます。

    恐れ入りますが、よろしくお願いいたします。

1184×160 => 250×33
イメージ
1661487093.png
/14KB
違反を報告
引用返信
■35140 / ResNo.4)  Re[3]: 特定のPCだけ発生する「パディングは無効なので削除できません」のエラーの原因
□投稿者/ 魔界の仮面弁士 大御所(1447回)-(2022/08/26(Fri) 15:00:58)
  • アイコンNo35139に返信(わっしーさんの記事)
    > エラー画面の詳細のキャプチャも添付させていただきます。
    Visual Basic をお使いのようですね。では VB の文法で回答します。


    > 暗号化/復号は下記のURLの内容をそのまま使用しています。
    > https://dobon.net/vb/dotnet/string/encryptfile.html
    そのページには複数の実装がありますよね…?
    今回はスタックトレースを貼って頂いたので、

    https://dobon.net/vb/dotnet/string/encryptfile.html#codecaption1
    Sub DecryptFile(sourceFile As String, destFile As String, key As Byte(), iv As Byte())

    ではなく

    https://dobon.net/vb/dotnet/string/encryptfile.html#codecaption5
    Sub DecryptFile(sourceFile As String, destFile As String, password As String)

    の方であることは分かりましたが、もう少し具体的に示して欲しかったです。
    (サイトでは Shared Sub になっていましたが、Module1 上なので Shared を外しているものと想像)


    ちなみに、.NET Core においては、RijndaelManaged クラスは非推奨とされており、
    かわりに Aes.Create メソッドを使うべきとアナウンスされていたりします。
    もっとも .NET Framework の場合は、 Obsolete にはなっていないのですけれどね。
    (AES と Rijndael の違いについては、ここでは触れずにおきます)

    一応念のため、.NET Framework バージョンも教えてください。


    > 上記の方法の場合にご指摘いただいた理由でエラーになる可能性はございますでしょうか?
    どうでしょうね。今ちょっと、検証やコードレビューする余裕が無いのです…。

    ただ、既定のパラメーターの場合、CBC の PKCS#7 パディングになっているはず。


    なのでひとまず、復号側の実装で、
     Dim rijndael As New System.Security.Cryptography.RijndaelManaged()
    の行を
     Dim rijndael As New System.Security.Cryptography.RijndaelManaged()
     rijndael.Padding = System.Security.Cryptography.PaddingMode.None
    に変更してみてください。


    本当にパディングだけの問題なら、復号後のファイルサイズは 16 の倍数バイトとなり、
    復号されたデータの末尾に最大 16 バイトのゴミデータが付与されるはずです。
    (末尾にゴミが付く点を除けば、暗号化は正しく解除されるはず)

    この末尾データは、16 の倍数に揃えるためのパディングデータであり、
    「末尾 16 バイトがすべて &H10」
    「末尾 15 バイトがすべて &H0F」
    「末尾 14 バイトがすべて &H0E」
    「末尾 13 バイトがすべて &H0D」
      :
      :
    「末尾 3 バイトがすべて &H03」
    「末尾 2 バイトがすべて &H02」
    「末尾 1 バイトが &H01」
    のいずれかになります。
    たとえば元が 0 バイトのファイルであった場合、復号したファイルは
    &H10 のみでパディングされた 16 バイトになるということです。


    もし、末尾が上記いずれのパターンでも無かった場合や、あるいは
    それでも途中でエラーになるようであれば、暗号化されたファイル
    もしくはパスワードのいずれかが破損している事を意味するでしょう。
違反を報告
引用返信
■35142 / ResNo.5)  Re[4]: 特定のPCだけ発生する「パディングは無効なので削除できません」のエラーの原因
□投稿者/ 魔界の仮面弁士 大御所(1448回)-(2022/08/26(Fri) 16:04:40)
  • アイコン2022/08/26(Fri) 16:05:59 編集(投稿者)

    No35140に追記(魔界の仮面弁士の記事)
    > それでも途中でエラーになるようであれば、暗号化されたファイル
    > もしくはパスワードのいずれかが破損している事を意味するでしょう。

    ファイルのサイズが「16 の倍数バイト」であるかどうかを確認する作業は
    『暗号化されたファイルのサイズ』と
    『Padding なしで複号した結果ファイル』の
    両方に対して行ってください。

    暗号データが 16 の倍数バイトでは無い場合は、
    暗号データ自体の破損を意味します。
違反を報告
引用返信
■35143 / ResNo.6)  Re[5]: 特定のPCだけ発生する「パディングは無効なので削除できません」のエラーの原因
□投稿者/ わっしー 一般人(3回)-(2022/08/26(Fri) 21:33:41)
  • アイコンNo35142に返信(魔界の仮面弁士さんの記事)
    > 2022/08/26(Fri) 16:05:59 編集(投稿者)

    ありがとうございます。

    .NET Frameworkはバージョン4.6になります。

    すみません、仰る通り、サイトの2つ目の方の暗号化/復号を利用しており
    Module1にPublic Sub で記載しており、別のForm部分から呼び出すようにしています。


     Dim rijndael As New System.Security.Cryptography.RijndaelManaged()
     rijndael.Padding = System.Security.Cryptography.PaddingMode.None
    に変更して、インストーラーを作成して、エラーが出ているPCで試してみます。

    私のPCではエラーはでないのですが、暗号化されているファイルは16の倍数バイトになっていました。
    エラーが出ているPCで、どうなっているかも確認してみます。


違反を報告
引用返信

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






Mode/  Pass/


- Child Tree -