$Script:Version = "H-Cleaner v0.4.1 (LOG-VERION)" #Ersteller: Florian Späth #Diese Software soll helfen im H-Laufwerk geordnet Daten zu löschen ## ### Notiz: Ticket #66 geschlossen, Ticket #51 geschlossen ## #### Pseudonymisierung und Log #### . .\pseudonymisierung.ps1 Log "### Tool gestartet ###" -clear Add-Type -AssemblyName PresentationFramework Add-Type -AssemblyName System.Windows.Forms [System.Reflection.Assembly]::LoadWithPartialName('System.Drawing') | Out-Null #### Lädt Scripte #### . .\GUIS\del\del.ps1 . .\GUIS\delconf\delconf.ps1 . .\GUIS\filter\filter.ps1 . .\GUIS\info\info.ps1 . .\GUIS\main\main.ps1 . .\GUIS\scanner\scanner.ps1 #### Ordner die bei der Suche ausgeschlossen werden #### $Script:exclude=@("H:\EINSTELLUNGEN","H:\Application Data","H:\meancore","H:\Cleaner","H:\Microsoft") #### Lädt Guis #### $Script:main = Load_main $PSScriptRoot # Variable: $main $Script:scanner = Load_scanner $PSScriptRoot # Variable: $scanner $Script:filter = Load_filter $PSScriptRoot # Variable: $filter $Script:del = Load_del $PSScriptRoot # Variable: $del $Script:delconf = Load_delconf $PSScriptRoot # Variable: $delconf $Script:info = Load_info $PSScriptRoot # Variable: $info #### Definition globaler Variablen #### $Script:ScriptRoot = $PSScriptRoot $Script:iconpath = "$PSScriptRoot\icons" ########################1########2######3######4####5######6########7######8#######9#####10#####11#####12######13####14#######15#####16#####17#####18#####19######20####21####22#####23#####24#######25####26######27#####28####29### $Script:Elementcount $Script:Elementsize ### Farb Variablen ### $Script:Standardbtncolor = "#00b8d4" $Script:Delcolor = "#d50000" $Script:BackgroundMovecolor = "#FFFFEB9C" $Script:ForegroundMovecolor = "#FF9C6500" $Script:Foregroundgrey = "#FF7A7A7A" $Script:Backgroundgrey = "#FFC5C5C5" #### Verknüpfungen GUI Objekte - Variablen #### ### Info ### $infook = $info.findName("btnok") ### DelConf ### $delconfok = $delconf.FindName("btnok") #### Funktionen #### ### Global ### function Load_Iconfile { $Script:types =New-Object int[][] (4) $Script:icontypes = @() $iconcsv = Import-Csv "$PSScriptRoot\icons.csv" -Encoding utf8 for ($i = 0; $i -lt $iconcsv.Count; $i++) { $Script:icontypes += $iconcsv.Dateiendung[$i] for ($a = 0; $a -lt 3; $a++) { if ($iconcsv.Type[$i] -eq $a) { $Script:types[$a] += $iconcsv.ID[$i] } [System.Windows.Forms.Application]::DoEvents() } [System.Windows.Forms.Application]::DoEvents() } } function calc_Size { param($number) $res = $number/1MB $size = " MB" if($res -gt 1024){ $res = $number/1GB $size = " GB" } $res = $res.ToString(".00") if ($res.StartsWith(",") ) { $res = "0" + $res } return $res + $size } function Get_Freespace (){ # 0=Text Auslastung; 1=Freier Speicher; 2=Gesamter Speicher; 3=Belegter Speicher; 4=Wert für ProgressBar; 5=OFFLINE $array=@("",0,0,0,$false) $use = Get-WMIObject Win32_LogicalDisk -filter "name='H:'" $check = Get-WMIObject Win32_LogicalDisk -filter "name='C:'" if ($use.size -ne $check.size) { $array[1] = calc_Size $use.Freespace $array[2] = calc_Size $use.size $free = calc_Size $use.Freespace $size = calc_Size $use.size $array[3] = calc_Size ($use.size-($use.size-$use.Freespace)) if (!$use) { $array[0] = " FEHLER" }else { $array[0] = "$free frei von $size" $bar = ($use.Freespace/$use.size)*100 $array[4] = 100-$bar } }else{ $array[4] = 100 $array[5] = $true } return $array } function count_element { param ( $count, $size ) if ($count) { $Script:Elementcount++ $Script:Elementsize = $Script:Elementsize+$size }else { $Script:Elementcount-- $Script:Elementsize = $Script:Elementsize-$size } if ($Script:Elementcount -eq 0) { $maindel.Background = $Script:Backgroundgrey $mainmove.Background = $Script:Backgroundgrey $maindel.Foreground = $Script:Foregroundgrey $mainmove.Foreground = $Script:Foregroundgrey $mainmove.IsEnabled=$false $maindel.IsEnabled=$false $Deldel.Background = $Script:Backgroundgrey $Deldel.Foreground = $Script:Foregroundgrey $Deldel.IsEnabled = $false }else { $maindel.Background="$Script:Delcolor" $mainmove.Background="$Script:BackgroundMovecolor" $maindel.Foreground="white" $mainmove.Foreground="$Script:ForegroundMovecolor" $mainmove.IsEnabled=$true $maindel.IsEnabled=$true $Deldel.Background = "$Script:Delcolor" $Deldel.Foreground = "white" $Deldel.IsEnabled = $true } $size = calc_Size $Script:Elementsize if ($Script:Elementcount -le 1) { $Delstats.Text = " $Script:Elementcount Element $size" $mainelements.Text = " $Script:Elementcount Element" $delconfelements.Text = " $Script:Elementcount Element" }else { $Delstats.Text = " $Script:Elementcount Elemente $size" $mainelements.Text = " $Script:Elementcount Elemente" $delconfelements.Text = " $Script:Elementcount Elemente" } $mainsize.Text = " $size" $delconfsize.Text = " $size" } ### GUIs ### ## Scanner ## $scannerscan.Add_Click({ Start_Scan (New-Object -ComObject WScript.Shell).AppActivate((Get-Process | Where-Object { $_.Id -Match $PID }).MainWindowTitle) }) $scanner.Add_KeyDown{ param( [Parameter(Mandatory)][Object]$sender, [Parameter(Mandatory)][Windows.Input.KeyEventArgs]$e ) if($e.Key -eq "Enter"){ Start_Scan (New-Object -ComObject WScript.Shell).AppActivate((Get-Process | Where-Object { $_.Id -Match $PID }).MainWindowTitle) } } ## Main ## $mainscanner.Add_Click({ $main.Hide() $scanner.ShowDialog() | Out-Null }) $mainfilter.Add_Click({ $filter.Showdialog() | Out-Null }) $maininfo.Add_Click({ $info.ShowDialog() | Out-Null }) $maintree.Add_KeyDown{ param( [Parameter(Mandatory)][Object]$sender, [Parameter(Mandatory)][Windows.Input.KeyEventArgs]$e ) if($e.Key -eq "Enter"){ $maintree.SelectedItem.IsExpanded = $true Browser_Path -path $maintree.SelectedItem.tag } } $maintree.Add_MouseLeftButtonUp({ if ($maintree.SelectedItem.tag -ne $null) { $maintree.SelectedItem.IsExpanded = $true Browser_Path -path $maintree.SelectedItem.tag #if ($Script:sortmain[3]) { # main_sortsize #}else{ # main_sortname #} } }) $mainbrowser.Add_MouseLeftButtonUp({ if ($mainbrowser.Selecteditems.tag -ne $null) { $logcontent = "Main: Clicked " + $mainbrowser.Selecteditems.tag Log $logcontent -clear Check_Browser $mainbrowser.Selecteditems.tag } }) $mainsortname.Add_MouseLeftButtonUp({ if ($mainbrowser.Items.Count -ne 1) { Log "### Sortierung nach Name ###" -clear main_sortname -change } }) $mainsortsize.Add_MouseLeftButtonUp({ if ($mainbrowser.Items.Count -ne 1) { Log "### Sortierung nach Größe ###" -clear main_sortsize -change } }) $maincheckall.Add_MouseLeftButtonUp({ main_checkall }) $mainswitch.Add_Click({ if ($Script:filtercheck[4]) { Log "### Filter ohne Unterordner ###" -clear $mainimgswitch.Source = "$ScriptRoot/Source/swfalse.png" $Script:filtercheck[4] = $false Browser_Path -path $maintree.SelectedItem.tag }else { Log "### Filter mit Unterordner ###" -clear $mainimgswitch.Source = "$ScriptRoot/Source/swtrue.png" $Script:filtercheck[4] =$true Browser_Path -path $maintree.SelectedItem.tag } }) $mainmove.Add_Click({ $Script:movelocation = Select-FolderDialog if ($Script:movelocation -ne $false) { Log "### Clicked MOVE Button ###" -clear Reset_Filter Browser_del $Script:Delwarning.Content = "Zielverzeichnis: $Script:movelocation " $Script:Delwarning.Background = "$Script:BackgroundMovecolor" $Script:Delwarning.Foreground = "$Script:ForegroundMovecolor" $Script:Delmarked.Content = "Zum Verschieben markiert:" $Deldel.Margin="554,364,0,0" $Deldel.Width="210" $Deldel.Content = "Markierte verschieben" $Deldel.Background = "$Script:BackgroundMovecolor" $Deldel.Foreground = "$Script:ForegroundMovecolor" $Deltb.Text = "Alle ausgewählten Dateien wurden erfolgreich verschoben." $Script:whattodo="move" $main.Hide() $Del.ShowDialog() | Out-Null } }) $maindel.Add_Click({ Log "### Clicked DEL Button ###" -clear Reset_Filter Browser_del $Script:Delwarning.Content = "Die ausgewählten Dateien werden endgültig gelöscht!" $Script:Delwarning.Background = "$Script:Delcolor" $Script:Delwarning.Foreground = "white" $Script:Delmarked.Content = "Zum löschen markiert:" $Deldel.Content = "Markierte löschen" $Deldel.Margin="592,364,0,0" $Deldel.Width="172" $Deldel.Content="Markierte löschen" $Deldel.Background = "$Script:Delcolor" $Deldel.Foreground = "white" $Deltb.Text = "Alle ausgewählten Dateien wurden erfolgreich entfernt." $Script:whattodo="delete" $main.Hide() $Del.ShowDialog() | Out-Null }) ## Del ## $Script:Delback.Add_Click({ Browser_Path -path $maintree.SelectedItem.tag $Del.Hide() $main.ShowDialog() | Out-Null }) $Script:Deldel.Add_Click({ final_action Get_TreeView Browser_Path -path $maintree.SelectedItem.tag $del.hide() $delconf.ShowDialog() | Out-Null }) $delbrowser.Add_MouseLeftButtonUp({ if ($delbrowser.Selecteditems.tag -ne $null) { $logcontent = "Del: Clicked " + $delbrowser.Selecteditems.tag Log $logcontent -clear Check_Del $delbrowser.Selecteditems.tag } }) $Delsortname.Add_MouseLeftButtonUp({ del_sortname }) $Delsortsize.Add_MouseLeftButtonUp({ del_sortsize }) $Delcheckall.Add_MouseLeftButtonUp({ del_checkall }) ## Filter ## $script:filterok.Add_Click({ $filter.Hide() Update_Filter $check=$false foreach($item in $Script:filtercheck){ if ($item) { $check=$true } [System.Windows.Forms.Application]::DoEvents() } if ($check) { Filter_data -tag $maintree.SelectedItem.tag }else { Browser_Path -path $maintree.SelectedItem.tag } }) $Script:filterreset.Add_Click({ Reset_Filter Update_Filter Browser_Path -path $maintree.SelectedItem.tag $filter.Hide() }) $filter.Add_MouseLeftButtonDown({ $filter.DragMove() }) $filteroffice.Add_Click({ if ($Script:filtercheck[0]) { $Filteroffice.background = "#444444" $Script:filtercheck[0] = $false }else { $Filteroffice.background = "#00c853" $Script:filtercheck[0] = $true } Update_Filter }) $filterbilder.Add_Click({ if ($Script:filtercheck[1]) { $Filterbilder.background = "#444444" $Script:filtercheck[1] = $false }else { $Filterbilder.background = "#00c853" $Script:filtercheck[1] = $true } Update_Filter }) $filtervideos.Add_Click({ if ($Script:filtercheck[2]) { $Filtervideos.background = "#444444" $Script:filtercheck[2] = $false }else { $Filtervideos.background = "#00c853" $Script:filtercheck[2] = $true } Update_Filter }) $filteraudios.Add_Click({ if ($Script:filtercheck[3]) { $Filteraudios.background = "#444444" $Script:filtercheck[3] = $false }else { $Filteraudios.background = "#00c853" $Script:filtercheck[3] = $true } Update_Filter }) ## Info ## $info.Add_MouseLeftButtonDown({ $info.DragMove() }) $infook.Add_Click({ $info.Hide() }) ## DelConf ## $delconf.Add_MouseLeftButtonDown({ $delconf.DragMove() }) $delconfok.Add_Click({ $delconf.Hide() $main.ShowDialog() | Out-Null }) #### Startet die Anwendung #### ### Initialisieren ### Set_Defaults_Scanner (Get_Freespace) Set_Defaults_Main (Get_Freespace) Load_Iconfile ### Öffnet erstes Fenster ### Log "### Cleaner sichtbar ###" -clear $Scanner.ShowDialog() | Out-Null Add-Content -Path .\Log.txt -Value $Script:logvar