MortScriptの記事一覧


06/21

前回のMortScriptでは、一番初歩的なプログラムともいえる「ダイアログの表示」しかしていませんでしたが、今回はこれも基本といえる「プログラムの起動」を行ってみたいと思います。

  • MortScript 公式サイト
    http://www.sto-helit.de/

  • 以前の第一回はこちらです。

  • MortScript、始めました。
    http://shinjiman0101.blog21.fc2.com/blog-entry-339.html

  • プログラム(アプリケーション)の起動を行ってみます。前回と同じようにテキストエディタで作業します。

    Run("\Windows\pxl.exe")
    test3.mscrtest3.mscr 実行後


    と入力し、test3.mscrと保存します。実行すると、Excel Mobileが起動します。ショートカット(拡張子lnk)や、ファイル本体を実行することも可能です(この場合は関連付けされたアプリケーションが起動します)。しかし上記の構文の場合パソコン版のExcelとは違うので、新規ファイルで自動的に起動しません(ファイル選択画面になります)。また、この構文は

    Run("\Windows\pxl.exe","\My Documents\hogehoge.xlsx")
    test4.mscrtest4.mscr 実行後

    ※hogehoge.xlsxは例

    という風に「引数」を与えてやることも可能です。与える引数は複数ある場合もまとめてダブルクォーテーションで囲みます。この構文だと、Excel Mobileが起動し、なおかつファイル「hogehoge.xlsx」を読み込んで起動します。

    このRun()構文は指定されたアプリケーションを実行しますが、もしこの構文の後にもスクリプトを記載していた場合、Run()構文実行後、その結果とは関係なしに次のスクリプトを実行します。アプリケーションを実行してその終了を待ってスクリプトを実行させる場合は、

    RunWait("\Windows\pxl.exe")
    test6.mscr 途中Excel起動中


    と記述します。RunWait()構文はアプリケーションを実行し、その終了を「待っている状態」なので、この場合Excel Mobileが終了するまでスクリプトは継続実行されています。ここで注意するべきなのは、「ショートカット(拡張子lnk)はダメ」ということですね。実行ファイル本体でないと認識してくれないようです。

    If(Question("Excelを起動しますか?","起動の確認","YesNo") = 1)
        Run("\Windows\pxl.exe","\My Documents\hogehoge.xlsx")
    Else
        Message("スクリプトを途中で終了しました","中止の確認")
    EndIf

    Message("スクリプトの最後なので終了しました","完了の確認")

    と記載すると、

    test5.mscr/test6.mscr 分岐ダイアログの後、

    test5.mscr 完了Excel Mobileが起動してなお、最後のダイアログが実行/表示されます(実際には起動のタイミングでダイアログは背面に隠れてしまいます)

    しかし、
    If(Question("Excelを起動しますか?","起動の確認","YesNo") = 1)
        RunWait("\Windows\pxl.exe","\My Documents\hogehoge.xlsx")
    Else
        Message("スクリプトを途中で終了しました","中止の確認")
    EndIf

    Message("スクリプトの最後なので終了しました","完了の確認")

    と記述すると、

    test5.mscr/test6.mscr 分岐ダイアログは同じですが、

    Excel mobileが起動し、アプリケーションを終了させると、最後のダイアログが実行/表示されます。Excel Mobileが起動している間はスクリプトも起動したまま、ということですね。

    test6.mscr 途中Excel起動中test6.mscr 完了

    test5.mscr/test6.mscr 途中終了ちなみに、最初の分岐で「いいえ」を選択すると、同じ結果です。

    これで、スクリプトの中心となるアプリケーションの実行を分岐も含めてMortScriptで制御できるようになりました。

    今回、作成したファイルです。ファイル名の拡張子txtをmscrにして下さい。

  • test3mscr.txt
  • test4mscr.txt
  • test5mscr.txt
  • test6mscr.txt


  • にほんブログ村 携帯ブログへにほんブログ村 携帯ブログ NTTドコモへにほんブログ村 携帯ブログ スマートフォンへにほんブログ村 PC家電ブログ デジモノへ

    a quickr pickr post


    06/04

    久しぶりに何か新しい事をしたいと思って、いつも他人任せで使っていた、MortScriptを自分で勉強してみることにしました。MortScriptは、システムや他のプログラムを一括コントロールすることに焦点を置いたスクリプト言語、のようです。自分でもインストールこそしていますが、自身で作成したことはありません。

  • MortScript 公式サイト
    http://www.sto-helit.de/

  • 私は少し位ならVBができますが、それ以外はからっきしダメです。目標としては、「元あるアプリケーションをさらに自分流にカスタマイズする」です。目標はiPhoneTodayなどに組み込めれば大成功です。

    まずは、お決まりの「Hello World」からですかね。構文的にはVBに似ているところもありますが、関数は専用の言葉が多いです。まずはテキストエディタで、

    Message("Hello World","テストメッセージ")
    MortScript test1.mscr 1


    と入力し、「test1.mscr」とでも名前をつけて保存します。拡張子「mscr」はMortScriptの拡張子です。保存後、T-01A上で実行するとメッセージボックスが表示されます。Messageという関数はメッセージボックスを表示させるということですね。

    MortScript test1.mscr 2

    このメッセージボックスは表示されるだけで条件分岐などはありません。ただ、OKをタップするとダイアログが閉じるだけです。

    条件分岐の基本構造である「YES/NO」形式でのダイアログには、Question関数を使います。

    Question("今日はいい天気ですか?","天気の確認","YesNo")

    とすると、値(この場合YesかNo)が返されます。通常は変数に値を格納する使い方が多いですね。

    int(変数) = Question("今日はいい天気ですか?","天気の確認","YesNo")

    上記の場合だと、YesかNoが変数intに格納されます。形式はYesNo(デフォルト)以外には、

  • YesNoCancel
  • OkCancel
  • RetryCancel

  • があります。返ってくる値は、

  • Yes、Ok、Retry → 1("YES")
  • No → 0("NO")
  • Cancel → 2("CANCEL")

  • となります。ここで注意しなくてはいけないのは「キャンセルしても変数に格納される値は空白にならない」ことですね。「2」か「CANCEL」という値が返ってくるので分岐する際は注意です。

    条件分岐はIf文を使います。「もし〜なら〜する」というプログラム言語の基礎中の基礎です。

    If(Question("今日はいい天気ですか?","天気の確認","YesNo") = 1)
        Message("いい天気でよかったですね","返事")
    Else
        Message("明日はいい天気になればいいですね","返事")
    EndIf

    「今日はいい天気ですか?」と訊かれて、「はい」なら「いい天気でよかったですね」、「いいえ」なら「明日はいい天気になればいいですね」と返事が変化します。

    MortScript test2.mscr 1

    MortScript test2.mscr 2「はい」なら、

    MortScript test2.mscr 3「いいえ」なら、

    これで「はい/いいえ」の分岐ができるようになりました。プログラムの基礎ですね。ここからちょっとずつ進めていきます。

    今回、作成したファイルです。ファイル名の拡張子txtをmscrにして下さい。

  • test1mscr.txt
  • test2mscr.txt



  • にほんブログ村 携帯ブログへにほんブログ村 携帯ブログ NTTドコモへにほんブログ村 携帯ブログ スマートフォンへにほんブログ村 PC家電ブログ デジモノへ

    a quickr pickr post


    トップへ | 

    カレンダー

    プロフィール

    カテゴリ

    Comments...A

    アクセスランキング

    3D球体タグクラウド

    リンク

    参加サイト

    広告