fc2ブログ

楽天証券サーバへの自動ログイン

Mkspifを利用して、楽天証券サーバへのログインと楽天RSS起動を行ってみましょう。
まず、Mkspifライブラリが必要です。以下のWebサイトからダウンロードしてください。
http://www.softgate.jp/
ここから、[ダウンロード]→[Mkspif]と進めば、ダウンロードすべきZIPファイルが見つかるはずです。このZIPファイルを展開すると、利用説明PDFが添付されています。これを読めば、利用方法は分かりますが、ここでは、VBからの利用にポイントを絞って説明します。
スポンサーリンク
  1. ZIPファイルに含まれる、Mkspif.dllをプロジェクトの参照設定に追加する。
  2. ZIPファイルに含まれる、Softgate.Kernel.dll、MarketSpeedClient.dllを[プロジェクト名].exeと同じフォルダに配置する。DebugとReleaseの両方で動作させるなら、両方(bin\Debugとbin\Release)に配置する必要があります。
  3. マーケットスピードをインストールしたフォルダから、MSBroker.dll、STLib.dllをコピーして、[プロジェクト名].exeと同じフォルダに配置する。DebugとReleaseの両方で動作させるなら、両方(bin\Debugとbin\Release)に配置する必要があります。MSBroker.dll、STLib.dllを参照設定に追加する必要はありません。
  4. App.config(アプリケーション構成ファイル)のconfiguration要素の中に以下の3行を記述する。これは、.Net Framework2.0でコンパイルされているMkspif.dllを、.Net Framework4.0上でも動作するようにするための設定です。もし、この設定がないと、「混合モード アセンブリはバージョン ‘v2.0.50727′ のランタイムに対して作成されており、追加の構成情報がないと 4.0 ランタイムでは読み込めません。」というエラーが出ます。
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
これで、プロジェクトからこのライブラリを利用できるようになりました。次に実装してみます。
Public Class RakutenRssWrapper

Private Shared ReadOnly log As log4net.ILog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)

Private Shared ReadOnly RSS_VER As String = "1020"

Private Shared ReadOnly USER_ID As String = "username"
Private Shared ReadOnly PASS_WD As String = "password"

Private _rssif As New Mkspif.Client()
Public ReadOnly Property client As Mkspif.Client
Get
Return _rssif
End Get
End Property

Private Shared ReadOnly _instance As New RakutenRssWrapper
Public Shared ReadOnly Property Instance As RakutenRssWrapper
Get
Return _instance
End Get
End Property

Private Sub New()
Connect()
End Sub

Function Connect() As Boolean
Return ConnectInner()
End Function

Private Function ConnectInner() As Boolean

If _rssif.IsConnected = False Then
_rssif.ControlRss = True
_rssif.Version = RSS_VER
_rssif.Connect(USER_ID, PASS_WD)
End If

log.WarnFormat("RSSログイン状態={0} RSS起動状態={1}", _rssif.IsConnected, _rssif.IsRssRunning)
Return (_rssif.IsConnected And _rssif.IsRssRunning)
End Function

End Class
RakutenRssWrapperクラスは、Mkspifライブラリを利用して、楽天証券サーバにログインし、楽天RSSの起動を行います。このクラスは、Singletonパターンで実装しています。RSS_VERには、マーケットスピードのバージョン番号を指定することに注意してください。バージョン番号には、バージョン9.0なら0900、バージョン10.2なら1020という形式の文字列を指定します。また、ControlRssをTrueにして、RSSを起動できるようにしています。このクラスを以下のように呼ぶことで、楽天証券サーバにログインし、楽天RSSが起動できるようになります。
Dim rssWrapper As RakutenRssWrapper = RakutenRssWrapper.Instance
Dim isSuccess As Boolean = rssWrapper.Connect()


検索ワード:Softgate、Mkspif、Singletonパターン
スポンサーリンク
<<リアルタイム株価データの取得の仕組み | ホーム | DDE Clientの実装>>
コメント(1)
承認待ちコメント
このコメントは管理者の承認待ちです
コメントの投稿
トラックバック(0)