in reply to Re: SetPriorityClass(). An explanation of code please.
in thread SetPriorityClass(). An explanation of code please.

This node falls below the community's minimum standard of quality and will not be displayed.

Replies are listed 'Best First'.
Re^3: SetPriorityClass(). An explanation of code please.
by BrowserUk (Patriarch) on Mar 23, 2006 at 10:31 UTC

    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.
    A reply falls below the community's threshold of quality. You may see it by logging in.