Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [vb] vedere le applicazioni attive

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    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.

  3. #3
    Utente di HTML.it L'avatar di Nico
    Registrato dal
    Apr 2002
    Messaggi
    458
    Oppure fai ALT+TAB e vedi cosa c'è aperto...:quote: :quote:

  4. #4
    Grazie ans.
    A te no nico:zamm:
    jabjoint

  5. #5
    Utente di HTML.it L'avatar di Nico
    Registrato dal
    Apr 2002
    Messaggi
    458


    :gren:

  6. #6
    Utente bannato
    Registrato dal
    Apr 2002
    Messaggi
    546
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.