忍者ブログ
We aren't android!
Admin / Write
2017/10/19 (Thu) 10:39
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2010/07/22 (Thu) 23:45
  タスクマネージャにあるプロセッサの関係(関係の設定)と同等の動作をします。
マルチコアCPUでないとこの項目は出現しません。

CPUのコア数は sysinfo(17) や

#include "kernel32.as"

	dim system_info,10
	GetSystemInfo varptr(system_info)
	mes "CPU のコア数 : "+system_info.5
などで取得が出来ます。
環境変数NUMBER_OF_PROCESSORSからも取得できるとか。

ちなみに、2コアしかないのに3コア目を1にすると設定に失敗します。
存在するCPUの数より多く設定してしまうとエラーになり失敗するようです。
キチンとコア数を数えてから設定してあげるようにしてください。

#include "kernel32.as"

/*
      プロセスハンドルを得るために、CreateProcessを直接使用。
    起動済みのプロセスの場合は EnumProcesses などを利用する。
    http://hsp.tv/play/pforum.php?mode=pastwch&num=17225 
*/ 

	// CreateProcessを使用してメモ帳起動 		
	//(execだとハンドルが直接取得できないため)
	appname="notepad"
	
	dim startupinfo,17
	startupinfo.0=68
	dim procinfo,4
	
	CreateProcess 0,varptr(appname),0,0,0,0,0,0,varptr(startupinfo),varptr(procinfo)
	if stat=0:dialog "起動失敗":end
	// 成功するとプロセスハンドル(PROCESS_ALL_ACCESS)が入る
	handle=procinfo.0


	// 使用するCPUコア
	dim b,32
	b.0=1	// CPU 0 を 使用する 
	b.1=0	// CPU 1 を 使用しない

	
	// (配列をビット配列に変換)
	bit=0
	repeat 32
		if b.cnt=1 : bit|=1<<cnt
	loop
	
	// フラグをセット
	SetProcessAffinityMask handle,bit
	
	// 確認のためタスクマネージャ起動
	exec "taskmgr"
PR
Comment
Name
Title
Mail
URL
Comment
Pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
  HOME   87  86  85  84  83  81  82  80  79  78  77 
カレンダー
09 2017/10 11
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
RSS/カウンタ
ブログ内検索
プロフィール
性別:
非公開
最新トラックバック
QRコード
最新コメント
[03/09 AAA]
[02/06 名無し]
[02/02 名無し]
[02/01 マンマミーヤ]
[01/30 地獄の番犬]
忍者ブログ [PR]