Gadzilla
14 years agoContributor
How to set process affinity from JScript
Could you please explain whether it is possible to set process affinity from JScript?
I am trying translate VBscript from the following thread into JScript
http://www.automatedqa.com/newsgroups/d.cgi?cmd=article&group=automatedqa.public.testcomplete&item=35676&utag
but looks like this does not work for me.
My script is the following:
function getProcessAffinity(iProcID)
{
var ProcessAffinityMask, SystemAffinityMask;
var Kernel32Def, Kernel32Lib;
var ProcHandle, R;
Kernel32Def = DLL.DefineDLL("Kernel32");
Kernel32Def.DefineProc("GetProcessAffinityMask", vt_i4, vt_byref | vt_i4, vt_byref | vt_i4, vt_bool);
Kernel32Lib = DLL.Load("Kernel32");
ProcHandle = Win32API.OpenProcess(Win32API.PROCESS_ALL_ACCESS, true, iProcID);
R = Kernel32Lib.GetProcessAffinityMask(ProcHandle, ProcessAffinityMask, SystemAffinityMask);
Win32API.CloseHandle(ProcHandle);
return [ProcessAffinityMask, SystemAffinityMask];
}
"Kernel32Lib.GetProcessAffinityMask(...)" line returns true, but "ProcessAffinityMask" and "SystemAffinityMask" variable still undefined after execution of this line of code.
The same situation for setProcessAffinity function:
function setProcessAffinity(iProcID, iAffinityMask)
{
var Kernel32Def, Kernel32Lib;
var ProcHandle, R;
Kernel32Def = DLL.DefineDLL("Kernel32");
Kernel32Def.DefineProc("SetProcessAffinityMask", vt_i4, vt_i4, vt_bool);
Kernel32Lib = DLL.Load("Kernel32");
ProcHandle = Win32API.OpenProcess(Win32API.PROCESS_ALL_ACCESS, true, iProcID);
R = Kernel32Lib.SetProcessAffinityMask(ProcHandle, iAffinityMask);
Win32API.CloseHandle(ProcHandle)
return R;
}
"Kernel32Lib.SetProcessAffinityMask()" line returns false, and process affinity is not settled up on any Win platform.
Could somebody help me to solve the problem?
Thanks in advance.
I am trying translate VBscript from the following thread into JScript
http://www.automatedqa.com/newsgroups/d.cgi?cmd=article&group=automatedqa.public.testcomplete&item=35676&utag
but looks like this does not work for me.
My script is the following:
function getProcessAffinity(iProcID)
{
var ProcessAffinityMask, SystemAffinityMask;
var Kernel32Def, Kernel32Lib;
var ProcHandle, R;
Kernel32Def = DLL.DefineDLL("Kernel32");
Kernel32Def.DefineProc("GetProcessAffinityMask", vt_i4, vt_byref | vt_i4, vt_byref | vt_i4, vt_bool);
Kernel32Lib = DLL.Load("Kernel32");
ProcHandle = Win32API.OpenProcess(Win32API.PROCESS_ALL_ACCESS, true, iProcID);
R = Kernel32Lib.GetProcessAffinityMask(ProcHandle, ProcessAffinityMask, SystemAffinityMask);
Win32API.CloseHandle(ProcHandle);
return [ProcessAffinityMask, SystemAffinityMask];
}
"Kernel32Lib.GetProcessAffinityMask(...)" line returns true, but "ProcessAffinityMask" and "SystemAffinityMask" variable still undefined after execution of this line of code.
The same situation for setProcessAffinity function:
function setProcessAffinity(iProcID, iAffinityMask)
{
var Kernel32Def, Kernel32Lib;
var ProcHandle, R;
Kernel32Def = DLL.DefineDLL("Kernel32");
Kernel32Def.DefineProc("SetProcessAffinityMask", vt_i4, vt_i4, vt_bool);
Kernel32Lib = DLL.Load("Kernel32");
ProcHandle = Win32API.OpenProcess(Win32API.PROCESS_ALL_ACCESS, true, iProcID);
R = Kernel32Lib.SetProcessAffinityMask(ProcHandle, iAffinityMask);
Win32API.CloseHandle(ProcHandle)
return R;
}
"Kernel32Lib.SetProcessAffinityMask()" line returns false, and process affinity is not settled up on any Win platform.
Could somebody help me to solve the problem?
Thanks in advance.