|
パラメータについて 0 = PARAM_STR[0] MSGBOX("0")
1 = PARAM_STR[0] MSGBOX("1") ...etc このような感じで送られてきたパラメーターごとに処理を分けたいのですが よくわかりませんわかる方いましたらよろしくお願いします
|
No.3835 2017/05/02(Tue) 05:05:15
|
☆ Re: パラメーターについて質問です / 俄プログラマー |
|
|
ヘルプファイルより
// Select Selend 文 SELECT 式 CASE 式 // 数値でも文字でも変数でもOK 処理 [CASE 式, 式] // ,カンマによる複数表記可 処理 [DEFAULT] // デフォルト 処理 SELEND
|
No.3836 2017/05/02(Tue) 05:31:25
|
|
☆ Re: パラメーターについて質問です / しんじ |
|
No.3840 2017/05/02(Tue) 19:45:47
|
|
☆ Re: パラメーターについて質問です / しんじ |
|
|
すいませんやはりできないです 文の中にIFB GETKEYSTATE(TGL_IME)を入れてるのですがループかブロックをふさいでいると出ます どうすればいいでしょうかbreakを使いましたがうまくいかないです
|
No.3841 2017/05/02(Tue) 21:29:21
|
|
☆ Re: パラメーターについて質問です / 俄プログラマー |
|
|
//私は超能力者ではないのでソースを提示して頂けないと答えようがないです。
SELECT PARAM_STR[0] CASE 0 MSGBOX("0") CASE 1 MSGBOX("1") SELEND
|
No.3842 2017/05/02(Tue) 22:29:58
|
|
☆ Re: パラメーターについて質問です / user |
|
|
■処理をふりわける方法について。 サンプルです。 質問にある「0 = PARAM_STR[0]」って、ifbの中で使われているんですよね? もしエラーになっている部分について目星がつくなら、そのあたりの行ごと引用したほうが、適切な回答が得られやすいと思います。よくわかんないなら、いったん全部なげてもよいかも。
p=input("入力してください")
select p case 1 msgbox(1) case 2 msgbox(2) selend
//上と同じ 単純に割り振るなら、上のほうがわかりやすいかも。 ifb p=1 then msgbox(1) elseif p=2 msgbox(2) endif
|
No.3844 2017/05/02(Tue) 22:34:44
|
|
☆ Re: パラメーターについて質問です / user |
|
|
■TGL_IMEについて ・Windowsは、通常アプリごとにIMEの状態を保持しています。メモ帳ではONだけど、エクセルではOFFとか(ただし、IMEによっては、全てのアプリで状態を共有する設定にもできるはず) ・GETKEYSTATE(TGL_IME)は、アクティブなウィンドウ(アプリ)のIMEの状態を拾うらしい。 ※http://uwsc.wpblog.jp/?p=129 ※デバッガで試したけれど、半角全角キーでのトグルは拾えなかった(デバッガだからかも?)
//TGL_IMEのテスト while true sleep(0.1) IFB GETKEYSTATE(TGL_IME) then break endif wend msgbox("IMEトグル?")
|
No.3845 2017/05/02(Tue) 22:46:23
|
|
☆ Re: パラメーターについて質問です / しんじ |
|
|
すいません失礼しました 以下がcaseの中に入れるコードです LOCKHARD(TRUE)
GETTIME() date = "" + G_TIME_MM2 + "月" + G_TIME_DD2 + "日" time = "" + G_TIME_HH2 + "時" + G_TIME_NN2 + "分" + G_TIME_SS2 + "秒"
FSO = CreateOLEObj("Scripting.FileSystemObject") IFB FSO.FolderExists("") ELSE folder_name ="" Doscmd("mkdir C:\" + folder_name) ENDIF
x2=G_MOUSE_X y2=G_MOUSE_Y
id1=GETID("0",) id = GetId("") CTRLWIN(id, SHOW) CTRLWIN(id, ACTIVATE) IFB (STATUS(id, ST_ACTIVE)="True")AND(STATUS(id1, ST_TITLE)="")AND(STATUS(id1, ST_ACTIVE)="False")
title = STATUS(id, ST_TITLE) x = STATUS(id, ST_X) y = STATUS(id, ST_Y) X1=4+RANDOM(4) Y1=4+RANDOM(4) fileID = FOPEN("", F_READ) str = FGET(fileID, 1) FCLOSE(fileID) IFB (str="")
MMV(x,y) BTN(LEFT,CLICK) for 回数 = 1 to 6 KBD(VK_BACK,CLICK) next If GETKEYSTATE(TGL_IME) Then KBD(VK_KANJI,CLICK) fileID = FOPEN("", F_READ) for i = 1 to FGET(fileID, -1) KBD(ASC(FGET(fileID,i))) next FCLOSE(fileID) MMV(x, y) k=(2)/10+(RANDOM(1))/10 SLEEP(0+k) BTN(LEFT,CLICK)
fileID = FOPEN("", F_READ or F_WRITE) FPUT(fileID, date + " " + time + "") FCLOSE(fileID) LOCKHARD(FALSE)
ELSE
Sleep(0.3) MMV(x, y) BTN(LEFT,CLICK) Sleep(0.2) MMV(x,y) BTN(LEFT,CLICK) Sleep(0.2) MMV(x,y) BTN(LEFT,CLICK) for 回数 = 1 to 6 KBD(VK_BACK,CLICK) next If GETKEYSTATE(TGL_IME) Then KBD(VK_KANJI,CLICK) fileID = FOPEN("", F_READ) for i = 1 to FGET(fileID, -1) KBD(ASC(FGET(fileID,i))) next FCLOSE(fileID) MMV(x, y) k=(2)/10+(RANDOM(1))/10 SLEEP(0+k) BTN(LEFT,CLICK) MMV(x2,y2)
fileID = FOPEN("", F_READ or F_WRITE) FPUT(fileID, date + " " + time + ") FCLOSE(fileID) fileID = FOPEN("", F_WRITE) FPUT(fileID, "") FCLOSE(fileID) LOCKHARD(FALSE) ENDIF ELSE
LOCKHARD(FALSE) MMV(x2,y2) ENDIF
|
No.3849 2017/05/03(Wed) 00:22:28
|
|
☆ Re: パラメーターについて質問です / 俄プログラマー |
|
|
最初の質問と内容が変わってきていますね。
>ループかブロックをふさいでいると出ます 提示されたソースでは出ないですね。 繰り返し処理の途中で条件分岐をちゃんと終えていますか?
while true
if 〜〜
wend endif
などになっていませんか?
取りあえず気になったところだけ挙げておきます。
id1=GETID("0",) id1=GETID("0")
FPUT(fileID, date + " " + time + ") FPUT(fileID, date + " " + time + "")
エラーになっている周辺の処理を一旦別のテキストファイルにコピー(退避)しておいて print "処理A" などと適当にわかるような物に変えてみてください。 細かな処理はそのあと一つずつ追加して動作確認しながら進めてください。 先のスレでも書きましたが一度で一気に複雑な事をするのは止めましょう。 エラーが出ても訳が分からなくなるだけですよ。
|
No.3850 2017/05/03(Wed) 01:21:09
|
|
☆ Re: パラメーターについて質問です / しんじ |
|
|
If GETKEYSTATE(TGL_IME) Then KBD(VK_KANJI,CLICK) この部分でふさいでいるとエラーが出ました 一番最初の質問に関しては解決はしたのですが これはもともと一つ一つファイルに組み込んでいたもので 一つのファイルで管理できたらなと思いパラメータで分担処理をしようとしたところ 上記のようなエラーが出たため質問させていただきました次第でございます
|
No.3851 2017/05/03(Wed) 01:36:44
|
|