タスクリストを取得          <TOP>


タスクリストを取得し表示します。

GetWindow 指定されたウィンドウと指定された関係にあるウィンドウのハンドルを取得

GetParent 指定されたウィンドウの親ウィンドウまたはオーナーウィンドウのハンドルを取得

GetWindowTextLength ウィンドウのタイトル文字数を取得

GetWindowText ウインドウのタイトル文字列を取得

 

 

'================================================================
'= タスクリストの表示
'=    (TaskList.bas)
'================================================================
#include "Windows.bi"

' 指定されたウィンドウと指定された関係にあるウィンドウのハンドルを取得
Declare Function Api_GetWindow& Lib "user32" Alias "GetWindow" (ByVal hWnd&, ByVal wCmd&)

' 指定されたウィンドウの親ウィンドウまたはオーナーウィンドウのハンドルを取得
Declare Function Api_GetParent& Lib "user32" Alias "GetParent" (ByVal hWnd&)

' ウィンドウのタイトル文字数を取得
Declare Function Api_GetWindowTextLength& Lib "user32" Alias "GetWindowTextLengthA" (ByVal hWnd&)

' ウインドウのタイトル文字列を取得
Declare Function Api_GetWindowText& Lib "user32" Alias "GetWindowTextA" (ByVal hWnd&, ByVal lpString$, ByVal cch&)

#define GW_HWNDFIRST 0               '最初のウィンドウ
#define GW_HWNDNext 2                '次のウィンドウ

Var Shared List1 As Object
Var Shared Button1 As Object

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

'================================================================
'=
'================================================================
Declare Sub TaskListGet()
Sub TaskListGet()
    Var CurrWnd As Long
    Var Length As Long
    Var TaskName As String
    Var Parent As Long

    List1.ResetContent
    CurrWnd = Api_GetWindow(GethWnd, GW_HWNDFIRST)
    While CurrWnd <> 0
        Parent = Api_GetParent(CurrWnd)
        Length = Api_GetWindowTextLength(CurrWnd)
        TaskName = space$(Length + 1)
        Length = Api_GetWindowText(CurrWnd, TaskName, Length + 1)
        TaskName = Left$(TaskName, Len(TaskName) - 1)
        If Length <> 0 Then
            If TaskName <> GetWIndowText Then
                List1.AddString TaskName
            End If
        End If
        CurrWnd = Api_GetWindow(CurrWnd, GW_HWNDNext)
        CallEvent
    Wend
End Sub

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    TaskListGet
End Sub

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