超簡単URL&オートラン
とりあえずソースをみてください。
#include "hspext.as"
	screen 0,406,300,0
	cls 4
	title "超簡単URL&AUTORUN BY SORATOSU"
	objsize 100,30
	font "",30
	repeat
	redraw 0
	color 0,0,0
	boxf 0,0,406,300
	color 0,255,0
	pos 50,50
	mes "超簡単URL&AUTORUN"
	if (mousex>=0)&(mousex<=202)&(mousey>=200) : gosub *hidari
	if (mousex>=203)&(mousey>=200) : gosub *migi
	wait 1
	redraw 1
	loop
	button "URL",*url
	button "オートラン",*aut
	stop

*hidari
	color 255,255,0
	boxf 0,200,202,300
	pos 50,230:color 0,0,255:mes "URL"
	stick kehi
	if kehi=256 : goto *urlo
	return
*migi
	color 255,255,0
	boxf 203,200,406,300
	pos 250,230:color 0,0,255:mes "オートラン"
	stick kehi
	if kehi=256 : goto *auto
	return
*urlo
	redraw 0
	color 200,200,0
	boxf 0,200,202,205:boxf 0,200,5,300
	boxf 0,295,202,300:boxf 197,200,202,300
	redraw 1
	wait 20
*url
	cls 4
	a="":b=""
	font "",20
	color 100,100,255
	objmode 2
	objsize 200,50
	pos 60,20:mes "ページの名前  (例)KEI'S HP"
	pos 90,48
	input a,200,25
	pos 5,100:mes "アドレス(例)http://www.h3.dion.ne.jp/~fyoshio/)
	pos 3,130
	input b,400,25
	font "",50
	pos 103,200
	button "作成",*go
	stop
*go
	fxlink a,b
	end




;オートラン
*auto
	redraw 0
	color 200,200,0
	boxf 203,200,406,205:boxf 203,295,406,300
	boxf 203,200,208,300:boxf 401,200,406,300
	redraw 1
	wait 20
	con="まだ決めてない"
	hiraku="まだ決めてない"
	
*aut
	redraw 0
	font "",30
	cls 4
	objmode 1
	objsize 100,25
	title "オートラン"
	color 100,100,255
	pos 10,10
	mes "アイコン="+con
	button "アイコン",*aikon
	pos 10,100
	mes "ファイル="+hiraku
	button "開くファイル",*hirakuf
	pos 103,230
	objmode 2
	objsize 200,50
	button "製造",*tsukuru
	redraw 1
*mainloop
	getkey i,17
	getkey o,18
	getkey s,83
	if i=1 : goto *aikon
	if o=1 : goto *hirakuf
	if s=1 : goto *tsukuru
	wait 1
	goto *mainloop
*aikon
	font "",20
	objmode 2
	title "I-CON"
	cls 4
	pos 50,50
	color 50,255,50
	mes "アイコン(例)sample.ico
	pos 103,100
	input con,200,30
	objsize 200,30
	pos 103,150
	button "戻る",*aut
	objmode 1
	objsize 75,18
	pos 326,280
	chkbox "Enter無効",ck
	repeat
	if ck!1 : {
	stick mo
	if mo=32 : goto *aut
	}
	wait 10
	loop
*hirakuf
	cls 4
	font "",20
	objmode 2
	title "ファイル"
	pos 50,50
	color 50,255,50
	mes "自動で(オートランで)\n開くファイル(例)pasokon.exe"
	pos 50,100
	input hiraku,300,30
	objsize 300,30
	pos 50,150
	button "MODORU",*aut
	objsize 75,18
	objmode 1
	pos 326,280
	chkbox "Enter無効",kc
	repeat
	stick key
	if kc!1 : if key=32:goto *aut
	wait 1 
	loop
	stop
*tsukuru
	if con="まだ決めてない" : {
	dialog "デフォルトのままではだめです。",0,"アイコンの方":goto *aut
	}
	if hiraku="まだ決めてない" : {
	dialog "デフォルトのままではだめです。",0,"ファイルの方":goto *aut
	}
	alloc saveyou,32000
	saveyou=""
	saveyou="[AUTORUN]\nOPEN="+hiraku+"\nICON="+con+"
	cls 4
	color 255,255,0
	mes "完成!"
	
	bsave ""+exedir+"\\AUTORUN.INF",saveyou
	end


