Total Commander Launcher con opzioni di visualizzazione sul titolo della finestra

« Older   Newer »
  Share  
CAT_IMG Posted on 1/5/2023, 11:49     +1   -1

Agli inizi

Group:
Member
Posts:
3
Reputazione:
0

Status:


Sto creando un launcher per total commander con varie opzioni di visualizzazione nel titolo.
Sono arrivato al punto di rinominare total commander,inserire la percentuale di spazio libero di tutti i dischi la ram libera e l'utilizzo della cpu.
Vorrei creare delle opzioni per visualizzare cose diverse tipo l'utilizzo dei dischi come la cpu e non lo spazio libero, l'utilizzo in down e up della rete del wifi ed altre cose.
Sarebbe molto gradito la partecipazione.
 
Top
CAT_IMG Posted on 13/5/2023, 15:10     +1   -1

Agli inizi

Group:
Member
Posts:
3
Reputazione:
0

Status:


Ho creato il launcher e funziona bene solo che se in visualization option 0 o 2 freespace c,d, activity e,f
mi riporta nel titolo freespace c freespace activity d freespace activity e f non vengono viste e non riesco a capire dove sta il problema.
Qualche idea?


CODICE
#include <TCfunction.au3>

TrayIcon()

Local $TCUltraPack_ini = @ScriptDir & "\TCUltraPack.ini"

SetDefaultOptions()

Local $drives_freespace_option = IniRead($TCUltraPack_ini, "HDD", "Freespace", "all")
Local $drives_activity_option = IniRead($TCUltraPack_ini, "HDD", "Activity", "all")
Local $visualization_option = IniRead($TCUltraPack_ini, "HDD", "Visualization", "0")
Local $ram_option = IniRead($TCUltraPack_ini, "ram", "option", "1")
Local $cpu_option = IniRead($TCUltraPack_ini, "cpu", "option", "1")
Local $tray_option = IniRead($TCUltraPack_ini, "tray", "option", "1")
SetDefaultOptions()
If $drives_freespace_option = "all" Then
   $drives_freespace_option = "cdefghijklmnopqrstuvwxyz"
EndIf

If $drives_activity_option = "all" Then
   $drives_activity_option = "cdefghijklmnopqrstuvwxyz"
EndIf

$drives_freespace_array = StringSplit($drives_freespace_option, "", 1)
$drives_activity_array = StringSplit($drives_activity_option, "", 1)

$pid = Run(@ScriptDir & '\TOTALCMD64.EXE')
Sleep(100)

