Ragazzi nessuno di voi sa come vedere le applicazioni attiva???
In pratica voglio eseguire un programma solo se un' altra applicazione è gia attiva.GRAZIE MILLE!
Ragazzi nessuno di voi sa come vedere le applicazioni attiva???
In pratica voglio eseguire un programma solo se un' altra applicazione è gia attiva.GRAZIE MILLE!
jabjoint
Puoi utilizzare l'api FindWindow se sai la caption dell'applicazione.
Con WinNT/2000 hai il taskmanager per vedere l'elenco delle applicazioni attive, questo elenco lo trovi in psapi.dll, come documentato da Win32 SDK, quindi nel caso dei suddetti SO puoi anche dare la un'occhiata.
Ans.
Oppure fai ALT+TAB e vedi cosa c'è aperto...:quote: :quote:
Grazie ans.
A te no nico:zamm:
jabjoint
Non sò se può esserti utile:
nel tuo progetto.vbp nuovo immetti una list1 e poi incolla questo codice, poi elaboralo come vuoi per i tuoi scopi:
'--------taglia da quì-----------------
Private Type THREADENTRY32
dwSize As Long
cntUsage As Long
th32ThreadID As Long
th32OwnerProcessID As Long
tpBasePri As Long
tpDeltaPri As Long
dwFlags As Long
End Type
Private Type MODULEENTRY32
dwSize As Long
th32ModuleID As Long
th32ProcessID As Long
GlblcntUsage As Long
ProccntUsage As Long
modBaseAddr As Long ' puntatore char
modBaseSize As Long
hModule As Long
szModule As String * 256
szExePath As String * 260
End Type
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 * 260
End Type
Const TH32CS_SNAPHEAPLIST = &H1&
Const TH32CS_SNAPPROCESS = &H2&
Const TH32CS_SNAPTHREAD = &H4&
Const TH32CS_SNAPMODULE = &H8&
Const TH32CS_INHERIT = &H80000000
'const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS |TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE)
' Le funzioni API per la gestione dei processi
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32.dll" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
Private Declare Function Process32First Lib "kernel32.dll" (ByVal HSnapShot As Long, ByRef EntryProc As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32.dll" (ByVal HSnapShot As Long, ByRef EntryProc As PROCESSENTRY32) As Long
Private Declare Function Module32First Lib "kernel32.dll" (ByVal HSnapShot As Long, ByRef EntryModule As MODULEENTRY32) As Long
Private Declare Function Module32Next Lib "kernel32.dll" (ByVal HSnapShot As Long, ByRef EntryModule As MODULEENTRY32) As Long
Private Declare Function Thread32First Lib "kernel32.dll" (ByVal HSnapShot As Long, ByRef EntryModule As THREADENTRY32) As Long
Private Declare Function Thread32Next Lib "kernel32.dll" (ByVal HSnapShot As Long, ByRef EntryModule As THREADENTRY32) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function PostThreadMessage Lib "user32" Alias "PostThreadMessageA" (ByVal idThread As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_QUIT = &H12
Private Sub Form_Load()
Call GetProcessList(List1)
End Sub
Private Function GetProcessModule(pID As Long, ModuleID As Long, EntryModule As MODULEENTRY32) As Boolean
Dim HSnapShot As Long
'
' Ricavo altre informazioni sul "Module" del processo
' (PathFile ed altro)
'
GetProcessModule = False
HSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pID)
If HSnapShot <> -1 Then
EntryModule.dwSize = Len(EntryModule)
Esito = Module32First(HSnapShot, EntryModule)
Do While Esito
If EntryModule.th32ModuleID = ModuleID Then
GetProcessModule = True
Exit Do
End If
Esito = Module32Next(HSnapShot, EntryModule)
Loop
Call CloseHandle(HSnapShot)
End If
End Function
'
' Enumero tutti i processi presenti, e li visualizzo nella lista
'
Sub GetProcessList(Lista As Control)
Dim HSnapShot As Long
Dim EntryProcess As PROCESSENTRY32
Dim EntryModule As MODULEENTRY32
Dim Esito As Long
Dim StrAppo$
List1.Clear
HSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
If HSnapShot = -1 Then
MsgBox "Errore creazione SnapShot Processi"
Exit Sub
End If
'
' Enumero tutti i processi presenti, e li visualizzo nella lista
'
EntryProcess.dwSize = Len(EntryProcess)
Esito = Process32First(HSnapShot, EntryProcess)
Do While Esito
If GetProcessModule(EntryProcess.th32ProcessID, EntryProcess.th32ModuleID, EntryModule) Then
StrAppo$ = Left$(EntryModule.szModule, InStr(EntryModule.szModule, Chr$(0)) - 1)
StrAppo$ = Format$(StrAppo$, "@@@@@@@@@@@@@@@ ") & Left$(EntryModule.szExePath, InStr(EntryModule.szExePath, Chr$(0)) - 1)
Lista.AddItem Right$("00000000" & Hex(EntryProcess.th32ProcessID), 8) & " " & StrAppo$
Esito = Process32Next(HSnapShot, EntryProcess)
End If
Loop
Call CloseHandle(HSnapShot)
End Sub
'---------a quì------------------------
link
homepage
http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/
software
http://%77%77%77%2e%74%77%6f%72%6b%2...programmi.html
forum
http://%77%77%77%2e%74%77%6f%72%6b%2...um/default.asp