こんなのをパッとみてどこがどんな処理をしているかわかりますか?
僕もわかりません。まあじっくり見れば確かにわかりますが…。
ちょっとづつ解説していきますね。


#include "hspext.as"
一行目ますはこれです。
これは、「hspext.dll」というやつの中の命令をしようするための命令です。これで、URLのやつを作成できます。

screen 0,406,300,0
cls 4
title "超簡単URL&AUTORUN BY SORATOSU"
2〜4行目の命令です。
これは、「screen」というめいれいをつかってスクリーンのサイズを変更します。
「cls 4」というのは、画面を初期化する命令です。4というのは、黒く初期化します。白くするのは、0です。
「title」というのは、タイトルバー(一番上の青いやつ)に表示される文字を変更する命令です。ここでは、「超簡単URL&〜BY SORATOSU」というのに変更しています。
repeat
redraw 0
color 0,0,0
boxf 0,0,406,300
color 0,255,0
pos 50,50
mes "超簡単URL&AUTORUN"
if (mousex>=0)&(mousex<=202)&(mousey>=200) : gosub *hidari
if (mousex>=203)&(mousey>=200) : gosub *migi
wait 1
redraw 1
loop
2〜3行目は飛ばします。
これは、TOPで“URL”か“オートラン”を選ぶやつです。
repeat 〜〜 loop の間を無限に繰り返します。別に
*hajime
	redraw 0     	
	color 0,0,0 	
	boxf 0,0,406,300
	color 0,255,0	
	pos 50,50
	mes "超簡単URL&AUTORUN"
	if (mousex>=0)&(mousex<=202)&(mousey>=200) : gosub *hidari@
	if (mousex>=203)&(mousey>=200) : gosub *migiA
	wait 1
	redraw 1
	goto *hajime
という風にしてもいいと思います。
まずちらつきを抑えるさめ、[redraw]をつかいます。
まず画面を黒くします。[color 0,0,0(黒色):boxf 0,0,406,300]で画面全体を黒くします。本当は下の1/3ぐらいだけでいいんだけど。
[pos 50,50 : mes "超〜N"]は言わなくても楽勝ですね。50,50に超〜Nを表示します。

はっきりいってこのソフトで一番こってる?のがここです。
@これは、「もしマウスがここにあったらこうしろ」と言う命令です。もしあったら「おっここにあるやんけ。よっしゃ「gosub *hidari」命令をじっこうしろ!!」というものです。おっとgosubはなにかだって?これはサブルーチンジャンプをしろというめいれいです。つまり、「とりあえず*hidariへいけ!もし「return」があったらもどってこい!!」というものです。…わかってもらえたでしょうか。 Aもまったく同じです。
*hidari
	color 255,255,0
	boxf 0,200,202,300
	pos 50,230:color 0,0,255:mes "URL"
	stick kehi
	if kehi=256 : goto *urlo
	return
*migi
	color 255,255,0
	boxf 203,200,406,300
	pos 250,230:color 0,0,255:mes "オートラン"
	stick kehi
	if kehi=256 : goto *auto
	return
これは、さっきやったやつのサブルーチンジャンプ先です。ちょっと説明を略します。
*url
	cls 4
	a="":b=""
	font "",20
	color 100,100,255
	objmode 2
	objsize 200,50
	pos 60,20:mes "ページの名前  (例)KEI'S HP"
	pos 90,48
	input a,200,25
	pos 5,100:mes "アドレス(例)http://www.h3.dion.ne.jp/~fyoshio/)
	pos 3,130
	input b,400,25
	font "",50
	pos 103,200
	button "作成",*go
	stop
とうとうやってきました。このソフトのいっこめ「URLリンク作成」です。
いろいろありますが、説明を抜けば、
*url
	cls 4
	a="":b=""
	input a,200,25
	input b,400,25
	button "作成",*go
	stop
こんなけです。案外こういうパターンが結構あります。
では、とうとう作成してみましょう!!

*go
	fxlink a,b
	end