While True
   Local $windows = WinList("[CLASS:TTOTAL_CMD]")
   Local $found = False
   
   For $i = 1 To UBound($windows) - 1
       Local $process_id = WinGetProcess($windows[$i][1])
       
       If $process_id = $pid Then
           $found = True
           Local $version = IniRead(@ScriptDir & "\version.ini", "Setup", "Version", "Default Value")
           Local $new_title = "TC UltraPack X64 v" & $version
           Local $drives_display_string = "", $new_title_with_info = $new_title
           
           If $visualization_option = "0" Then
               For $j = 1 To UBound($drives_freespace_array) - 1
                   $drive_letter = $drives_freespace_array[$j]
                   
                   If DriveStatus($drive_letter & ":\") = "READY" Then
                       $free_space_percent = Round(DriveSpaceFree($drive_letter & ":\") / DriveSpaceTotal($drive_letter & ":\") * 100, 2)
                       $drive_activity = GetDriveActivity($drive_letter)
                       $drives_display_string &= " | " & StringUpper($drive_letter) & ":(" & $free_space_percent & "%)(" & $drive_activity & "%)"
                   EndIf
               Next
               
               If $drives_display_string <> "" Then
                   $new_title_with_info &= " - HDD's"
                   $new_title_with_info &= " (FreeSpace)(Activity): " & StringTrimLeft($drives_display_string, 3)
               EndIf
               
           ElseIf $visualization_option = "1" Then
               For $j = 1 To UBound($drives_freespace_array) - 1
                   $drive_letter = $drives_freespace_array[$j]
                   
                   If DriveStatus($drive_letter & ":\") = "READY" Then
                       $free_space_percent = Round(DriveSpaceFree($drive_letter & ":\") / DriveSpaceTotal($drive_letter & ":\") * 100, 2)
                       $drives_display_string &= " | " & StringUpper($drive_letter) & ":(" & $free_space_percent & "%)"
                   EndIf
               Next
               
               For $j = 1 To UBound($drives_activity_array) - 1
                   $drive_letter = $drives_activity_array[$j]
                   
                   If DriveStatus($drive_letter & ":\") = "READY" Then
                       $drive_activity = GetDriveActivity($drive_letter)
                       $drives_display_string &= " | " & StringUpper($drive_letter) & ":(" & $drive_activity & "%)"
                   EndIf
               Next
               
               If $drives_display_string <> "" Then
                   $new_title_with_info &= " - HDD's"
                   $new_title_with_info &= " (FreeSpace)(Activity): " & StringTrimLeft($drives_display_string, 3)
               EndIf
               
           ElseIf $visualization_option = "2" Then
               For $j = 1 To UBound($drives_freespace_array) - 1
                   $drive_letter = $drives_freespace_array[$j]
                   
                   If DriveStatus($drive_letter & ":\") = "READY" Then
                       $free_space_percent = Round(DriveSpaceFree($drive_letter & ":\") / DriveSpaceTotal($drive_letter & ":\") * 100, 2)
                       $drive_activity = GetDriveActivity($drive_letter)
                       $drives_display_string &= " | " & StringUpper($drive_letter) & ":(" & $drive_activity & "%)(" & $free_space_percent & "%)"
                   EndIf
               Next
               
               If $drives_display_string <> "" Then
                   $new_title_with_info &= " - HDD's"
                   $new_title_with_info &= " (Activity)(FreeSpace): " & StringTrimLeft($drives_display_string, 3)
               EndIf
               
           EndIf
           
           If $ram_option = "1" Then
               $ram_free = Round(100 * GetFreeMemory() / GetTotalMemory(), 2)
               $new_title_with_info &= " | RAM Free: (" & $ram_free & "%)"
           EndIf
           
           If $cpu_option = "1" Then
               $cpu_usage = Round(GetCpuUsage(), 2)
               $new_title_with_info &= " | CPU Used:( " & $cpu_usage & "%)"
           EndIf
           
           $original_title = WinGetTitle($windows[$i][1])
           $number_in_brackets = StringRegExp($original_title, "\[(\d+)\]", 1)
           
           If IsArray($number_in_brackets) Then
               $new_title_with_info = "[" & $number_in_brackets[0] & "] " & $new_title_with_info
           EndIf
           
           WinSetTitle($windows[$i][1], "", $new_title_with_info)
       EndIf
   Next
   
   Sleep(1000)
   If Not $found Then Exit
WEnd



Questo e' l'include

CODICE
;SetDefaultOptions();Da mettere nello script per chiamare la scrittura del file.ini
Func SetDefaultOptions()
   If Not FileExists($TCUltraPack_ini) Then
       ; Aggiungi descrizione in cima al file TCUltraPack.ini
       IniWrite($TCUltraPack_ini, "Descrizione", "===", " Modificare le opzioni per personalizzare le preferenze")
       IniWrite($TCUltraPack_ini, "Descrizione", "=", "")
       IniWrite($TCUltraPack_ini, "Descrizione", "===", " Le opzioni disponibili sono elencate di seguito:")
       IniWrite($TCUltraPack_ini, "Descrizione", "=", "")
       IniWrite($TCUltraPack_ini, "Descrizione", "=== Ram ", " Ram=0 non visualizzare ram sul titolo della finestra o 1 visualizza la ram sul titolo della finestra")
       IniWrite($TCUltraPack_ini, "Descrizione", "=", "")
       IniWrite($TCUltraPack_ini, "Descrizione", "=== Cpu ", " Cpu=0 non visualizzare cpu sul titolo della finestra o 1 visualizza cpu sul titolo della finestra")
       IniWrite($TCUltraPack_ini, "Descrizione", "=", "")
       IniWrite($TCUltraPack_ini, "Descrizione", "=== Hdd ", " Freespace=ALL visualizza tutti i dischi nel titolo, 0 non visualizzare i dischi nel titolo, lettere con , esempio C,F visualizza solo le lettere scelte nel titolo")
       IniWrite($TCUltraPack_ini, "Descrizione", "=", "")
       IniWrite($TCUltraPack_ini, "Descrizione", "=== Hdd ", " Activity=ALL visualizza tutti i dischi nel titolo, 0 non visualizzare i dischi nel titolo, lettere con , esempio C,F visualizza solo le lettere scelte nel titolo")
       IniWrite($TCUltraPack_ini, "Descrizione", "=", "")
       IniWrite($TCUltraPack_ini, "Descrizione", "=== Hdd ", " Visualisation=0 HDD uniti per lettera Freespace Activity. =1 Separati. 2=Uniti per lettara HDD Activity Freespace")
       IniWrite($TCUltraPack_ini, "Descrizione", "=", "")
       IniWrite($TCUltraPack_ini, "Descrizione", "=== TRAY ", " TRAY=0 non visualizzare l'icona nel Tray di Windows")
       IniWrite($TCUltraPack_ini, "Descrizione", "=", "")
       IniWrite($TCUltraPack_ini, "Descrizione", "=== ATTENZIONE ==", " In caso di problemi, cancellare TCUltraPack.ini e riavviare TCUltraPack")
       IniWrite($TCUltraPack_ini, "Descrizione", "=============================", "===============================================================================================================================================")
       IniWrite($TCUltraPack_ini, "HDD", "Freespace", "ALL")
       IniWrite($TCUltraPack_ini, "HDD", "Activity", "ALL")
       IniWrite($TCUltraPack_ini, "HDD", "Visualisation", "0")
       IniWrite($TCUltraPack_ini, "RAM", "Option", "1")
       IniWrite($TCUltraPack_ini, "CPU", "Option", "1")
       IniWrite($TCUltraPack_ini, "TRAY", "Option", "0")
   EndIf
EndFunc



Func GetCpuUsage()
   Local $objWMI = ObjGet("winmgmts:\\.\root\cimv2")
   Local $cpuQuery = $objWMI.ExecQuery("Select * from Win32_PerfFormattedData_PerfOS_Processor WHERE Name = '_Total'")
   Local $cpuUsage = 0
   For $cpu In $cpuQuery
       $cpuUsage = $cpu.PercentProcessorTime
   Next
   Return $cpuUsage
EndFunc


Func MemGetFreePhys()
Local $st_MemInfo = DllStructCreate("dword;dword;dword;dword;dword;dword")
Local $a_Return = DllCall("Kernel32.dll", "BOOL", "GlobalMemoryStatusEx", "struct*", $st_MemInfo)
If Not $a_Return[0] Then Return SetError(1, 0, 0)
Return DllStructGetData($st_MemInfo, 4)
EndFunc

Func GetTotalMemory()
   Local $memoryInfo = MemGetStats()
   Return $memoryInfo[1]
EndFunc

Func GetFreeMemory()
   Local $memoryInfo = MemGetStats()
   Return $memoryInfo[2]
EndFunc


Func GetDriveActivity($drive_letter)
Local $objWMI = ObjGet("winmgmts:\\.\root\cimv2")
Local $drive_activity = 0
If DriveStatus($drive_letter & ":\") = "READY" Then
$drive_activity_query = $objWMI.ExecQuery("SELECT PercentDiskTime FROM Win32_PerfFormattedData_PerfDisk_LogicalDisk WHERE Name='" & $drive_letter & ":'")
For $drive In $drive_activity_query
$drive_activity = Round($drive.PercentDiskTime / 10)
If $drive_activity > 100 Then $drive_activity = 100
Next
EndIf
Return StringFormat("%02d", $drive_activity)
EndFunc


Func TrayIcon()
  Local $iniFile = "TCUltraPack.ini"
  Local $trayOption = IniRead($iniFile, "Tray", "Option", "")
     If $trayOption = 1 Then
     TraySetState()
  ElseIf $trayOption = 0 Then
     TraySetState(2)
EndIf
EndFunc
 
Top
1 replies since 1/5/2023, 11:49   55 views
  Share