Newsgroup: it.comp.lang.visual-basic
Titolo: Funzione api per avere lista task?

Molto sintetico, scusa vado di fretta...
Type PROCESSENTRY32
 dwSize as long
cntUsage as long
th32ProcessID as long
th32DefaultHeapID as long
th32ModuleID as long
cntThreads as long
th32ParentProcessID as long
priClassBase as long
dwFlags as long
szExeFile as string * 259
Ens Type
Declare Function CreateToolhelp32Snapshot lib "KERNEL32" (byval dwflahs as
Long,byval dwth32ProcessID as Long) as Long
Declare Function Process32First Lib "KERNEL32" (byval hSnapshot as
Long,byval lppeas las PROCESSENTRY32) as Long
Declare Function Process32Next lib "KERNEL32" (byval hSnapshot as Long,byval
lppeas las PROCESSENTRY32) as Long
Declare Function CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal
hObject As Long) As Long
Ciao
Corrado
Michele ha scritto nel messaggio <01bdf81f$6b3434a0$40acdfc3@Mike>...



Puoi riadattarti questo che incollo qui sotto, e' una specie di task list.
Option Explicit
Private Const TH32CS_SNAPPROCESS As Long = 2&
Private Const MAX_PATH As Integer = 260
Private Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwFlags As Long
    szExeFile As String * MAX_PATH
End Type
Private Declare Function CreateToolhelpSnapshot Lib "Kernel32" Alias
"CreateToolhelp32Snapshot" _
   (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function ProcessFirst Lib "Kernel32" Alias "Process32First"_
   (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "Kernel32" Alias "Process32Next" _
   (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Sub CloseHandle Lib "Kernel32" _
   (ByVal hPass As Long)
Private Sub Form_Load()
Timer1.Enabled = True
Timer1.Interval = 1000
End Sub
Private Sub Timer1_Timer()
List1.Clear
Dim hSnapShot As Long
    Dim uProcess As PROCESSENTRY32
    Dim r As Long
    hSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&)
    If hSnapShot = 0 Then Exit Sub
    uProcess.dwSize = Len(uProcess)
    r = ProcessFirst(hSnapShot, uProcess)
    Do While r
        List1.AddItem uProcess.szExeFile
        r = ProcessNext(hSnapShot, uProcess)
        Loop
    Call CloseHandle(hSnapShot)
End Sub
Ciao
--
Andrea :-{)
acm...@hotmail.com
================================================
Leggi 
http://beatles.cselt.it/news-it/FAQ.html
 e
http://beatles.cselt.it/news-it/gruppi-it.html
Potresti imparare qualcosa di piu' sui NG
================================================

Molto sintetico, scusa vado di fretta...
    Ciao Corrado...
     Il tuo sorgente non visualizza pero' le cartelle aperte con Risorse del
PC.... (che visualizza Win nell'elenco dei task). C'è un modo per sapere
quali cartelle sono aperte in windows???

Da un occhiata veloce mi sembra che Windows enumeri i processi attivi (come
da esempio) e poi enumeri le finestre child del desktop.
Potresti aggiungere alla lista dei task le finestre attualmente aperte nel
desktop (prova con EnumChildWindows) .
Ciao
Corrado

...

    MMmmm... ok e come faccio a sapere se tale finestra è una cartella?
    Poniamo il caso.. prendo la caption... es. EVVIVALOLIODOLIVA...la gran
parte degli utenti win, non utilizza il percorso completo...quindi come
faccio a verificare che è una dir?? Grazie.