[Vb.net 2010] Aiuto creazione tack manager personalizzato

Sevenjeak

Utente Attivo
27 Nov 2012
81
2
8
35
sevenjeak.altervista.org
Sto, in questi giorni, per provare alcune funzionalità, provando a creare un tasck manager, come quello di windows, ma con alcuni cambiamenti, questo tasck manager, per ora, a due schede, la scheda Applicazione contenente una listview con tutti i processi con l'handle diverso da 0, insomma tutti quelli che creano un'interfaccia grafica visibile su schermo, ed il loro responde, mentre nell'altra scheda, la scheda Processi, una listview contenente tutti i processi, per ogni processo o il suo id, il nome, il proprietario ( da chi è stato eseguito il processo ) è la locazione sul disco ( recuperata tramite l'istruzione istanza_processo.MainModule.FileName ).

Prima di completare questa applicazione mi servono alcuni chiarimenti / aiuto, che ho provato a cercare su internet ma purtroppo non ho risolto:

  1. Dovrei aggiornare le due liste, contenente nella prima e nella seconda scheda, in tempo reale, non credo vada bene aggiornarla con un timer, visto che, quando si aggiorna, l'elemento della lista selezionato mi perde la selezione, quindi, presumo si faccia in altro modo?
  2. 2. nella prima scheda, quando ho aperta una qualsiasi cartella il nome dell'applicazione non mi esce ( il processo corrisponde a explorer.exe ), come potrei fare a far scrivere, in questo caso, il percorso aperto dall'esprola risorse ( non so se mi spiego )
  3. Nella lista processo ho la colonna proprietario ( chi esegue il processo ), come faccio a recuperare questa informazione

Se vi occorre, entrambi le liste, sia quella per visualizzare le applicazione, che quella per i processi, li genero, per ora, all'avvio dell'applicazione con questo codice:

Codice:
ListView1.Columns.Add("ID", 0)
        ListView1.Columns.Add("Operazione", 299)
        ListView1.Columns.Add("Stato", 100)

        ListView2.Columns.Add("ID")
        ListView2.Columns.Add("Nome immagine", 150)
        ListView2.Columns.Add("Proprietario", 80)
        ListView2.Columns.Add("Locazione sul disco", 200)

        Dim p() As Process = System.Diagnostics.Process.GetProcesses
        Dim appItems, prcItems, prcResponse
        Dim icons As Icon
        Dim imList As New ImageList()

        count_process = 0

        For Each pr As Process In p
            If pr.Responding = True Then
                prcResponse = New String("In eseguzione..")
            Else
                prcResponse = New String("Non risponde.")
            End If


            If pr.MainWindowHandle <> 0 And pr.ProcessName <> "explorer" Then
                appItems = New ListViewItem({pr.Id, pr.MainWindowTitle, prcResponse})
                'icons = Icon.ExtractAssociatedIcon()

                ListView1.Items.Add(appItems)
            End If

            Try
                prcItems = New ListViewItem({pr.Id, pr.ProcessName, "-", pr.MainModule.FileName})
            Catch
                prcItems = New ListViewItem({pr.Id, pr.ProcessName, "-", "-"})
            End Try

            ListView2.Items.Add(prcItems)

            prcResponse = Nothing
            icons = Nothing
            count_process += 1
        Next

Ah.. quasi dimenticavo, è possibile recuperare l'icona prodotta dal processo per poi metterla negli item presente nella prima lista? ho già provato in vari modo, ora purtroppo non ricordo come, ma senza alcun risultato.
 

Vins

Moderatore
Membro dello Staff
MOD
28 Lug 2009
238
19
0
Ciao,

per quanto riguarda l'aggiornamento delle liste credo che l'utilizzo di un timer sia la scelta giusta.
Ad esempio, potresti impostare un timer che scatta ad intervalli di un secondo e aggiorna la lista.
Per l'elemento correntemente selzionato puoi memorizzarne i riferimenti prima del refresh e poi riselezionarlo nella lista aggiornata.
 

Sevenjeak

Utente Attivo
27 Nov 2012
81
2
8
35
sevenjeak.altervista.org
Come scritto nel mio primo punto il time lo utilizzato, ma il problema è questo, sicuro che non esiste un'altro metodo, visto che nel task manager di windows non si nota per niente che la lista si ricrea, almeno da quello che ho notato io.

Per il problema della selezione ci proverò, grazie.

Mentre per quando riguarda l'altri punti?
 

Vins

Moderatore
Membro dello Staff
MOD
28 Lug 2009
238
19
0
Infatti io non ho detto di ricreare la lista, ma di aggiornarla. In pratica dovresti caricarti separatamente la lista dei processi ad ogni tick del timer e poi crearti una routine che in base all'id del processo vada ad aggiornare solo i processi i cui valori sono effettivamente cambiati.

Per quanto riguarda le altre due cose puoi utilizzare gli oggetti ShellWindows o EnumDesktopWindows. Di seguito i link alla documentazione ufficiale Microsoft:

