HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0716
MHタスクマネージャの”プロセッサの関係”の設定を変更したい7解決


MH

リンク

2010/7/16(Fri) 18:17:33|NO.33726

はじまして、タスクマネージャのプロセスで、
起動中のプログラムの「プロセッサの関係」を開くと、
そのソフトが使用するCPUを設定できますが、
この設定をHSPで自動で変更するソフトを作りたいです。

私が使用しているAとBの二つのソフトを同時にしようしていると、
不安定になるのですが、プロセッサの関係でCPUを違うものにすると解決できましたので、
作るソフトのイメージとしては、”起動したらAとBのソフトが起動しているかチェックし、
起動していたらCPUの設定を変更して終了する”です。

前置きが長くなりましたが、
ヘルプを見てもどの命令で実現できるのか見つけられませんでした。
どの命令を使用すればよいか教えて頂けないでしょうか。
もしくは解説しているサイトやDLLなどの情報を頂けると助かります。

宜しくお願いします!



この記事に返信する


木村

リンク

2010/7/18(Sun) 16:42:14|NO.33766

 『プロセッサの関係』ではなく『関係の設定(A)』ではないのでしょうか?
 この『関係の設定』と言うオプション、搭載CPUが単発の場合はそもそもリストにさえ
現れないので、非マルチプロセッサのパソコンしか所有していない人間には問題の存在自体が
把握できません。

>>※実例
http://hspdev-wiki.net/?%B4%CB%CB%FD%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8%B0%DC%C5%BE%C0%E8%2F%A5%BF%A5%B9%A5%AF%A5%DE%A5%CD%A1%BC%A5%B8%A5%E3%A4%CE%A1%C9%A5%D7%A5%ED%A5%BB%A5%C3%A5%B5%A4%CE%B4%D8%B7%B8%A1%C9%A4%CE%C0%DF%C4%EA%A4%F2%CA%D1%B9%B9%A4%B7%A4%BF%A4%A4

>>上を作るのに使った参考サイト
http://www.discreet.jp/support/software_support/FAQ/max/faq_max_a7.html



 で、解決法ですが恐らく2つ。

1,既存のフリーソフトを活用する

http://www.forest.impress.co.jp/article/2008/01/21/processlasso.html
2,Win32API(SetProcessAffinityMask)に頼る
http://msdn.microsoft.com/ja-jp/library/Cc429334


 尚、木村は単発CPUなのでスクリプトの実例は書けません。申し訳ありません。


>>参考ページ(趣旨が同じと思われる質問です)
http://okwave.jp/qa/q4443046.html



inovia

リンク

2010/7/18(Sun) 18:06:14|NO.33770

サンプル投下


#include "kernel32.as" /* プロセスハンドルを得るために、CreateProcessを直接使用。 起動済みのプロセスの場合は EnumProcess などを利用する。 http://hsp.tv/play/pforum.php?mode=pastwch&num=17225 */ // メモ帳起動 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 handle=procinfo.0 // 成功するとプロセスハンドル(PROCESS_ALL_ACCESS)が入る // 使用するCPUコア dim b,32 b.0=1 // CPU 0 を 使用する b.1=0 // CPU 1 を 使用しない // (配列をビット配列に変換) repeat 32 if b.cnt=1 : bit|=1<<cnt loop // セット SetProcessAffinityMask handle,bit // 確認のため exec "taskmgr"



inovia

リンク

2010/7/18(Sun) 18:10:37|NO.33771

>『プロセッサの関係』ではなく『関係の設定(A)』ではないのでしょうか?

『関係の設定(A)』をクリックすると
『プロセッサの関係』のウィンドウが開くので
どちらとも合っているかと。



inovia

リンク

2010/7/18(Sun) 19:14:34|NO.33774

CPUのコア数の取得は以下のような感じに。

#include "kernel32.as" dim system_info,10 GetSystemInfo varptr(system_info) mes "CPU のコア数 : "+system_info.5



moritoshi

リンク

2010/7/18(Sun) 20:58:37|NO.33779

CPUのコア数の取得は

sysinfo(17)

でもできます。たぶん



skyblue

リンク

2010/7/19(Mon) 11:28:27|NO.33793

環境変数のNUMBER_OF_PROCESSORSでも取得できます。(HKLM)



MH

リンク

2010/7/20(Tue) 18:09:23|NO.33815

みなさん色々なアドバイスありがとうございます!!

全く触った事の無い設定部分だったので、
何をしたらいいのか分かりませんでしたが、
まずはinoviaさんのサンプルを理解して自分なりに作ってみます。

ありがとうございました!



ONION software Copyright 1997-2023(c) All rights reserved.