忍者ブログ
We aren't android!
Admin / Write
2017/10/18 (Wed) 12:34
×

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

2010/07/23 (Fri) 00:10
 意外に気が付かないのですが、dimtype で作ることが出来ます。
複数のブラウザが開くように実装するには必須な機能ですね。

dimtype
ie, vartype("comobj"), 32


PR
2010/07/23 (Fri) 00:01
 HSPのパックファイルからの再生はWAVEファイルのみで、
2MB以下とかなり厳しくなっています。
(一度ファイルとして書き出す方法は別として)
 
[過去ログ]mp3素材をどうしてもPACKFILEに入れたい!
 
せっかくなので、
以前投稿した2MB以上の WAVEファイルをパックファイルから
読み取り再生するものをモジュール化してみました。
 
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"
2010/07/21 (Wed) 23:53
 HSP的に言えば、mesbox ですね。
ウィンドウメッセージ EM_SETTABSTOPS を送ってやるだけでタブ幅を変更することが出来ます。

#define EM_SETTABSTOPS 0xCB

	sdim m,1024
	mesbox m, 640, 480
	hMesbox = objinfo(stat,2)

	// 実際は設定した値の 1/4 ぐらいです。
	// 40 の場合は 10 文字ほど。
	tabsize = 40
	
	sendmsg hMesbox, EM_SETTABSTOPS, 1, varptr(tabsize)
2010/07/20 (Tue) 23:22
 Windows XP 専用?とりあえず、Vistaでは作動しませんでした。
ダイアログを開いたときに縮小版表示にしてみます。

参考:
"SHELLDLL_DefView"に送るwParam値一覧

28713 アイコン表示
28715 一覧表示
28716 詳細表示
28717 縮小版
28718 並べて表示

これ以外にもあるみたいです。
28714 にしてもアイコン表示になりますし。
#include "user32.as"

//ウィンドウタイマーセット

	oncmd gosub *Timer, 0x113
	SetTimer hwnd, 1, 1, 0

	dialog "",16,""
	
	dialog refstr

	end

*Timer
	
	GetWindowThreadProcessId hwnd,0	//自プロセスID
	hp=stat:hw=0
	repeat
	
		FindWindowEx 0,hw,"#32770",0
		hw=stat
		if hw=0:break
		GetWindowThreadProcessId hw,0 //プロセスID
		if stat=hp{
			
			FindWindowEx hw, 0,"SHELLDLL_DefView",""
			sendmsg stat,0x0111,28717,0
			
			//タイマー解除
			KillTimer hwnd,1
						
			break
		}
	loop
	return
  HOME   1  2  3  4  5 
カレンダー
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]