DoやFor文を抜けるには、Exit
以降のマクロ処理をしないで、終了させるには、End
DoやFor文を抜けるには、Exit
以降のマクロ処理をしないで、終了させるには、End
// Close操作の例
ID = GETID(“Chrome”)
IFB ID <> -1 Then // Chromeが表示されている時
CTRLWIN(GETID(“Chrome”),CLOSE)
ENDIF
// taskkillですべてのプロセス指定(子プロセスも含む必要があるときは /T も指定)
ID = GETID(“Chrome”)
IFB ID <> -1 Then // Chromeが表示されている時
DosCmd(“taskkill /F /IM <#DBL>CHROME.EXE<#DBL>”,TRUE,FALSE)
ENDIF
SLEEP(1)
ID = GETID(“Edge”)
IFB ID <> -1 Then // Edgeが表示されている時
DosCmd(“taskkill /F /IM <#DBL>msedge.EXE<#DBL> /T”,TRUE,FALSE)
ENDIF
エクセルで、シートをコピーしたりして利用する場合に、名前が定義されていると重複メッセージが出ることがある
名前定義を削除、変更したいときは、数式の名前の管理か、CTRL+F3キーで管理画面を呼び出す
スケジュールで実行しているスクリプトを修正したら、記述ミスでエラーメッセージが表示されて以降のスケジュールも停止した。
スケジュール設定で、別プロセスで実行にチェックを入れておけば、エラーメッセージが出たスクリプトは、そのままで次のスケジュールが実行できる
エラーメッセージを解除するために、UWSCを再起動する
DosCmd(“uwsc_restart1.bat”) // 再起動batを実行
uwsc_restart1.batは、
@echo off
start “” “C:\ProgramData\tools\uwsc_restart2.bat”
uwsc_restart2.batは
@echo off
ping localhost -n 3 > nul
taskkill /im UWSC.exe /F /T
ping localhost -n 5 > nul
start “” C:\ProgramData\tools\uwsc.exe
exit
※UWSCの特徴として、UWSCスクリプトが終了(本体を終了も同様)させると、実行中のものも終わってしまうことがある
uwsc_restart1.batのみで、uwsc_restart2.batの内容を実行すると、taskkill 以降の処理は実行されずに、batファイルが終わってしまう
そこで、startで別にbatファイルを実行すると、uwsc_restart1.batが終わっても、uwsc_restart2.batは独立して実行されるので、うまくいく
※それぞれのスクリプトは別プロセスで実行すること
この様なBATファイルを使わなくても、UWSCには、POFF( コマンド )という便利な機能があるが、別プロセスで実行しても、該当プロセス以外は対応できない。
同一プロセスだとエラーメッセージにOKをクリックしないと停止したままなので、上記のBATファイルでの処理が必要
SOUND(“BEEP”)やSOUND(“音ファイル名.wav”),SOUND(“音ファイル名.mp3”)でuwscは音を鳴らせるが、デフォルトは処理終了を待たないFalseになっている
その為、次の処理でMSGBOXの様に待機コマンドが無いと、再生前にUWSC自体が終了してしまい、再生が止まるので注意
ほとんど場合、TRUE指定が必要
MSGBOXで、OKをクリックするまで、再生が続き、OKをクリックするとUWSCが終了するので、再生が止まることが確認できる例
fileName = “アラーム.wav”
SOUND(fileName)
MSGBOX(“OK”)
PUBLIC MSGTEXT = “Hello World!” // 関数に渡す値
MSGDSP() // 関数を呼び出し
PROCEDURE MSGDSP() // 関数定義
MSGBOX(MSGTEXT )
FEND
IISでActivePerl を利用したCGI掲示板を動作させる
ActivePerl-5.14
IIS8.5
Windows Server 2012 R2
IISマネージャでサイトを選択し、「ハンドラマッピング」を開き、「スクリプトマップの追加」を選択
以下の項目を入力する
要求パス *.cgi
実行可能ファイル参照して選択 C:\Perl\bin\perlis.dll
名前 Perl(任意)
IISを再起動する
一般に表示されている情報では、perl.exeをマッピングするが、それでは動作しなくて、perlis.dllを指定する必要があった
また、CGI表示の際にContent-type: text/htmlが上部に表示される問題は、CGIの修正で回避できた
以下の行が記載されている場所へ1行追記
print “Content-Type: text/html; charset=utf-8\n\n”;
追記した例
print “HTTP/1.1 200 OK\n”;
print “Content-Type: text/html; charset=utf-8\n\n”;
※上記をコピーすると、”が全角になるので、半角に修正が必要
ショートカットキーを登録して操作できるアプリで有用
例 タスクトレイ格納を通常表示に戻して、キー登録したアプリ終了のショートカットキーを操作
ID = GETID(“Tablacus Explorer”)
IFB ID <> -1 Then
CTRLWIN(id, NORMAL)
ENDIF
ACW(GETID(“Tablacus Explorer”))
// 操作中フォルダでタイトルが変化する為か、ID指定で動作しない場合があるので、アクティブにした後で、ID0指定でキーを送る
SCKEY(0, VK_CTRL,VK_ALT,E) // ALT+CTRL+Eで終了
// SCKEY(0,VK_ALT,VK_F4) // ALT+F4キー操作で強制終了
STOPFORM(FALSE) // STOPボタンを表示しない
<条件>
アプリケーションにメニュー画面が通常とコンパクトの表示があり、起動時にコンパクト設定が無い為、スタートアップでコンパクトボタンをクリックする
メニュー画面が表示されても、完全に起動するまで、操作できない
コンパクト表示に出来るまで、繰り返す
// メインメニュー表示待ち
While GETID(“メインメニュー (フル表示)”) = -1
SLEEP(1)
WEnd
// 画像ボタンの為、アドレス指定でコンパクトクリック
// アドレスは記録モードで操作して、調べる
ACW(GETID(“メインメニュー (フル表示)”)
BTN(LEFT,CLICK,800,150,0)
// 実際には、操作可能になるタイミングが不定でSLEEPを入れて繰り返しが必要
// コンパクト表示するまで繰り返し タイトルの違いで識別
// コンパクト表示では、”メインメニュー”にタイトルが変化する
While STATUS( GETID(“メインメニュー”), ST_TITLE ) <> “メインメニュー”
ACW”メインメニュー (フル表示)”)
BTN(LEFT,CLICK,800,150,0)
SLEEP(5)
WEnd