指定したファイル属性の項目を表示          <TOP>


特定のファイル属性の項目を表示します。

SendMessage 指定のウィンドウにメッセージを送る

 

 

'================================================================
'= 指定したファイル属性の項目を表示
'=    (SendMessage7.bas)
'================================================================
#include "Windows.bi"

' ウィンドウにメッセージを送信。この関数は、指定したウィンドウのウィンドウプロシージャが処理を終了するまで制御を返さない
Declare Function Api_SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hWnd&, ByVal wMsg&, ByVal wParam&, lParam As Any)

#define CB_DIR &H145                    'コンボボックスにファイル名を追加
#define LB_DIR &H18D                    'リストボックスにファイル名を追加
#define DDL_ARCHIVE &H20                'アーカイブされたファイル
#define DDL_DIRECTORY &H10              '[ ]形式でディレクトリを表示
#define DDL_DRIVES &H4000               '[-x-]形式でドライブを表示
#define DDL_EXCLUSIVE &H8000            '指定された属性のファイルだけをリスト表示
#define DDL_HIDDEN &H2                  '隠しファイル
#define DDL_READONLY &H1                '読み取り専用ファイル
#define DDL_READWRITE &H0               '読み取り・書き込み可能なファイル
#define DDL_SYSTEM &H4                  'システムファイル

Var Shared Combo1 As Object
Var Shared List1 As Object
Var Shared Edit1 As Object
Var Shared Button1 As Object

Combo1.Attach GetDlgItem("Combo1") : Combo1.SetFontSize 14
List1.Attach GetDlgItem("List1") : List1.SetFontSize 14
Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 14
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
    Combo1.AddString "ドライブ"
    Combo1.AddString "ディレクトリ"
    Combo1.AddString "ファイル"
End Sub

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var Index As Long
    Var DirAttr As Long
    Var DirFileSpec As String
    Var Ret As Long

    '取得するファイルのパスを指定
    DirFileSpec = Trim$(Edit1.GetWindowtext)

    'ファイル属性を指定
    Index = Combo1.GetCursel
    If Index = -1 Then Exit Sub

    Select Case Index
        Case 0
            DirAttr = DDL_EXCLUSIVE Or DDL_DRIVES
        Case 1
            DirAttr = DDL_EXCLUSIVE Or DDL_DIRECTORY
        Case 2
            DirAttr = DDL_EXCLUSIVE Or DDL_ARCHIVE Or DDL_HIDDEN
    End Select

    'リストボックスをクリア
    List1.Resetcontent

    'リストボックスに指定したファイル属性の項目を追加
    Ret = Api_SendMessage(List1.GethWnd, LB_DIR, DirAttr, DirFileSpec)
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End