スクロールバーを制御したい

スクロールバーを制御したいのですが、方法がわかりません。最後までスクロールしたり、最初にスクロールする方法を教えてください
SETSLIDER、GETSLIDERの関数を使うことによって解決します。

GETSLIDER
スライダーの状態を取得

SETSLIDER
スライダーの状態を設定

//スクロールする元となるメモ帳を立ち上げる
 LF = ""
FOR A = 1 TO 100
 LF = LF + "あ<#CR>"
NEXT
ID = EXEC("notepad")
SENDSTR(ID,LF)

//スライダーの値を取得
vMIN = GETSLIDER(ID,1,SLD_MIN)
vMAX = GETSLIDER(ID,1,SLD_MAX)

//視覚的に分かりやすいように待機時間をはさみながらスクロール制御
FOR A = vMIN TO vMAX STEP 2
SETSLIDER(ID,A,1)
SLEEP(0.1)
NEXT

FOR A = vMAX TO vMIN STEP -2
SETSLIDER(ID,A,1)
SLEEP(0.1)
NEXT

SETSLIDERやGETSLIDERは関数の説明に詳細がありますのでご参考ください。

タグ

2012年12月3日 | コメントは受け付けていません。 |

カテゴリー:Q&A

twitterにUWSCでログインする

最近では、アフィリエイトにもtwitterを活用することが多くなったようです。
そこで、UWSCでもtwitterを活用できるログインスクリプトを作成しました。

簡単かと思いきや

PRO版のrec機能では、別ページへリダイレクトされてしまいうまくいきません。
ということで、ソースを確認します。

inputフォームのnameは、
session[username_or_email]
session[password]です。
しかし、これをそのままIESetDataに設定してもログインフォームにセットされません。

そこでさらにソースをよく見ると、
該当するフォームは2番目だということが分かります。

次にsubmitボタン。 ソースを確認すると、

<button type="submit" class="submit btn primary-btn flex-table-btn js-submit" tabindex=4>

IESETDATAで使えるIDがありません。
TAG=buttonで試してもなかなかうまく行きません。

ということで、そんな時は泥臭くオブジェクトからフォームを操作します。
IE.document.forms[0].submit() から当たっていくと、
IE.document.forms[3].submit()で動作が確認できます。

これらを踏まえると、以下のようなスクリプトになります。

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("https://twitter.com/")
BusyWait(IE)
 
BusyWait(IE)
IESetData(IE,"ID","session[username_or_email]",,2) // 要編集
IESetData(IE,"パスワード","session[password]",,2) // 要編集
IE.document.forms[3].submit()

BusyWait(IE)
// IE.Quit // IE終了
//------
Procedure BusyWait(ie)
  Sleep(0.5)  // Wait
  Const TIME_OUT = 90
  tm = Gettime()
  repeat
    Sleep(0.2)
    ifb Gettime() - tm > TIME_OUT
      MsgBox("Time Out:BusyWait")
      ExitExit
    endif
  until (! ie.busy) and (ie.readyState=4)
  Sleep(0.5)
Fend

出来てしまえば、簡単ですがHTMLソースから解析していくのは、
なかなか骨の折れる作業です。
http://canal22.org/advance/
などをチェックして上手にスクリプトを作成していきましょう。

タグ

2012年12月1日 | コメントは受け付けていません。 |

カテゴリー:アフィリエイター

ひらがなや漢字を入力したい

ひらがなや漢字をUWSCで入力することはできますか。仮想キーを使って「VK_あ」のような表現はできませんか?
SENDSTRで直接ひらがなや漢字を送る方法、仮想キーで事前に「漢字」、「かな」モードを指定する方法があります

SENDSTR(ID,文字列)
指定ウィンドウに文字列を送信

この関数の文字列に丸々ひらがなや漢字を指定してしまえば、対象のウィンドウに送信可能です。

//メモ帳を起動
ID = EXEC("notepad")
SENDSTR(ID,"全角の文字、漢字が送れます")

どうでしょうか。メモ帳が立ち上がり文字列が送信できました。
しかし、この方法ではなく、あえてKBD関数によるキーボード(仮想キー)による操作を行いたい場合、
VK_KANAやVK_KANJIを含めたスクリプトを作ることも考えられます。
用途としては、変換候補を全てメモ帳に出力してみたい(「かぜ」だったら「風邪」「風「カゼ」・・・などのように)、
あるいはローマ字配列ではなく、日本語配列のキーボードで作業したい(H=く、J=ま、K=の、L=り)、
のようなケースが考えられますでしょうか。
スクリプトは以下のようになります。

ID = EXEC("notepad")
CTRLWIN(ID, ACTIVATE)
//漢字モードにして、「かい」の変換候補を10回出す
KBD(VK_KANJI)
STREAM = 0
FOR ST = 1 TO 10
  KBD(VK_K)
  KBD(VK_A)
  KBD(VK_I)
    LAST = 0
    WHILE LAST < STREAM
        KBD(VK_CONVERT)
        LAST = LAST + 1
    WEND
  KBD(VK_RETURN)
  KBD(VK_RETURN)
  STREAM = STREAM + 1
NEXT
KBD(VK_RETURN)
KBD(VK_KANJI)
//かなモードにして、「くまといぬ」と入力する
KBD(VK_KANA)
KBD(VK_H)
KBD(VK_J)
KBD(VK_S)
KBD(VK_E)
KBD(VK_1)
KBD(VK_RETURN)
KBD(VK_KANA)

タグ

2012年12月1日 | コメントは受け付けていません。 |

カテゴリー:Q&A

このページの先頭へ