# Toplevel zerstören $Config{tl}->destroy(); $Config{start} ||= ''; $Config{such} ||= ''; $Config{ersetzung} ||= ''; # Pfüfung der ausgefüllten Felder unless (-d $Config{start}) { $Config{main_window}->messageBox(-title=>'Felder wurden nicht korrekt ausgefüllt!', -message=>"Das Verzeichnis $Config{start} ist kein Verzeichnis oder existier nicht.", -icon=>'error', -type=>'OK' ); return; } if ($Config{suche} xor $Config{ersetzung}) { $Config{main_window}->messageBox(-title=>'Felder wurden nicht korrekt ausgefüllt!', -message=>"Bitte Such und Ersetzungsfeld ausfüllen um Ersetzung durchzuführen oder keines um keine Ersetzung durchzuführen.", -icon=>'error', -type=>'OK' ); return; } #------------------------------------------------------------------------------------------ ---- # Toplevel zur Beschäftigung anzeigen #------------------------------------------------------------------------------------------ ---- my $w = 150; my $h = 100; my $text1 = 'Durchsuche'; my $text2 = ''; my $Icon = $Config{main_window}->Photo(-file=>$FindBin::Bin . '/chklnk.gif'); my ($width,$height,$pos_x,$pos_y) = split /\+|x/,$Config{main_window}->geometry(); $Config{tl} = $Config{main_window}->Toplevel(-title=>'Durchsuche...'); $Config{tl}->Icon(-image=>$Config{Icon}); $Config{tl}->minsize($w,$h); $Config{tl}->geometry('+' . int($width / 2 + $pos_x - $w / 2) . '+' . int($height / 2 + $pos_y - $h / 2) ); $Config{tl}->focusForce(); my $frame1 = $Config{tl}->Frame()->pack(); my $frame2 = $Config{tl}->Frame()->pack(); $frame1->Label(-text=>$text1,-anchor=>'w')->pack(-side=>'left'); $frame1->Label(-textvariable=>\$text2,-anchor=>'w',-width=>5)->pack(-side=>'left'); $frame2->Label(-image=>$Icon)->pack(-side=>'top'); $frame2->Button(-width=>20, -text=>'Abbruch', -underline=>0, -command=>sub{$Config{abbr} = 1;$Config{tl}->destroy();} )->pack(-side=>'top'); $Config{tl}->bind('',sub{$Config{abbr} = 1;$Config{tl}->destroy();}); $Config{tl}->bind('', sub{$Config{abbr} = 1;$Config{tl}->destroy();}); #------------------------------------------------------------------------------------------ ------ my $i = 0; my @verz = ($Config{start}); for my $file (@verz) { $Config{tl}->update(); last if $Config{abbr} == 1; $text2 = '.' x $i; $i = 0 if ++$i > 3; if ($file =~ /\.lnk$/) { _check($file); next; } if(-d $file) { opendir DIR,$file or die "Konnte Verzeichnis $file nicht öffnen: $!"; push @verz,map { $file . '\\' . $_ } grep !/^\.\.?$/ && (-d $file . '\\' . $_ or /\.lnk$/i), readdir DIR; closedir DIR; } } $Config{tl}->destroy(); unless ($Config{abbr} == 1) { $Config{main_window}->messageBox(-title=>'Suche abgeschlossen', -message=>"Suche im Verzeichnis $Config{start} abgeschlossen", -icon=>'info', -type=>'OK' ); }