uwsc


10進法のunicodeテーブル

unicode10進法は以下のとおり。
縦の数字と横の数字を足したものが、その文字のunicode番号となる。
(さらに…)

UWSCでunicode文字を順番に全部表示する

unicodeの文字を順番に表示させるには、番号を変えてchr関数を実行すればいい。
chr関数は、10進法のunicode番号を文字に変える。

unicode文字を順番に全部表示するサンプルコード
----------------------
for i = 1 to 65535

PRINT CHR(i)

next
----------------------

unicode10進法は以下のとおり。
縦の数字と横の数字を足したものが、その文字のunicode番号となる。

10進法のunicode

UWSCでODBCを使ってmysqlに接続する

UWSCでODBCを使ってmysqlに接続したときの覚書。

【環境】
Windows7 64bitで接続。mysqlもlocalhostにある。

1.MySQL用のODBCドライバのインストール

windowsからmysqlに接続するため、MySQL用のODBCドライバをインストールをインストールする。参考

ダウンロードはこちらから

windows7は64bitを利用しているが、UWSCが32bitなので、ドライバは32bit版を選択する。
ダウンロードページで、「login」や「sign up」を求められるが、不要ならその下の「No thanks, just start my download.」のリンクから回避できる。

ダウンロードしたら、インストールする。

2.ODBCにmysqlの情報を設定する

インストールできたら、データソース(ODBC)をこちらから設定する。
---------------------------------
C:\Windows\SysWOW64\odbcad32.exe
---------------------------------

※こちらにあるのは64bit版なので、無効(32bit版windowsなら有効だろう)
---------------------------------
コントロール パネル\すべてのコントロール パネル項目\管理ツール\データ ソース (ODBC)
---------------------------------

設定時、インストールしたドライバが二種類表示されるが「MySQL ODBC 5.x Unicode Driver」を選択。「MySQL ODBC 5.x ANSI Driver」は、日本語WindowsではSHIFT-JISを意味するらしい。

※localhost以外のPCから接続できない場合は、こちら

3.UWSCでmysqlに接続してみる

参考ページ

参考スクリプト
Open メソッド (ADO Recordset)  
Fields コレクション  
FieldsコレクションとFieldオブジェクトの使い方

mysqlに接続するサンプルコード
-----------------------------------------------------------
objConn = CreateOleObj("ADODB.Connection")
objConn.Open("ODBCで作った名前") // コネクション(接続)実行

Dim RS = CreateOleObj("ADODB.Recordset")
Dim StrSQL = "Select * From テーブル名" //クエリ
RS.Open(StrSQL, objConn) // SQL実行 レコードセット取得

While ! RS.EOF
Print_ALLFields(RS) // 全フィールドのプリント
RS.MoveNext // 次のレコードへ
WEnd

sleep(100) //printが消えないように

//全フィールドのプリント
Procedure Print_ALLFields(a_RS)

Dim i, Str
For i = 0 To a_RS.Fields.Count - 1
Str = Str + "[" + i + " " + a_RS.Fields[i].name + " = " + a_RS.Fields[i].value + "]"
Next
Print Str

FEnd
-----------------------------------------------------------

UWSCでウインドウを整列させる

UWSCでウインドウを整列させるサンプルコード

ウインドウを上下に並べる
-------------------------------------------------
objShell = CreateoleObj("Shell.Application")
objShell.TileHorizontally
-------------------------------------------------

ウインドウを左右に並べる
-------------------------------------------------
objShell = CreateoleObj("Shell.Application")
objShell.TileVertically
-------------------------------------------------

ウインドウを重ねる
-------------------------------------------------
objShell = CreateoleObj("Shell.Application")
objShell.CascadeWindows
-------------------------------------------------

ウインドウを最小化
-------------------------------------------------
objShell = CreateoleObj("Shell.Application")
objShell.MinimizeAll
-------------------------------------------------

【UWSC】localhostでIEの状態取得するとCOMエラー

Windows7インストールしたapacheで、ローカルホストにPHPファイルを置いた。
それをUWSCで操作しようとしたらCOMエラーが発生した。

COMエラーが発生したUWSCのスクリプト
-----------------------------------------

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://localhost/index.php")
BUSYWAIT(IE)
-----------------------------------------

BUSYWAITの部分でCOMエラーが発生。
下記のように書き直せすことでエラーは出なくなった。

エラーの出ないUWSCスクリプト
-----------------------------------------

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://127.0.0.1/index.php")
BUSYWAIT(IE)
-----------------------------------------

URLをIPアドレスに替えてやればエラーは発生しない。

UWSCでファイルをリネームして保存する

UWSCでファイルをリネームしたときの覚書

----------------------------------------
CMD = "CD " + GET_CUR_DIR //カレントディレクトリに移動

DOSCMD(CMD)

CMD = "ren 変更前ファイル名 変更後ファイル名"

DOSCMD(CMD)
----------------------------------------

ファイル名に半角スペースを含む場合はダブルクォートで囲む
----------------------------------------
CMD = "ren <#DBL>変更前 ファイル名<#DBL> <#DBL>変更後 ファイル名<#DBL>"
----------------------------------------

