C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■17216  DataGridViewのタブ遷移について
□投稿者/ ランペル -(2008/04/18(Fri) 17:58:58)

    分類:[.NET 全般] 

    たびたびすみません。DataGridViewオブジェクトのタブ遷移について、タイトル項目列と、入力項目列があった場合に、
    タイトル項目列にはタブ遷移させずに、入力項目列にのみタブ遷移をさせたいと考えております。

    現在はコードにて、タイトル項目列をクリックされた場合は、SendKeys.Send("{TAB}")を発行し、強引に入力項目列にフォーカスを設定しております。

    動作の安定のため、別の対処法があれば教えていただけないでしょうか。
親記事 /過去ログ34より / 関連記事表示
削除チェック/

■23284  Re[8]: vbでボタンを押すと数字が増える
□投稿者/ 初心者 -(2008/08/12(Tue) 11:45:59)
    No23281 (初心者 さん) に返信
    > ■No23279 (επιστημη さん) に返信


    確かに・・・・・僕が持ってる本にのってないんですよね・・・・・
    調べ方が甘いと思いますが・・・・
記事No.23270 のレス /過去ログ44より / 関連記事表示
削除チェック/

■24697  Re[2]: 回答はtrue || false
□投稿者/ PATIO -(2008/09/08(Mon) 14:15:10)
    > #windowsのメモ帳のコードがわからないと不可能ですよ、と答えたのですが

    falseですね。


    基本的にプラグインと言う考え方そのものがアプリケーション側から提供される物になるので
    そのアプリケーションがプラグインで機能拡張を出来るという機能を提供していなければ、
    どうしようも有りません。

    で、アプリを使う側(この場合はアプリの作者以外のプラグインを作る人も含む)からは
    公開されている機能しか分からないわけなのでアプリに関するドキュメント(ヘルプとか
    readmeファイルとか)に書かれていない機能は結局、実装されていないのと同じ事になります。
    また、プラグインといっても、アプリケーションに後付けで機能を追加する手段の総称でしか
    ないので実際にどういう仕組みで実装するかはアプリケーションの作者次第です。
    なので、ますますアプリケーションの作者が公開してくれない事には実装のしようが有りません。

記事No.24652 のレス /過去ログ46より / 関連記事表示
削除チェック/

■85091  Re[4]: 複数ファイルをコピーする時に進捗ダイアログを表示する
□投稿者/ カンガルー -(2017/09/11(Mon) 11:44:39)

    No85037 (とっちゃん さん) に返信


    http://www.asahi-net.or.jp/~fq7y-krsk/vba_v1.2/Win32API_VBA/xSHFileOperation.html

    ありがとうございます。

    上記ページに書かれた方法でうまく実現することができました。

    ところで、一つ疑問なのですが、
    pFromに単一のファイルパスを指定すると、pToはファイルパスとして引数を受け取ります。
    一方で、vbNullcharでファイルパスを連結して
    複数ファイルパスをpFromに渡すと、
    pToはフォルダーパスとして引数を受け取ります。

    このように、コピー元のファイルパスの数によって
    コピー先のパスがファイルになったりフォルダーになったりして
    使いづらいので、コピー元が単一ファイルであっても
    コピー先がフォルダーになるようにして使いたいのですが
    そのようなことは可能でしょうか?

    FOF_MULTIDESTFILES
    を試してみましたが駄目でした。

    .pFrom = sPath & vbNullChar sPath & vbNullChar

    というようにして、
    同じファイルを二回コピーするようにすると
    確かに所望のことはできるのですが
    冗長的になってしまいます。

    良い方法があれば教えてください。


記事No.85029 のレス /過去ログ145より / 関連記事表示
削除チェック/

■85093  Re[5]: 複数ファイルをコピーする時に進捗ダイアログを表示する
□投稿者/ 魔界の仮面弁士 -(2017/09/11(Mon) 12:12:28)
    No85091 (カンガルー さん) に返信
    > コピー元が単一ファイルであっても
    > コピー先がフォルダーになるようにして使いたいのですが
    > そのようなことは可能でしょうか?

    pTo の指定がどうなっているか分かりませんが、
    コピー先を「末尾が \ で終わるフルパス」で指定したら
    フォルダーへのコピーになると思います。

    この場合、コピー先のフォルダーは事前に用意しておく必要がありますが。


    > http://www.asahi-net.or.jp/~fq7y-krsk/vba_v1.2/Win32API_VBA/xSHFileOperation.html
    > 上記ページに書かれた方法でうまく実現することができました。
    上記は VBA の場合ですよね。

    SHFILEOPSTRUCT 構造体のアライメントは、本来は 1 バイトパッキングです。
    提示 URL の VBA コードだと fFlags の後続メンバーの配置がずれますのでご注意ください。

    VB.NET に移植する場合は、StructLayoutAttribute で Pack:=1 を指定すればすむのですが、
    VBA(x86) は 4 バイト単位で配置される仕様なので…。
    http://www.gizcollabo.jp/vbtomo/log/archive/vbqanda_41630_0.html

    # そういえば、x64 版の VBA はどうなんだろう。
記事No.85029 のレス /過去ログ145より / 関連記事表示
削除チェック/

■85096  Re[7]: 複数ファイルをコピーする時に進捗ダイアログを表示する
□投稿者/ 魔界の仮面弁士 -(2017/09/11(Mon) 13:02:08)
    No85094 (カンガルー さん) に返信
    >>SHFILEOPSTRUCT 構造体のアライメントは、本来は 1 バイトパッキングです。
    >>提示 URL の VBA コードだと fFlags の後続メンバーの配置がずれますのでご注意ください。
    > これってどういう意味ですか?

    紹介した URL で解説していますが、ファイルコピーがユーザによってキャンセルされた場合、
    SHFILEOPSTRUCT の fAnyOperationsAborted メンバーに 1 がセットされる仕様なのです。
    (先のサンプルでは、キャンセルを判定するようなコードにはなっていないですけれどね)

    32bit環境においては、SHFILEOPSTRUCT 構造体のメモリ配置は、
     0x00-0x03 → HWND 型 hWnd
     0x04-0x07 → UINT 型 wFunc
     0x08-0x0B → PCZZTSTR 型 pFrom
     0x0C-0x0F → PCZZTSTR 型 pTo
     0x10-0x11 → FILEOP_FLAGS 型 fFlags
     0x12-0x15 → BOOL 型 fAnyOperationsAborted
     0x16-0x19 → LPVOID 型 hNameMappings
     0x1A-0x1D → PCTSTR 型 lpszProgressTitle
    と並んでいます。


    ところが VBA は、4バイト単位に再配置して呼び出す仕様です。

    0x00、0x04、0x08、0x0C というのは 4 バイト単位の位置に並んでいるので問題ないのですが、
    fAnyOperationsAborted が配置されているのは、「0x10-0x13 の後半」と「0x14-0x17 の前半」に
    またがるメモリ位置になっています。

    そこで VBA は、API の呼び出し時に自動的に 2 バイト分調整し、 No85091 の構造体を
     0x00-0x03 → Long 型 hWnd
     0x04-0x07 → Long 型 wFunc
     0x08-0x0B → String 型 pFrom
     0x0C-0x0F → String 型 pTo
     0x10-0x11 → Integer 型 fFlags
     0x12-0x13 → 【2 バイトのパディング】
     0x14-0x17 → Long 型 fAnyOperationsAborted
     0x18-0x1B → Long 型 hNameMappings
     0x1C-0x1F → String 型 lpszProgressTitle
    のメモリ配置に変換して渡すようになっています。


    ところが、API がキャンセル結果を書き込むのは
    0x12-0x15 のメモリ位置なので、結果を正しく受け取れなくなるわけです。

    受け取れないだけならまだ良いですが、ポインタである
    lpszProgressTitle に文字列を渡してから呼び出せば、
    クラッシュしてしまう可能性すらあるわけです。


    一方 VB.NET の場合は、StructLayoutAttibute 属性を付与することで、
    このアライメント調整を明示的に指定することができるようになっています。


    'SHFileOperationA を呼び出す場合は、CharSet.Ansi をセットします。
    'SHFileOperationW を呼び出す場合は、CharSet.Unicode をセットします。
    <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode, Pack:=1)> _
    Public Structure SHFILEOPSTRUCT
      Public hwnd As IntPtr
      <MarshalAs(UnmanagedType.U4)> Public wFunc As Integer '(Enum FILEOP As Int32)
      <MarshalAs(UnmanagedType.LPWStr)> Public pFrom As String
      <MarshalAs(UnmanagedType.LPWStr)> Public pTo As String
      <MarshalAs(UnmanagedType.U2)> Public fFlags As Short '(Enum FILEOP_FLAGS As Int16)
      <MarshalAs(UnmanagedType.Bool)> Public fAnyOperationsAborted As Boolean
      Public hNameMappings As IntPtr
      <MarshalAs(UnmanagedType.LPWStr)> Public lpszProgressTitle As String
    End Structure
記事No.85029 のレス /過去ログ145より / 関連記事表示
削除チェック/

■100889  Re[2]: 【C#,VS2022】線を、点Pを中心に据えて移動させたい
□投稿者/ エルデの王 -(2022/11/15(Tue) 19:45:30)
    魔界の仮面弁士さん
    System.Windows.Shapes.Lineのことでした。申し訳ございません。

    考え方を指導頂きありがとうございます。
    中点Cを求めて、点Pから中点Cを引き、結果のXとYを線AのXとYに加算致します。

    ありがとうございました!
記事No.100887 のレス / END /過去ログ175より / 関連記事表示
削除チェック/

■102008  Re[3]: Windows11 でmsi実行エラー
□投稿者/ JADE -(2023/05/26(Fri) 17:59:26)
    ■とっちゃん様

    返信ありがとうございます。
    すみません、遅くなりました。

    > であれば、まずはインストーラの詳細ログをとることをお勧めします。
    > コマンドプロンプト(ターミナルでPowerShellでもOK)を開き、
    > msiexec /i hoge.msi /l*v hogelog.txt
    > として、実行しログを取得しましょう。
    > # hoge.msiは、実際のmsiのパスに置き換え
    > # hogelog.txt は、書き込み可能なパスに存在しない名前を指定します
    >
    > その状態でインストールを実行すれば、詳細ログが取得できます。
    > インストーラを終了(インストール失敗まで処理を実行する)したら
    > テキストエディタ(メモ帳でOK)で、先ほどのhogelog.txtを開きます。

    すみません、お客様環境の為、テストが出来ない状況です。
    上記のやり方は別の問題が発生した場合に使用させていただきます。

    当問題ですが、msiファイルと同時に作成される「setup.exe」を右クリックメニュー:「管理者として実行」で
    対応しようと思います。
    ユーザーアカウント制御に影響されている疑いもあるのですが、設定を変更するわけにもいかないので

    解決にチェックを付けて更新します。
    ありがとうございました。
記事No.101890 のレス / END /過去ログ178より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -