(已解决)如何控制某进程占用的cpu%
本帖最后由 zb7512511 于 2014-10-20 09:39 编辑现在 a.exe 在某些时候 cpu 达到100%
可以 指定它 cpu为20% 么?
怎么实现? 那你可以检测 a.exe的cpu占用情况啊 100%后关闭 回复 1# zb7512511
a.exe是你寫的嗎??如果不是難喔
如果可以的話~~ 那豈不是 每個人 都可以控制別人寫的程式~~那不是亂了套 如果是也难,这个多核的话估计还好实现一些,单核的话。。。。。你懂得 如果編寫的是一些小程序,CPU佔用率一般都不會很多,
如果CPU佔用率過多,請再適當位置加入如下代碼
sleep(100)
可減少CPU的佔用率 不断努力优化程序 已解决
Func _ProcessSuspend($Process)
$processid = ProcessExists($Process)
If $processid Then
$ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $processid)
$i_sucess = DllCall("ntdll.dll", "int", "NtSuspendProcess", "int", $ai_Handle)
DllCall('kernel32.dll', 'ptr', 'CloseHandle', 'ptr', $ai_Handle)
If IsArray($i_sucess) Then
Return 1
Else
SetError(1)
Return 0
EndIf
Else
SetError(2)
Return 0
EndIf
EndFunc ;==>_ProcessSuspend
Func _ProcessResume($Process)
$processid = ProcessExists($Process)
If $processid Then
$ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $processid)
$i_sucess = DllCall("ntdll.dll", "int", "NtResumeProcess", "int", $ai_Handle)
DllCall('kernel32.dll', 'ptr', 'CloseHandle', 'ptr', $ai_Handle)
If IsArray($i_sucess) Then
Return 1
Else
SetError(1)
Return 0
EndIf
Else
SetError(2)
Return 0
EndIf
EndFunc ;==>_ProcessResume
页:
[1]