じゃじゃーん!!これが、あれを作成するためのものです。
「fxlink」という命令をつかってさくせいします。
この命令は、ただこれだけを書いただけでは動きません。これは拡張命令をつかってこの命令が使える、DLLがないと動きません。そのために一番初めに「#include "hspext.as"」でこのfxlinkを使えるようにします。なぜ拡張子はDLLなのにこれでは拡張子はASになってるの?と思いませんか?ぼくもわかりません。まだ良く説明書を読んでいないので。たぶん…。まあいいや。ではオートランにいってみましょう!!


ではオートランです。

オートランってなに?と思う方がおられるかもしれないので、ちょっと説明します。
オートランとは、CDをいれたら勝手に指定したものを起動できる。というものです。
雑誌の付録やプロパイダーの入会用CDとかなどいたるところでよく使われます。それを作成するものです。 オートランさせるためには、『AUTORUN.INF』というファイルが必要です。
ドライブを右クリックして、『開く』をクリックすれば『AUTORUN.INF』があるとおもいます。それを作るスクリプトです。


*auto
	redraw 0
	color 200,200,0
	boxf 203,200,406,205:boxf 203,295,406,300
	boxf 203,200,208,300:boxf 401,200,406,300
	redraw 1
	wait 20
	con="まだ決めてない"
	hiraku="まだ決めてない"
これは、オートランのトップ画面です。
『con』という変数に「まだ決めてない」という文字をいれています。この変数は、アイコン用です。 『hiraku』ー同ー この変数は、開くファイル用です。

*tsukuru
	if con="まだ決めてない" : {
	dialog "デフォルトのままではだめです。",0,"アイコンの方":goto *aut
	}
	if hiraku="まだ決めてない" : {
	dialog "デフォルトのままではだめです。",0,"ファイルの方":goto *aut
	}
	alloc saveyou,32000
	saveyou=""
	saveyou="[AUTORUN]\nOPEN="+hiraku+"\nICON="+con+"
	cls 4
	color 255,255,0
	mes "完成!"
	
	bsave ""+exedir+"\\AUTORUN.INF",saveyou
	end
ちょっとこれ以外はそんなに難しくないので、わからないことがあればおしえてください。
では最後の作るやつです。
2〜7行目はデフォルトのままだと作れないようにしています。

8行目の「alloc」という命令は、変数の容量を増やすめいれいです。デフォルトだと64Bしか記憶できませんがこの命令を使うと32000Bまで使えるようになります。(HELPファイルによるとsdimやdim命令でバッファを確保するのが望ましいとありますがいまいちよくわからないので単純でわかりやすいalloc命令を使用しています。)
なぜこんなに確保するかというと、たくさん文字を入力したときのためにこんなに確保しています。でもこれだと必要のない分まで記録するのでちょっとCD-Rとかの容量が勿体ない?きがしますが何かいい方法があればぜひご連絡を。

『saveyou』という変数は、記録(保存)するようの変数です。

そして、『bsave』で記録しています。exedirとは、SYSTEM変数でこのソフトがおいてあるディレクトリのパスが入っている変数です。なんかよくわかりませんがこれを入れないと変なところに記録されてしまうのでこれをいれます。



ちょっとオートランの方がいいかげんになってしまいましたが勘弁ねがいます。


ぜひご意見、感想をおきかせください。聞かしていただける方は、アンケートや掲示板にばしばしやってください。必ず返事します。疑問でも、「ここはこうやろ!!」とか、「なんでこーなんねん!!!」とかでも何でもOKです。テストもおわったし結構はやめに返事できると思うので。

戻る  TOP  アンケート  掲示板



≪裏話≫
じつはオートランのほうはフォルダのアイコン変更にとおもって作ったのですが、なんかぜんぜん変化なし。せっかく作ったから、オートランでも作ろうと思って作りました。
URLのほうはBonchan君に見せたところ、
[InternetShortcut]
url=http://www.tcn.zaq.ne.jp/bonchan/
IconIndex=1
IconFile=C:\WINDOWS\SYSTEM\url.dll
とでもいけるそうです(いけます。)これを「??.url」というふうに記録すると…。アラ不思議、新聞紙が出てきた。?意味不明?実はぼくも完全には…。でも大体わかるよ。「url」は飛ぶ先だって。詳細は、Bonchanさんのホームページのアンケートフォームで。直メールはいいのかな。あんまりお勧めできません。まあ僕のばあいは全然かまわないけど。