This commit is contained in:
Florian Späth
2025-01-31 01:47:45 +01:00
commit 6ba4884590
162 changed files with 4396 additions and 0 deletions

459
Test/root.ps1 Normal file
View File

@@ -0,0 +1,459 @@
$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