忍者ブログ

Home > 覚えとくと役立つ知識

覚えとくと役立つ知識 Archive

[PR]

  • 2024-04-28 (Sun)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

  • Comments (Close):
  • TrackBack (Close):

UWSCでsleipnirを使う上での基本とコツ

  • 2011-12-20 (Tue)
  • 覚えとくと役立つ知識

※記事内容はsleipnir2についての記事です

環境設定

ツール→sleipnirオプション→全般→「スクリプトによるクライアントの操作を許可する」にチェック

OLEオブジェクト作成とアクティブなタブの取得

pnir=CreateOLEobj("Sleipnir.API")
tab=pnir.ActiveIndex            //アクティブなタブのタブ位置
id=pnir.GetDocumentID(tab)        //タブのID
tab_obj= pnir.GetWebBrowserObject(id)  //タブのWebBrowserオブジェクト

短縮すると・・

pnir=CreateOLEobj("Sleipnir.API")
tab_obj= pnir.GetWebBrowserObject(pnir.GetDocumentID(pnir.ActiveIndex))

この戻り値tab_objは

IE=CreateOLEObj("InternetExplorer.Application")

で作成される戻り値IEとほぼ同等

なので

pnir=CreateOLEobj("Sleipnir.API")
IE=pnir.GetWebBrowserObject(pnir.GetDocumentID(pnir.ActiveIndex))

として戻り値をIEとしてしまった方がIE用に作ったFunction等が流用できるので便利

例えば・・
こんな風に使える

ifb Msgbox("IE場合はYes、pnirの場合はNo",BTN_YES or BTN_NO)=BTN_YES
	IE=CreateOLEObj("InternetExplorer.Application")
	IE.Visible=true
else
	pnir=CreateOLEobj("Sleipnir.API")
	IE=pnir.GetWebBrowserObject(pnir.GetDocumentID(pnir.ActiveIndex))
endif

IE.Navigate("http://www.yahoo.co.jp/")
BusyWait(IE)
doc=IE.document
Msgbox(doc.url)
//------
Procedure BusyWait(IE)
	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

できないのはIE.Navigate2で新規タブを開く操作 IE.quitで閉じる操作ぐらいでほぼIEと同等の操作ができる。

Sleipnir特有の操作

詳しくは公式リファレンス見て欲しいんですが主な操作をいくつか

タブブラウザ Sleipnir オンラインデータベース(Sleipnir.API リファレンス)

新規タブを開く

id=pnir.newwindow(URL,true) 

trueで新規タブをアクティブにする

例)IE=pnir.GetWebBrowserObject(pnir.newwindow(URL,true))

開いてるタブの数

pnir.GetCount

タブを閉じる

pnir.Close(id)

IE・sleipnir・Firefox・chrome・Excel 2010のショートカット一覧ページのまとめ

  • 2011-12-10 (Sat)
  • 覚えとくと役立つ知識

エクセルに表データを一気にペースト

  • 2009-01-11 (Sun)
  • 覚えとくと役立つ知識

UWSCを使ってエクセルにデーターを渡す時
覚えて置くといいのが と
のエクセルでの反応

例えば

データ1-1 , データ1-2 , データ1-3
データ2-1 , データ2-2 , データ2-3
データ3-1 , データ3-2 , データ3-3

というデータがある場合一気にセルに貼り付けるにはどうしたら
いいだろうか?

答えはこれ

データ1-1 <#TAB> データ1-2 <#TAB> データ1-3 <#TAB> <#CR>+(※改行無し)
データ2-1 <#TAB> データ2-2 <#TAB> データ2-3 <#TAB> <#CR>+(※改行無し)
データ3-1 <#TAB> データ3-2 <#TAB> データ3-3 <#TAB> <#CR>

スクリプトで書くとこうなる

※エクセル起動済みの状態で

Home > 覚えとくと役立つ知識

Search
Meta
Links
Feeds
PR
PR

Page Top