Windows Store App版 niconico アプリをURIスキームで呼び出す
結論からいくと
niconico://foobar
でOK。
上記のコードを走らせるとniconicoアプリが起動しfoobar
で検索してくれる。
これをVBScriptでやってみた。
Option Explicit Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "niconico://foobar"
一見これで大丈夫に見えるけど、半角スペースを含むと上手く行かない。
具体的にはniconico://nico nico
といった文字列。
niconicoアプリが起動して検索画面が表示されるところまでは期待通りなのだが、検索クエリがnico
になってしまう。
どうやら半角スペース以降が消えてしまうみたい。
そこで、これを回避したのが以下のコード。
Option Explicit Dim ShellApp Set ShellApp = WScript.CreateObject("Shell.Application") ShellApp.ShellExecute "niconico://foobar"
これなら半角スペースを含んでいてもきちんと検索できた。
ということで、特殊なURIスキームを呼び出したい場合はShellExecuteメソッドの方がよさそう。
ちなみに(というかこれが本題)
以下のようにすることで、作成したVBScriptファイルに文字列引数を渡して検索させることができる。
Option Explicit Dim Args, ShellApp Set Args = WScript.Arguments If Args.Count <> 0 Then Set ShellApp = WScript.CreateObject("Shell.Application") ShellApp.ShellExecute "niconico://" & Args(0) End If
これをコマンドラインランチャと組み合わせて使うと捗る。
ちなみに俺が使ってるのはこれ↓
ZiiLauncherの詳細情報 : Vector ソフトを探す!
追記(2013/11/28 21:26)
niconicoサポートに問い合わせたところ、ソート順を明示的に指定できるようなパラメータは実装されていないとのこと。
アプリ内の検索結果画面右上にあるドロップダウンリストからソート順を変更すれば、アプリ終了まではソート順設定が引き続き使われるものの、終了してしまえば「コメントが新しい順」に戻ってしまう。
これは現状では仕方のないもので、ソート順を指定するパラメータの実装については要望として受け取っていただけたようなので、開発が続く過程でそのうちパラメータが付く可能性が無きにしも非ずと言ったところ。
ちなみにWeb版では
http://www.nicovideo.jp/search/foobar?sort=f&order=d //==> 投稿日時が新しい順 http://www.nicovideo.jp/search/foobar?sort=n&order=d //==> コメントが新しい順 http://www.nicovideo.jp/search/foobar?sort=v&order=d //==> 再生数が多い順 http://www.nicovideo.jp/search/foobar?sort=r&order=d //==> コメント数が多い順 http://www.nicovideo.jp/search/foobar?sort=m&order=d //==> マイリスト数が多い順
などでソート順を指定できる。
また、order=d
をorder=a
にすることで逆順(昇順)にすることができる。
これ以外にもパラメータは多数あるので、興味があれば調べてみるのも面白いかも。