1read 100read
2011年10月1期モバイル【array[3] = 】MortScrip TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
パケット従量制推進化いいんかい?
EMOBILE SHARP EM・ONEスレッド@モバイル板 41台目
【docomo】HW-01C Part4【エリア広々】
史上最強のノートパソコン


【array[3] = 】MortScrip


1 :09/11/03 〜 最終レス :12/01/07
Windows Mobile プラットフォームその他で
いろいろ遊べる使えるスクリプト言語 MortScript のスレ Part 3 です。
スクリプティングのtipsやhelpなど、
謙虚に質問しつつ教えてもらいましょう。
前スレ
【array[2] = 】MortScript
http://pc11.2ch.net/test/read.cgi/mobile/1200917379/l50
MortScript 公式
(* ユーザエージェントがPCプラットフォームのブラウザでアクセスして下さい)
http://www.sto-helit.de/index.php?module=download&action=list&entry=18
MortScript まとめ&マニュアル要訳
http://home.att.ne.jp/wave/deox_pop/mortscript.html
支援ツールなどは>>2以降

2 :
>>1 乙です!
 【支援ツール】
・qkc.exe :日本語文字コード変換(UTF以外。WH020SHでは使用できないようです。)
http://moyashi.air-nifty.com/hitori/2008/05/windows_mobilew_7446.html
・naviClip.exe :最寄り基地局の座標をgmm_navi 形式でクリップボードにコピー
 http://w-zero3.org/uploader/src/up0344.zip
【支援ツール殿堂入り】
・utf8sjis.exe :UTF-8 文書を Shift_JISに変換
(今までありがとう)
 
【お役立ちツール】
・Task Manager :レジストリ検索/編集や実行中プロセス、ウィンドウ情報、
Notification情報/削除など多彩な機能
http://www.dotfred.net/TaskMgr.htm
 
【標語】
 暗いと不平を言うよりも すすんであかりをつけましょう

3 :
>>1
乙です。やっと規制解除きますた

4 :
YouTubeからflvをダウンロードするスクリプト
ソース
http://muscat.skr.jp/pda/cgi-bin/tubetube/tubetube.txt
zip
http://muscat.skr.jp/pda/cgi-bin/tubetube/tubetube.zip

5 :
mortscrip?

6 :
>>4
YouTubeDLGT.mscrとどうちがうの?