http://msdn.microsoft.com/en-us/library/bb773974(VS.85).aspx
http://msdn.microsoft.com/it-it/library/windows/desktop/ms682615(v=vs.85).aspx
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
Sevenjeak [Vb.net 2010] Aiuto background worked .NET Framework 10
E [ASP.Net] Access 2016 ? Non si usa Microsoft Jet 4.0 ma Engine 2016 o 2010. Non va ! ASP.NET 2
felino Lubuntu 18.04 Requisiti per applicazione console .net core 7.0 Linux e Software 0
S [VB.NET]: Coordinate immagini dentro una PictureBox Visual Basic 0
A errore http://datatables.net/tn/7 PHP 4
L C# e net 5 GUI .NET Framework 1
felino ASP.net MVC: Exception e chiamata AJAX ASP.NET 1
P Visual Studio VB.NET Visualizzare un messaggio alla scadenza. .NET Framework 0
R Sviluppatore ASP.NET Offerte e Richieste di Lavoro e/o Collaborazione 0
P Passagio dati complessi tra una ASP.NET webapi e Angular ASP.NET 1
A [ASP.Net] Gestire il profilo ADMIN in un progetto ASP NET e pattern MVC ASP.NET 0
P [ASP.Net] Problema ERR_INCOMPLETE_CHUNKED_ENCODING 206 (Partial Content) con Font ASP.NET 4
A Mantenere la validazione reindirizzandoci su un secondo sito WEb. (ASP.NET) ASP.NET 0
StephenSoftware [ASP.Net] Pagina Master ed eventi... ASP.NET 0
StephenSoftware [Visual Basic] Da VB6 a VB.NET Visual Basic 0
F [OFFRO] [RETRIBUITO] PROGRAMMATORE DOT NET Offerte e Richieste di Lavoro e/o Collaborazione 2
NuviaSoftware [Retribuito] [Cerco] Programmatore ambienti ASP.NET,. Net Azure web apps, Javascript Offerte e Richieste di Lavoro e/o Collaborazione 0
V [ASP.Net] avento keydown crh13 enter ASP.NET 0
A [ASP.Net] Dropdownlist ASP.NET 0
S [ASP.Net] [ASP] Upload Image ASP.NET 6
A Errore NET::ERR_CERT_COMMON_NAME_INVALID SEO e Posizionamento 0
riminese77 [ASP.Net] Popup Bootstrap in datagrid ASP.NET 0
serena.cerutti posizioni aperte: PhP, Java, .Net Offerte e Richieste di Lavoro e/o Collaborazione 0
V [OFFRO LAVORO] Analista programmatore C# .NET Offerte e Richieste di Lavoro e/o Collaborazione 3
C [Visual Basic] Errore INSERT su DB MySQL (VB.Net) Visual Basic 4
K [ASP.Net] Realizzazione menu a tendina dipendenti ASP.NET 1
M [ASP.Net] [ASP] geoblocking e web.config ASP.NET 3
L [ASP.Net] Realizzare modulo contatti PopUp ! ASP.NET 1
K [ASP.Net] Problema stampa e modifica ms sql ASP.NET 0
W WD My Net Wi-Fi Range Extender upgrade Reti LAN e Wireless 2
D [ASP.Net] Non elencare nella select i duplicati dallo split Classic ASP 9
K [ASP.Net] Utilizzare e modificare dati linq ASP.NET 0
manuelaAGF Ricerchiamo Programmatore .NET Offerte e Richieste di Lavoro e/o Collaborazione 0
FabiettoMilano82 [OFFRO] Opportunità su Milano [RETRIBUITO] - Programmatore .NET Offerte e Richieste di Lavoro e/o Collaborazione 0
M Vendo dominio timesurfer.net Compravendita siti e domini 0
felino [ASP.Net] [VbScript] Catturare valore del Hard Faults (Page Fault) ASP.NET 0
andreacata31 [ASP.Net] Passare da Windows Application a sito Web ASP.NET 1
stellare21 [ASP.Net] Redirect a una pagina ASP.NET 2
S Asp.net MVC Hosting - SQL Server Programmazione 0
G .Net developer Offerte e Richieste di Lavoro e/o Collaborazione 0
M [ASP.Net] Cosa MI sfugge? ASP.NET 1
Etinetsrl [Retribuito] - Sviluppatore ASP.net / PHP per piattaforma CMS proprietaria Presentati al Forum 0
E [ASP.Net] Autenticazione integrata windows ASP.NET 0
momeraths [ASP.Net] Consiglio su Visual Studio ASP.NET 3
P Offro: sviluppatore software dot.net Offerte e Richieste di Lavoro e/o Collaborazione 0
G [CERCO] .NET Junior Developer e un/a Java Junior Developer. Offerte e Richieste di Lavoro e/o Collaborazione 0
G [CERCO] .NET Senior Developer Offerte e Richieste di Lavoro e/o Collaborazione 0
B Porting da Classic ASP ad ASP.NET Classic ASP 1
onweb (offro) aplicazioni web (asp.net) Offerte e Richieste di Lavoro e/o Collaborazione 0
E Creazione utenti con Net Object HTML e CSS 0

Discussioni simili