Oops. Trying again from an account that is actually a member of the list.
On Fri, Apr 4, 2008 at 4:45 PM, Tim Johnson <[EMAIL PROTECTED]> wrote:
> I was tasked with making a quick and dirty uninstaller that can be
> launched through SMS in order to give people without admin rights the right
> to uninstall things, and so I whipped up something quick and dirty (code
> below). It actually works pretty well, but there's one big problem: The
> combo box is longer than the height of the window, and while I can use the
> arrow keys to scroll up and down, I would much rather have a scroll bar in
> order to view the rest of the list. What am I missing? A quick search of
> the Google didn't really help much.
>
>
> ########################################
>
> use strict;
> use warnings;
> use Win32::GUI;
> use Win32::TieRegistry (Delimiter => '/');
>
>
> sub MainWindow_Terminate() {
> -1;
> }
>
> sub GetUninstallInfo() {
> my %uninstall = ();
> my $uninstall_key =
> $Registry->{'HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/' .
> 'CurrentVersion/Uninstall'};
> no warnings qw(uninitialized);
>
> foreach my $key(keys %{$uninstall_key}) {
> if ($uninstall_key->{$key . "DisplayName"}) {
> my $name = join(' ', $uninstall_key->{$key . "Publisher"},
> $uninstall_key->{$key . "DisplayName"},
> $uninstall_key->{$key . "DisplayVersion"});
> $name =~ s/^\s+//;
> $uninstall{$name} = $uninstall_key->{$key . "UninstallString"}
> }
> }
> use warnings qw(uninitialized);
> return %uninstall;
> }
>
> my $main_app_name = "Google Universal Uninstaller 1.0";
> my $icon = new Win32::GUI::Icon('g.ico') or die();
> my $window = Win32::GUI::Window->new(-name => 'MainWindow',
> -width => 550,
> -height => 150,
> -title => $main_app_name);
> $window->ChangeIcon($icon);
>
> my %uninstall = GetUninstallInfo();
>
> my $combo_box = $window->AddCombobox(-name => "UninstallList",
> -text => "Applications",
> -width => 500,
> -height => 120,
> -left => 10,
> -top => 10,
> -sort => 1,
> -dropdown => 1,
> -resizable => 0,
> );
>
>
> foreach my $application (keys %uninstall) {
> if ($uninstall{$application}) {
> $combo_box->AddString($application);
> }
> }
>
> $combo_box->SetCurSel(0);
>
> my $button = $window->AddButton(-name => "BtnRemove",
> -text => "Uninstall the selected
> application.",
> -width => "300",
> -height => "40",
> -top => 50,
> -left => 100);
> $button->Show();
>
>
> $window->Show();
> Win32::GUI::Dialog();
>
>
> sub BtnRemove_Click() {
> my $index = $combo_box->GetCurSel();
> if ($index > -1){
> my $app = $combo_box->GetString($index);
> system($uninstall{$app});
> }
> }
>
>
> ##########################################
>
>
> --
> _____________________
> Ceci n'est pas un email.
--
_____________________
Ceci n'est pas un email.
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Register now and save $200. Hurry, offer ends at 11:59 p.m.,
Monday, April 7! Use priority code J8TLD2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Perl-Win32-GUI-Users mailing list
Perl-Win32-GUI-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users
http://perl-win32-gui.sourceforge.net/