7 :
>>6
.flvのダウンロードのみ、再生はTCPMPなどで。
"h"抜けURL(ttp://…)や複数URLに対応。
m.youtube.comに対応。
↓再生リストの場合は、全ての動画をまとめてダウンロード。
http://www.youtube.com/view_play_list?p=93A06805A073644C
http://m.youtube.com/view_playlist?p=B0BF3A7DF6B8B4B7

8 :
前スレが落ちたようなので、datをうpしておきました。
http://home.att.ne.jp/wave/deox_pop/mortscript.html
>>7乙です。
「YouTubeDLGTもm.youtube...には対応してたけどなぁ」と思いながら久々に試してみたら
またYouTube仕様変更していたんですね。。
遅ればせながら対応しておきました。
今回の仕様変更で、
ゲートウェイサーバを経由しなくてもFLVファイルのありかがわかるようになったので、
こっちはMortScriptのみの力技でFLVダウンロードを行う仕様に戻し、
スクリプト名も "YouTubeDL.mscr" に戻しました。
http://home.att.ne.jp/wave/deox_pop/scripts.html

9 :
W-ZERO3用バックライト輝度変更スクリプトなんだけど、
ソースコードはこんな感じなんだ。
******************
b = RegRead( "HKCU", "ControlPanel\BackLight", "BatteryBrightness" )
If ( b < 6 )
b = b + 1
RegWriteDWord( "HKCU", "ControlPanel\BackLight", "BatteryBrightness", b )
EndIf
******************
で、問題があって、このスクリプトを実行して、その瞬間に輝度が変わる訳じゃなく、
実行した後、たとえば他のいずれかのキーを押したり、画面をタップすることで
やっと変更が反映されるんだ。
実行した後、もう一度何かのアクションを起こさなければダメってことかな。
これを、スクリプト実効した瞬間に変更されるようにするには、
最後にどういうスクリプトを書けばいいかな?
適当にSleepさせたり、Exit記述したり、適当なキーコードを送っても
変化無しだったわ。

10 :
私は以下のようにしていますが、[es]及びAd[es]でうまく動いています。
参考までにどうぞ。
−−−−−−−−−−−−−−−−−−−
#バックライト輝度を一段階上げるスクリプト
a = RegRead( "HKCU" , "ControlPanel\BackLight" , "ACBrightness" )
b = RegRead( "HKCU" , "ControlPanel\BackLight" , "BatteryBrightness" )
#外部電源使用中ならばAC輝度調整
If( ExternalPowered() )
If ( a < 6 )
a = a + 1
SetBacklight( b , a )
EndIf
Else
If ( b < 6 )
b = b + 1
#SetBacklight関数のバグ対応(バッテリー輝度は設定値が反映されない)
RegWriteDWord( "HKCU" , "ControlPanel\BackLight" , "BatteryBrightness" , b )
SetBacklight( b , a )
EndIf
EndIf
−−−−−−−−−−−−−−−−−−−

11 :
改良してx01t用として紹介していいですか?

12 :
改良?
偉そうに

13 :
>>10
お断りします

14 :
アンカーミスです。
>>11

15 :
上から目線の乞食w

16 :

17 :
改「良」はマズいわなw
レジストリが違ってるはずだから
そのままで動かないからっていいたいんだろうけど

18 :
>>10
おお、ひょっとして参考にしたサイトの管理人さんなのかな?
そのスクリプトを参考にさせてもらって03用に軽量化?させてもらったのが>>9なんだ。
とりあえずSetbacklight関数でエラーダイアログが出てしまうんだ。
というわけで全部レジストリ直書き換えの関数だけにしたんだ。
まぁ、ひょっとしたら、esやアドエスでは、このスクリプトで即時変わるのかもしれないけど、
03は実行してもすぐは輝度変わらずなのを何とかしたかったんだ。
仕様的に無理なのかもしれないが。

19 :
>>18
なるほど、[es]やAd[es]と03とでは違うのですね。当然といえば当然でしょうか。
私も[es]で動いていたスクリプトがAd[es]では×、というケースが多くて難儀しました。
Sleep( 200 )とか入れるだけで動くようになったりすることが多かったですけどね。
>>all
改めていうまでもないですが、改良でも改善でもどうとでもして下さい。
私もいろんなところから拾い集めたソースを自分用に弄らせてもらっています。

20 :
T-01Aを使っているんだがスリープモードに入った判断と回線切断の方法がわからない。
教えてもらえないだろうか。

21 :
T-01Aってバカの集まりなの?
どこも読んでないし、なにも試してないでしょ

22 :
S21HTでmortscript4.2以降使えてる人いる?
ここと同じ現象が出て使えない。
ttp://tok03.blog111.fc2.com/blog-entry-68.html
例えば↓を実行すると3行目で処理が止まっちゃってENDが出ない。
Message("START")
wtitle = "JWezWm"
SendLeftSoft( wtitle )
Message("END")
1回ストレージクリアしてみたけど現象変わらずだったorz

23 :
>>22
S21HT持ってないんで適当に答えるけど
ウインドウ名を指定するとダメってこと?
回避策は思いつくけどそれじゃダメなんだろうな

24 :
芋菱スレで聞いてみます…
お騒がせしました。

25 :
SpeedSTmailを少し書き換えたいです。
原文
SendCtrlKey ( "c" )
sleep(500)
n = Find( ClipText(), "<")
adrs1 = SubStr( ClipText(), n + 1)
r = Length( adrs1)
address = SubStr( adrs1, 1, r - 1 )
If ( n=0 )
Run( "\Program Files\SpeedMail\SpeedMail.exe", ClipText())
Else
Run( "\Program Files\SpeedMail\SpeedMail.exe", address)
EndIf
Exit
においてSpeedMail.exeを引数/cを付けて、起動させたいのですが、どうすればいいのでしょうか?
Run( "\Program Files\SpeedMail\SpeedMail.exe"/c , ClipText())
では、動かず困っています。

26 :
>>25
"\Program Files\SpeedMail\SpeedMail.exe"/c

"\Program Files\SpeedMail\SpeedMail.exe /c"
にしてみたら?

27 :
>>26
そうすると、エラーが出ないものの、SpeadMailが起動しません

28 :
後半を
,"/c " & ClipText()
にしたらどうですか?
/cの後の半角スペースをお忘れなく
ダメだったらごめんね

29 :
>>28
ありがとうございました。
うまく動きました
あとから見た人がコピペだけで済むように貼付けます
SendCtrlKey ( "c" )
sleep(500)
n = Find( ClipText(), "<")
adrs1 = SubStr( ClipText(), n + 1)
r = Length( adrs1)
address = SubStr( adrs1, 1, r - 1 )
If ( n=0 )
Run( "\Program Files\SpeedMail\SpeedMail.exe","/c " & ClipText())
Else
Run( "\Program Files\SpeedMail\SpeedMail.exe","/c " & address)
EndIf
Exit

30 :
windows mobileで、YOPViewerWM(産經新聞ビューワー)を使っています
YOPViewerWMを自動でダウンロードできるmortscriptを作りたいのですが、どうすればいいのか分かりません。
http://d.hatena.ne.jp/tmyt/20090121/1232497259
このブログのコメント欄で、kaniさんの記述をみると、mortscriptで自動ダウンロードをしているようです。
どなたかお助けください。

31 :
少しはマニュアルよめば。

32 :
「単にキーストロークを真似するだけ」と書いてあるから
そうすればいいんじゃない?

33 :
>>32
>>30はそれを全部書いて欲しいんだよ

34 :
SpeedMailは便利だがそのうち使えなくなる。

35 :
サービス終了近くになれば、誰かがエッジeメールに対応してくれるさ。

36 :
LEMail207があるだろ

37 :
ライトEメールサービスがなくなるわけだから、LEMail207もダメ

38 :
LEMail207はエッジeメールも対応しているべ。
なので、SpeedMailも最新のLEMaill207を使うように
少し修正すれば良いだけじゃないかな。

39 :
>>30
thisFile = SystemPath( "ScriptPath" ) \ SystemPath( "ScriptName" ) & SystemPath( "ScriptExt" )
#テスト時等のnotification queueが溜まらないように削除
RemoveNotifications( thisFile )
#次回実行時刻を予約
#翌日05:05〜05:30の間でランダムに決定する
t = TimeStamp()
RunAt( t + 86400 + 18000 + 300 + Rnd(1500) - (t MOD 86400), thisFile )
if( ExternalPowered() )
Run("\Windows\スタート メニュー\プログラム\Sankei Sinbun.lnk")
Sleep( 80000 )
if ( Connected() )
SendSpecial( "RightSoft" )
Sleep( 300 )
SendSpecial( "Down" )
Sleep( 300 )
SendSpecial( "Down" )
Sleep( 300 )
SendSpecial( "CR" )
Sleep( 1500 )
SendSpecial( "CR" )
EndIf
EndIf

40 :
>>30
スクリプト見れば分かると思いますが
・起動された時刻に充電台に載っている、かつ
・キーロックが解除されている、かつ
・YOPViewerWM以外(アラーム等の通知を含む)が前面に出ていない
条件でのみ動作します。
また、ダウンロード完了したら回線を切断するなどといった
気の利いた処理もしません。
いや、もっと上手い方法があるのだとは思うのですが、
とりあえずこれで困ってないというか...

41 :
ありがとうございます
これから動くか確かめてみます
今後もっとmortscriptを勉強します!

42 :
クレクレうぜェし

43 :
>>39
> #翌日05:05〜05:30の間でランダムに決定する
  ↑これは遊び?

44 :
>>43
全く同じ時刻に、特定のIPアドレス帯からアクセスがあると
ログ解析した時に目立つからー、という理由で書いたのだけど
まあ遊びかも。

45 :
>>44
なるほどw

46 :
まあ、そういうのもあるかもだけど、
こういうスクリプトをそのままコピペして使う人も多い。
特定時間にするとその時間にアクセスが到して鯖に迷惑が
かかる可能性も出てくる。
こうやって散らすのは気遣いってやつだ。

47 :
最低でも5:00とかのピッタリは避けるもんな

48 :
こうやって散らすのは気違いってやつだ。
に見えた。

49 :
Mortスクリプターは気づかい上手が多くて素敵だな。

50 :
>>39
キーストロークのとこ、
SendCommand( "YOPViewerWM" , 40014 )
でもいいよね。
このソフト初めて知ったけど面白いね。
朝まとめてダウンロードして、スクリプトで無理やり起動時オフラインモード&最大倍率にして電車で読んでるけど快適だわ〜

51 :
>>前スレ322
Today に表示している rlToday へ SendCommand して
rlToday だけを再読み込みさせるアプリ作ってみました。
ttp://www6.ocn.ne.jp/~yta/
ここから WindowsMobile Software→rlToday.ini-Reloader を辿ってください。
rltoday.ini や skin.xml を書き換えた後に任意のタイミングで
rltdinirl.exe を実行するだけで Reload Skin が発動します。
Today アイテムを多数導入している場合などに効果があると思われます。

52 :
Ver 4.3の主な機能
@ユーザ関数名(引数)…ユーザ関数の戻り値を取得
FtpUpload…FTPでアップロード
MortScriptExe…MortScript.exeのパスを取得
ActiveScripts…実行しているスクリプトの一覧を取得
Try-Catch-EndTry…Try-Catch間でエラーが発生した場合にCatch-EndTry間を実行する
Break…ループを抜ける
Continue…次の回のループへ移る
ExitSub…Returnで返してSubを抜ける(一般的なプログラミング言語のReturnに相当する)
制御構造が強化されている

53 :
Ver.4.3ですか。
4.2で動いていたスクリプトは全て動くと思っていいのでしょうかね?

54 :
まだベータ版だから気にすんな

55 :
CallScriptFunctionでExitSubを使ったら怒られてむかついた

56 :
前スレ130で出ていたラッパーアプリの案を実現させてみました。
受け取った引数を分割して、変数に代入する形に整形するアプリ、
MortScriptWrapper を公開しました。DL先は >>51 へ。

57 :
ある任意のタスクが起動中にだけは、
時間経過による省電力処理などの
ディスプレイの電源を切らないような処理って
Mortscriptで出来るかな?
イメージ的にはWindow Media Playerが再生中は
画面が暗くならない、ってことなんだけど。
ProcExistsで、あるタスクが起動中かどうかはわかると思うけど、
それで条件分岐して、
ある時間ごとにToggledisplay(TRUE)でもやるのかなぁ?
もうちょいスマートな書き方ないものかねえ。

58 :
バッチファイルみたいに
ディスプレイ消灯タイマーオフ
wmp起動
ディスプレイ消灯タイマー復帰
ってスクリプトを作ってそこからwmp起動、とかどうでしょう。
数多くのタスクに対応したいのならRunAtで回すとか。

59 :
おお、なるほど。それならスマートだね。
そういえば、
ディスプレイ消灯タイマーオフ
ディスプレイ消灯タイマー復帰
ってMortscriptで書けるのだろうか?
それとも別で作ってRunで呼び出すのだろうか?

60 :
てとりあしとりくん

61 :
そんな短い周期の用途にRunAtなんか使うなっていつも言ってるだろ。

62 :
> 時間経過による省電力処理
これの時間カウンタをリセットする処理を含んでいる命令がIdleTimerResetのはず
任意タスクが終了するまでループして、一秒毎にIdleTimerReset呼ぶしか思いつかん

63 :
>>57
論点がずれてしまうが、TCPMPなら再生中に暗くなることはない
WMPをTCPMPにしてしまうという発想はナシ?

64 :
>>4氏のスクリプト使わせていただいてます。
ありがとうございます。
お願いなのですが、サイトと同じように
MP4やHDをリンクから選択できるようなスクリプトにはできないでしょうか?

65 :
毎度亀レスで申し訳ないが >>9,18 へ。
省電力設定を再読み込みさせるだけのアプリ PowerApply を公開しました。(DL先は>>51)
レジストリのキーライトフラグや、節電までの秒数などを書き換えた後に実行するだけで強制反映できます。
輝度を書き換えた後にこれを使うと、お望みの挙動が実現できるかもしれません。

66 :
>>65
おーすげぇ、完璧に思い通りになったっす!
ありがとう

67 :
RunAtは起動してても時間通りに動いてくれないから使い物にならない

68 :
>>67
だからIdleTimerReset仕えって

69 :
>>65
S11HTはダメでした(泣)

70 :
そもそもS11HTは根本的にバックライトを司る部分自体が違うんじゃないか?
普通にSetBacklight関数が使えて
実行したら即、輝度かわるんじゃねーの?

71 :
>>70
レジストリは書き変わるんですけど、明るさは即変わらないです

72 :
>>71
>>70 の通り、HTC 機には専用の輝度調節 DLL と強制設定 API があります
MortScript 単体では無理なので、別アプリから DLL を叩く必要がありそうです
一応確認したいのですが SetBacklight 命令で書き出されるレジストリは、
S11HT でも同様に HKCU\ControlPanel\BackLight\ 以下、
ACBrightNess, BrightNess の二つで合っていますか?

73 :
>>72
レジストリはそれです
>>10の方法や、Sleep入れたりDisplayをon/offしたり
いろいろ書き足してみてたんですけど、
どうりで、、、

74 :
>>73
HTCUtil.dll を経由すれば HTC 端末における液晶輝度の即反映が可能という情報を得たので
BrightnessConfiger for HTC なる WM アプリを作成しました。
ただ当方実機が無いため、本当に反映されるのかどうか、どんな挙動を示すのか全く未確認です。
念の為バックアップを取ってからお試しください。

75 :
>>74
出来ました!
ありがとうございます!
不具合は無いようです。
何度もくじけてバックライト輝度関連はあきらめかけてました。
でもこれで書きかけ放置のscriptをいくつか完成出来ます。
本当に本当にありがとう。

76 :
>>75
こういうのって本当に嬉しいよね。WMの未完成さにすら感謝したくなる。
俺も初代[es]入手以来、何度か同じように救われたことがあって、都度感謝してる。
今度俺が困ったときは、>>75氏が助けてくれることを祈っています。

77 :
でもそろそろスレ違い気味かな

78 :
はじめまして。
CE.NET + Flite を探している最中に興味をもちました。
もう少し早い時期に存在を知ってれば翻訳のお手伝いくらいはできたかもと思いながら
過去ログのarray[1]から読みはじめ、ようやくここにたどり着きました。
Flite は擬似的な日本語の再生は可能のようなので開発の再開を期待しています。
ありがとうございました。

79 :
.mscr(というか「スクリプト」というものそのもの)歴3週間のおっさんです。
アドエスで、アプリが切り替わるたびに入力モードを切り替えるスクリプトを作ってみました。
概ね望みどおりの挙動を示していますが、どうも安定しない(上手くいかないこともある)。
どなたか添削していただけませんか?
恐れ入りますがよろしくです。
−−−−−
Sleep( 3000 )
If( WndActive( "Desktop" )\
|| WndActive( "GSPlayer" )\
|| WndActive( "TCPMP" )\
|| WndActive( "strCalc" )\
|| WndActive( "Excel" ) )
Regwritedword( "HKCU" , "\Software\Sharp\PhoneStatus" , "Status22" , 7 )
ElseIf( WndActive( "GSFinder" )\
|| WndActive( "jot" )\
|| WndActive( "mscr" ) )
Regwritedword( "HKCU" , "\Software\Sharp\PhoneStatus" , "Status22" , 6 )
Else
Regwritedword( "HKCU" , "\Software\Sharp\PhoneStatus" , "Status22" , 0 )
EndIf
−−−−−
タイトルにDesktop、GSPlayer等が入っているウィンドウがアクティブになれば入力モード=数字
同じくGSFinder等が…=英数
その他の場合は同=かな
1行目のスリープは長くしたり短くしたりいろいろ試行錯誤しています。

80 :
キーボードが開いてるときのことを考えろ

81 :
(´ー`)y─┛~~ (array[1]の頃は、こんな上から目線発言の人はいなかったよね〜)

82 :
UWSCの臭いスレと間違っとるんちゃうか

83 :
list - for でやるべきやろ
やり方は自分で勉強せい。半年ぐらいでわかるようになるやろwwww
このスレにはお前みたいな素人にアドバイスできるような暇人はおらんてwwww

84 :
草はやす奴にも碌なのがおらん

85 :
WndActiveは遅いよね
Sleep10秒以上でもダメな時はダメ

86 :
ZERO3で電源ボタンを押せばアプリ終了するソフトを登録するスクリプトって無いかな?

87 :
Mortscriptでどうしてもやりたいんだ!
ってわけでもなければ、HookKeyHook使え

88 :
HookKeyHookとはちと用途が違う気がする。

89 :
レジストリに起動してるソフトを追加するだけだから、Mortscriptの方が適してるんじゃないかなと。
WkTaskに要望して付けてもらった機能なんだけど、WkTask使わなくなっちゃったし。

90 :
電源ボタンじゃなくて、終話ボタンだった

91 :
(´ー`)y─┛~~>>84 ww

92 :
メル欄でNGにしてるから問題ない

93 :
>>79
HKEY_CURRENT_USER\System\State\Shell\Active Application
をcmdRegistryNotifyAppで監視して、レジストリの値に合わせてswitchとか使って文字種変更してやればいいんじゃね?

94 :
>>93
だな
それとSwichの組み合わせでやるのが現実的
Switch( ActiveWindow() )
Case ( "hoge","hoge","hoge","hoge" )
Regwritedword( "HKCU" , "\Software\Sharp\PhoneStatus" , "Status22" , 7 )
Case ( "hoge","hoge","hoge","hoge" )
Regwritedword( "HKCU" , "\Software\Sharp\PhoneStatus" , "Status22" , 6 )
Default
Regwritedword( "HKCU" , "\Software\Sharp\PhoneStatus" , "Status22" , 1 )
EndSwitch
Defaultは4.3bでないと使えないから注意
あとウインドウ名ではなくプロセス名でやる方が確実だと思う

95 :
>>56
いただきました

96 :
サスペンドに入るとき(電源ボタン押したときでも自動でサスペンドになるときでも)
は必ず3G回線を切断するようにしたいのですけど
どんな感じでスクリプトを書けばよいのでしょうか?
サスペンドに入るときは・・・というコマンドってあります?
説明読んでも見つからないんですが、どなたかご教授願います。

97 :
>>56
ずっと規制で書き込みできなかったけど、これは革命的だね
MortScriptでできることが飛躍的に増えた
関連づけ変えてサイズやフォルダで開くアプリケーション変えたりできるし
何にしろ感謝感謝です

98 :
すみません。KeyHoleTVについてなのですが
起動すると常に最全面に居座ってしまって不便なので
終了せずに最小化させたいんですが
Minimize("KeyHoleTV") を実行すると終了してしまうんです。
これは最小化は無理ってことですよね。

99 :
え?
引数渡す記述が簡単になるだけじゃないの?

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
パケット従量制推進化いいんかい?
EMOBILE SHARP EM・ONEスレッド@モバイル板 41台目
【docomo】HW-01C Part4【エリア広々】
史上最強のノートパソコン