リネーム前のファイルを残す場合はコピーする
----------------------------------------
CMD = "copy 変更前ファイル名 after_copy\変更後 ファイル名"
----------------------------------------
※after_copyフォルダにリネーム後の保存先にした場合

【UWSC】テキストファイルの一行目を取得して、削除する

作業用のURLリストなんかをつくって、一行目から順にUWSCで作業させたいときに使う。

//テキストファイルの一行目を取得して、削除するサンプルコード//////////////////////////////////////////////////////////////////
FILE_PATH = "url_list.txt"

FID = FOPEN(FILE_PATH, F_READ or F_WRITE) //読み込み、書き込み両対応

Line_data = FGET(FID, 1) //LISTの1行目のURLを取得

print Line_data //一行目を情報を出力

sleep(100)
//作業内容を書き込む

FDELLINE(FID, 1) //LISTの1行目のURLを削除

FCLOSE(FID) //閉じることで処理が完了する
//////////////////////////////////////////////////////////////////

//すべての行を消化したら終了する場合は、次のように書く
//////////////////////////////////////////////////////////////////
FILE_PATH = "url_list.txt"

WHILE true //ずっと繰り返す

FID = FOPEN(FILE_PATH, F_READ or F_WRITE) //読み込み、書き込み両対応

Line_data = FGET(FID, 1) //LISTの1行目のURLを取得

//空文字になったら終了
IFB Line_data = ""
msgbox("データがないので終了します")
exitexit
ENDIF

print Line_data //一行目を情報を出力

sleep(100)
//作業内容を書き込む

FDELLINE(FID, 1) //LISTの1行目のURLを削除

FCLOSE(FID) //閉じることで処理が完了する

WEND
//////////////////////////////////////////////////////////////////

【UWSC】フォルダにあるファイルのパスをすべて取得する

UWSCでファイル名を取得するには、「GETDIR」を用いる。

フォルダにあるすべてのファイルパスを取得するサンプルコード/////////////////////////////////////////////////////
//取得した情報の保存先とファイル名
//保存先を実行ファイルと違うフォルダにする場合は、フルパス
fid = FOPEN("info.txt",F_WRITE) //前の情報は消去して書き込む

PATH = INPUT("取得するフォルダを入力して下さい","C:\")

NUM = GETDIR(PATH) //ファイルの数だけならNUM

//配列を展開
FOR A = 0 TO LENGTH(GETDIR_FILES) - 1

fileName = GETDIR_FILES[A] //ファイル名

FPUT(fid,PATH + "\" + fileName) //ファイルの書き込み

NEXT

FCLOSE(fid)

/////////////////////////////////////////////////////

サブフォルダの情報も取得したいときは、コマンドプロンプトのdirコマンドを使うといい。

//カレントディレクトリの情報を出力
/////////////////////////////////////////////////////
CMDSTR = "dir /b /a-d /s > C:¥Users¥info.txt"

DOSCMD(CMDSTR,FALSE,TRUE)
/////////////////////////////////////////////////////

//C:¥Windowsの情報を出力
/////////////////////////////////////////////////////
CMDSTR = "dir C:¥Windows /b /a-d /s > C:¥Users¥info.txt"

DOSCMD(CMDSTR,FALSE,TRUE)
/////////////////////////////////////////////////////

オプションの説明

/b → ファイル名またはディレクトリ名のみ表示。最終更新日などの情報はなし。
/a-d → ディレクトリ以外のみ表示。
/s → サブディレクトリに含まれるファイルやディレクトリも全て表示。

【UWSC】IE9以上でファイルダウンロード時に出る通知バーのボタンを押す方法

IE9以上で出現する通知バーのボタンをUWSCで押す方法

下の画像の保存ボタンを押したい
通知バー

//サンプルコード
////////////////////////////////////////////////////
// IEのIDを取得
id = GETID("Internet Explorer", "IEFrame")

//通知バーのハンドル(識別番号)を取得する。
handle = 0
repeat
sleep(0.5)
handle = GETCTLHND(id,"DirectUIHWND",2)
print handle //取得できなければ、0(ゼロ)が返る
until 0 < handle //ハンドルをIDに変換 id2 = HNDtoID(handle) //保存ボタンを押す CLKITEM(id2, "保存", CLK_ACC) //「ダウンロードが完了」と出るまで待ち //インターネットオプション → 詳細設定の「ダウンロードの完了時に通知する」にチェックを入れておくこと Repeat Sleep(1) Until Pos("ダウンロードが完了", GETSTR(id2, 1, STR_ACC_STATIC))>0 //通知バーを閉じる CLKITEM(id2, "閉じる", CLK_ACC) ////////////////////////////////////////////////////

UWSCでたまに聞く、ウインドウハンドルとは

ハンドルとは、ウィンドウやコントロールに割り当てられている識別番号のこと。
ウィンドウを開くとそのとき空いていた番号が適当に与えられる。よって、同じウィンドウでも開くたびに番号は変わる。

UWSCでは「GETCTLHND」で取得できる。
たまたま開いていたIEのハンドル値を取得したら「132424」と返ってきた。
(取得できなければ 0(ゼロ)が返る)

print GETCTLHND(id,"DirectUIHWND")

「HNDtoID」を使えば、ハンドル値をUWSCのIDに変換できる。

3 / 41234