AutoHotkey入門 学習シリーズ (6) 入力したデータをスクリプト外部に保持したり読んだりする

はぁい!

今回はユーザーが入力したデータを保持する方法をお届けします.

今日のCan-do

·ユーザーが入力したデータを外部に保持し,それを読み取れるようなスクリプトを作成できる.

基本的な動作はこうです.

Inputboxで入力を促す.

↓

入力したデータを変数として,txtファイルに保存する.

↓

別のキーを押したときに.txtファイルから変数を読みだし,出力する.

では,あるYoutubeのURLを登録しておけば,そのURLを流してくれるようなスクリプトを作りましょう.特定のキーで,URLを登録しなおせるようにします.

まずは恒例の初見読解です.さて,下では,どんなことが行われているでしょうか.

!Y::
 vyoutubeurl =
 InputBox, vyoutubeurl, Your URL, Please enter Your Youtube URL, , 100, 250, 200, 200
 Filedelete, youtubeurl.txt
 FileAppend,%vyoutubeurl%, youtubeurl.txt
 MsgBox, I registered %vyoutubeurl%
return

!^Y::
 FileReadLine, vrunningyoutube, youtubeurl.txt, 1
 Run, %vrunningyoutube%
return

どうでしょうか.わかりますか.一つ一つ説明します.

!Y::     ; 登録用のキー
 vyoutubeurl =   ;変数作成

 InputBox, vyoutubeurl, Your URL, Please enter Your Youtube URL, , 100, 250, 200, 200
 ;InputBoxの中身を vyoutubeurlに保存する.YourURLがウィンドウの名前,説明,大きさ,表示位置とつづく.
 
 Filedelete, youtubeurl.txt  ;既存のyoutubeurl.txtを削除する(最初は削除されない.削除しないと新しい書き込みがなされても,後方に書き込まれてしまう)
 FileAppend,%vyoutubeurl%, youtubeurl.txt ;youtubeurl.txtというファイルを作成し,そこに変数を書き込む
 
 MsgBox, %vyoutubeurl%が登録されました ; 登録確認用メッセージ
return

;;;

!^Y:: ;再生用のキー
 vrunningyoutube = ;変数作成
 FileReadLine, vrunningyoutube, youtubeurl.txt, 1 ;1行目のデータを,テキストファイルから読み込んで,vrunningyoutubeという変数に代入
 Run, %vrunningyoutube% ;変数内のURLを走らせる
return

というわけです.コマンドのFileRead,FileAppend, FileDeleteと,該当する変数を駆使すれば,これで怖いものなしですね!

注意すべきは, youtubeurl.txtというファイルが,スクリプトのファイル.ahkと同じディレクトリーに作られてしまうことです.もし別の場所にフォルダーを作りたいのであれば,絶対パス(C:/user/ヤラナンヤラ)で表示する方がいいです.

数字を使いたい場合はiniWrite, iniReadというのも使えるようです.参考までに.

 

 

課題:

1.これまでに作ったスクリプトで,Inputboxが必要だと思っていたファイルがあれば,↑を参考に改良してみよう.

2.Inputboxに何も入れなかった人が登録作業に失敗したときのために,If関数を使って登録作業失敗を知らせるスクリプトを埋め込もう.

答えの例:

!Y::
	vyoutubeurl = 
	InputBox, vyoutubeurl, Your URL, Please enter Youtube URL, , 100, 150, 200, 200
	If (vyoutubeurl = null) ;nullは何もなし,の意味
		{
		Msgbox, 登録を中断しました.
		return
		}
                else
		{
		Filedelete, youtubeurl.txt
		FileAppend,%vyoutubeurl%, youtubeurl.txt
		MsgBox, %vyoutubeurl%を登録しました
		return
		}
	return

!^Y::
	vrunyoutube =
	FileReadLine, vrunyoutube, youtubeurl.txt, 1
	Run, %vrunyoutube%
	WinWait, ahk_class Chrome_WidgetWin_1
	sleep, 1500
	WinMinimize, ahk_class Chrome_WidgetWin_1
return

※If ( var = null ) の部分を, IfInString, vyoutubeurl, www にしてもいいですね!

広告

“AutoHotkey入門 学習シリーズ (6) 入力したデータをスクリプト外部に保持したり読んだりする” への 4 件のフィードバック

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください