2019年08月13日

MacOS の AppleScript について

MacOS の AppleScript について

Windows と Android のプログラムしか製作していませんが、Mac の OSX のプログラムの開発にチャレンジしました。
iOS のアプリケーションは X-Code で作成した経験がありました、OSX は初めてです。
プロジェクトを作成してみましたが、そこから先に進みません。

目的は現在の日付を取得するアプリケーションです。
Mac の「jedit」でこの機能が実装されている情報があり、早速インストールしてみました。

インストールした後に AppleScript で作成されたファイルをダウンロードして、インストールしました。
メニューからスクリプトを実行すると現在の日付がエディタに表示されました。

デフォルトでは
2019.8.13 7:38:12
となります。

目的の書式は
2019年8月13日号。
です。

年は半角文字ですが、月と日は、1桁の場合は全角文字、2桁の場合は半角文字とします。

スクリプトを見てみたら、簡単な記述でした。
DOS の バッチファイルのような感覚ですが、AppleScript のパワーは凄いです。


編集方法を少し説明します。

■スクリプトのインストール方法
1:「jedit」を開いて、メニューの右から2番目の「スクリプト」をクリックします。
2:「スクリプトフォルダを表示」をクリックします。
3:一覧が表示されるので、添付した「KatuyaDate.scpt」ファイルをドラッグアンドドロップします。
4:「jedit」を開いて、メニューの右から2番目の「スクリプト」をクリックします。
5:「KatuyaDate.scpt」をクリックします。

■スクリプトの編集は方法
1:「jedit」を開いて、メニューの右から2番目の「スクリプト」をクリックします。
2:「スクリプトフォルダを表示」をクリックします。
3:一覧が表示されるので、「KatuyaDate.scpt」ファイルをダブルクリックします。
4:編集を行います。
5:変更した後は、メニューの右端の「コンパイル」をクリックします。
6:メニューの左端の「記録」をクリックして、次に左端から2番目の「中止」をクリックします。


スクリーンショット 2019-08-13 7.29.16.png
スクリプトのメニュー

スクリーンショット 2019-08-13 7.30.32.png
スクリプトフォルダ表示

スクリーンショット 2019-08-13 20.45.01.png
実行結果


■オリジナル(StampDate.txt)
StampDate.txt

***********************************************
set yy to (year of (current date))
set mm to (month of (current date)) as number
set dd to day of (current date)

set theTime to time of (current date)
set hh to (theTime div 3600)
set theTime to theTime - hh * 3600
set min to (theTime div 60)
set theTime to theTime - min * 60
set ss to theTime
set theDate to (yy & "." & mm & "." & dd & " " & hh & ":" & min & ":" & ss) as string

set the clipboard to theDate
tell application "System Events"
key down {command}
keystroke "v"
key up {command}
end tell
***********************************************

■変更後(KatuyaDate.txt)
KatuyaDate.txt

***********************************************
set yy to (year of (current date))

set mm to (month of (current date)) as number
if mm = 1 then
set mm2 to "1"
end if
if mm = 2 then
set mm2 to "2"
end if
if mm = 3 then
set mm2 to "3"
end if
if mm = 4 then
set mm2 to "4"
end if
if mm = 5 then
set mm2 to "5"
end if
if mm = 6 then
set mm2 to "6"
end if
if mm = 7 then
set mm2 to "7"
end if
if mm = 8 then
set mm2 to "8"
end if
if mm = 9 then
set mm2 to "9"
end if
if mm = 10 then
set mm2 to "10"
end if
if mm = 11 then
set mm2 to "11"
end if
if mm = 12 then
set mm2 to "12"
end if

set dd to day of (current date)
if dd = 1 then
set dd2 to "1"
end if
if dd = 2 then
set dd2 to "2"
end if
if dd = 3 then
set dd2 to "3"
end if
if dd = 4 then
set dd2 to "4"
end if
if dd = 5 then
set dd2 to "5"
end if
if dd = 6 then
set dd2 to "6"
end if
if dd = 7 then
set dd2 to "7"
end if
if dd = 8 then
set dd2 to "8"
end if
if dd = 9 then
set dd2 to "9"
end if
if dd = 10 then
set dd2 to "10"
end if
if dd = 11 then
set dd2 to "11"
end if
if dd = 12 then
set dd2 to "12"
end if
if dd = 13 then
set dd2 to "13"
end if
if dd = 14 then
set dd2 to "14"
end if
if dd = 15 then
set dd2 to "15"
end if
if dd = 16 then
set dd2 to "16"
end if
if dd = 17 then
set dd2 to "17"
end if
if dd = 18 then
set dd2 to "18"
end if
if dd = 19 then
set dd2 to "19"
end if
if dd = 20 then
set dd2 to "20"
end if
if dd = 21 then
set dd2 to "21"
end if
if dd = 22 then
set dd2 to "22"
end if
if dd = 23 then
set dd2 to "23"
end if
if dd = 24 then
set dd2 to "24"
end if
if dd = 25 then
set dd2 to "25"
end if
if dd = 26 then
set dd2 to "26"
end if
if dd = 27 then
set dd2 to "27"
end if
if dd = 28 then
set dd2 to "28"
end if
if dd = 29 then
set dd2 to "29"
end if
if dd = 30 then
set dd2 to "30"
end if
if dd = 31 then
set dd2 to "31"
end if


set theDate to (yy & "年" & mm2 & "月" & dd2 & "日号。") as string

set the clipboard to theDate
tell application "System Events"
key down {command}
keystroke "v"
key up {command}
end tell
***********************************************

posted by bonworld at 11:00| Comment(0) | TrackBack(0) | Computer
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/186416837
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック