Execute programのバグは解決に向かっている…らしい
これの件。
・%u(%l)以降はスペースを入れようが何しようが全て「%u(%l)〜」と言う
一つの引数として認識されてしまう。
テストしたわけでもないので「らしい」としか言えないのだが、下のフォーラムトピックの Lex1 さんの書き込みがそんなことを言ってる。
この質問の内容は、
Execute program, "D:\hoge.exe", "%l"
などというアクションを実行すると、hoge.exe プログラムに渡される引数は
D:\hoge.exe "http://whatever_the_link.com"
とダブルクオート付きなってしまい、
D:\hoge.exe http://whatever_the_link.com
このようなダブルクオートのない形でしか引数を処理できないプログラムには渡すとエラーが起こるというもの。
Lex1 曰く、
It's bug. New Opera always call function ~QuotedStr before ShellExecute.
ということらしい。つまり、本来なら "%L" などと大文字で書かないと引数をダブルクオートで囲まないところを、何を書いてもダブルクオートで囲んでしまうそうだ。
一番上に書いた、2つ以上の引数を渡すと1つの引数として認識されてしまうというのは、つまり全体をダブルクオートで囲まれるからということで納得できる。
Lex1 はさらに、opera.dll をバイナリエディタでごにょごにょすれば直るよとも書いているのだが、これは Opera 9.61 以降では使えないらしい。
また、「開発者はこのバグのことを認知してるの?」との書き込みに対し、
Yes and partly fixed in 9.61. But you must use a different case for variables (for instance, «%l %u %T»).
だそうな。よく意味がわからない。引数の大文字、小文字によって解消されてるものと解消されていないものがあるのかな?
何はともあれ、開発者が認知しているとわかっただけでも収穫だろうか。しかし社員でもない Lex1 が何故そんなことを知ってるのか。
実験した結果は引数全部分解されてたよ。不思議!
すんげえ残念です - 俺専用チラシの裏 (←なぜかIEでは見れない) - by 俺
ちゃんと動くっぽい?