That's what the start command does unless you use the /B switch. However, trying to exec start to drop the priority of the current process isn't going to work either, which is why I suggested a batch file.
If you want to do it from within the script, you can use Win32::API::Prototype to do it this way:
#! perl -slw
use strict;
use Win32::API::Prototype;;
{
local $^W = 0; ## Ignore warning from Win32::API::Prototype
ApiLink( 'kernel32', 'HANDLE GetCurrentProcess( )' ) or die $^E;
ApiLink( 'kernel32', 'HRESULT SetPriorityClass( HANDLE p, DWORD c
+)' )
or die $^E;
}
SetPriorityClass( GetCurrentProcess(), -1 );
print "Check priority for process $$ in the Task Manager";
## You should see that it has been set to 'LOW'
<STDIN>;
Or using Win32::Process like this:
#! perl -slw
use strict;
use Win32::Process;
Win32::Process::Open( my $hProcess, $$, 0 ) or die $^E;
$hProcess->SetPriorityClass( THREAD_PRIORITY_IDLE );
undef $hProcess;
print "Check priority of process $$ in Task Manager";
<STDIN>;
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
|