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

    [vb2008] enumerare applicazioni attive

    vorrei trovare nome ed handle di tutte le applicazioni (non dei processi) attive (cioè quelle i cui relativi pulsanti sono sulla task bar)

    tutti gli esempi che vedo sul web sono relativi all' uso di:

    Dim MyProcess As Process() = Process.GetProcesses()

    e poi andare a vedere quali di questi processi hanno MainWindowTitle<>""

    MA QUESTO NON E' VERO, o perlomeno è vero solo in parte: se apro più finestre di IExplorer o di altri programmi (es. Word)... me ne legge solo uno per processo (più esattamente l' ultimo che ho cliccato)

    quindi se ad esempio eseguo la routine

    Dim MyProcess As Process() = Process.GetProcesses()

    For x = 0 To MyProcess.Length - 1
    Debug.Print(x & " - " & MyProcess(x).ProcessName & " - " & MyProcess(x).MainWindowTitle)

    Next

    anche se la task bar è popolata di finestre di IE e di Word aperte.... come ProcessName mi vede tutti i processi IExplore ed un solo Winword, e come MainWindowTitle mi vede solo due applicazioni attive, 1 IE ed 1 Word...

    sbaglio qualcosa?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    In effetti....
    Sbagliare è umano, perseverare è diabolico.

  3. #3
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244

    Re: [vb2008] enumerare applicazioni attive

    Originariamente inviato da eziogsv
    vorrei trovare nome ed handle di tutte le applicazioni (non dei processi) attive (cioè quelle i cui relativi pulsanti sono sulla task bar)
    Ed allora perchè cerchi i processi ?

    Originariamente inviato da eziogsv
    anche se la task bar è popolata di finestre di IE e di Word aperte.... come ProcessName mi vede tutti i processi IExplore ed un solo Winword, e come MainWindowTitle mi vede solo due applicazioni attive, 1 IE ed 1 Word...

    sbaglio qualcosa?
    Mi pare ovvio.

    Devi cercare le finestre. Vedi se questo ti aiuta:
    http://www.vbforums.com/showthread.php?t=388122


  4. #4
    @gibra

    grazie, ma nel frattempo ho trovato questo link, con un esempio in download appena un pò più completo, che funge benissimo:

    http://www.devasp.net/net/articles/display/573.html

    adesso che conosco Hwnd e Title di tutte le finestre aperte sul desktop, viene il secondo problema:

    come ordinare le finestre a seconda dello StartTime, cioè ordinarle come sono visualizzate nei relativi pulsanti della task bar, da sinistra a destra?

    Conosci qualche API acconcia? Le ho sfogliate un pò tutte, ma non ho visto nulla di utile...

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Questo esempio può aiutarti a capire ciò che riguarda la APPBAR:

    The TaskBar and VB.NET
    http://www.codeguru.com/vb/gen/vb_mi...cle.php/c15757

    Sicuramente cercando su internet troverai altri esempi.

  6. #6
    Scaricato l' esempio... interessante, ma nulla che fa al caso mio...

    Per esempio per raggruppare i pulsanti simili modifica una chiave di registro....

    Nulla che legga il testo dei pulsanti... cosa che mi avrebbe aiutato a mettere "in ordine di task bar" gli Hwnd delle varie finestre anche in assenza di una specifica API.

    Già a suo tempo avevo cercato qualcosa del tipo "read task bar buttons text" ma nisba

    Non demordo, ma a questo punto inizio a dubitare che sia possibile sapere lo StartTime NON di un processo, ma di una Finestra attiva sul desktop

    EDIT:
    trovata questa utility... la cosa è fattibile

    http://www.codeproject.com/KB/shell/taskbarsorter.aspx

    l' esempio è in C#, ma con un pò di pazienza.......

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 © 2025 vBulletin Solutions, Inc. All rights reserved.