Bonjour gilou , je te remercie enormement pour les solution.
comme je suis encore debutant en perl j'ai un peut de mal a appliqué la doc des module.
mon problem est que aprés avoir creé le boutton stop je c'est pas quelle commande utiliser pour faire le Kill. peut tu m'aider
voici le code
#!/usr/bin/perl
use strict;
use warnings;
use Win32;
use Win32::Process;
use Tk;
use Cwd;
require Tk::BrowseEntry;
my $mw = MainWindow->new(
-title => "bm",
-background => 'white',
);
$mw->minsize( 500, 500 );
my $frame = $mw->Frame()->pack(qw/ -pady 10 -padx 10 /);
my ( $argument1, $argument2 );
my $BrowseEntry1 = $frame->BrowseEntry(
-label => "name : ",
-variable => \$argument1,
)->pack(qw/ -side left -padx 10 /);
my $BrowseEntry2 = $frame->BrowseEntry(
-label => "n : ",
-variable => \$argument2,
-choices => [ "1", "2" ],
)->pack(qw/ -side right -padx 10 /);
my $BoutonLancementProg = $mw->Button(
-text => "lancer prog",
-command => [ \&voiture, \$argument1, \$argument2 ],
)->pack();
my $killProg = $mw->Button(
-text => "Stop",
-command => , ###### c'est quoi comme commande
)->pack();
MainLoop;
sub voiture {
my ( $Refargument1, $Refargument2 ) = @_;
my ( $argument1, $argument2 ) = ( ${$Refargument1}, ${$Refargument2} );
print "Argument 1 : : $argument1\n" if ( defined $argument1 );
print "Argument 2 : : $argument2\n" if ( defined $argument2 );
if ( defined $argument1 and defined $argument2 ) {
#system("voiture_v8.exe $argument1 $argument2" );
sub ErrorReport{
print Win32::FormatMessage( Win32::GetLastError() );
}
my $ProcessObj;
Win32::Process::Create($ProcessObj,
"h:\\Script\\voiture_v8.exe",
"voiture_v8.exe $argument1 $argument2",
0,
NORMAL_PRIORITY_CLASS,
"." )|| die ErrorReport();
my $exitcode;
$ProcessObj->Kill($exitcode)
}
else {
warn "Les 2 arguments ne sont pas ok\n";
}
return;