Mkspifを利用して、楽天証券サーバへのログインと楽天RSS起動を行ってみましょう。
まず、Mkspifライブラリが必要です。以下のWebサイトからダウンロードしてください。
http://www.softgate.jp/
ここから、[ダウンロード]→[Mkspif]と進めば、ダウンロードすべきZIPファイルが見つかるはずです。このZIPファイルを展開すると、利用説明PDFが添付されています。これを読めば、利用方法は分かりますが、ここでは、VBからの利用にポイントを絞って説明します。
まず、Mkspifライブラリが必要です。以下のWebサイトからダウンロードしてください。
http://www.softgate.jp/
ここから、[ダウンロード]→[Mkspif]と進めば、ダウンロードすべきZIPファイルが見つかるはずです。このZIPファイルを展開すると、利用説明PDFが添付されています。これを読めば、利用方法は分かりますが、ここでは、VBからの利用にポイントを絞って説明します。
- ZIPファイルに含まれる、Mkspif.dllをプロジェクトの参照設定に追加する。
- ZIPファイルに含まれる、Softgate.Kernel.dll、MarketSpeedClient.dllを[プロジェクト名].exeと同じフォルダに配置する。DebugとReleaseの両方で動作させるなら、両方(bin\Debugとbin\Release)に配置する必要があります。
- マーケットスピードをインストールしたフォルダから、MSBroker.dll、STLib.dllをコピーして、[プロジェクト名].exeと同じフォルダに配置する。DebugとReleaseの両方で動作させるなら、両方(bin\Debugとbin\Release)に配置する必要があります。MSBroker.dll、STLib.dllを参照設定に追加する必要はありません。
- 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
Dim rssWrapper As RakutenRssWrapper = RakutenRssWrapper.Instance
Dim isSuccess As Boolean = rssWrapper.Connect()
検索ワード:Softgate、Mkspif、Singletonパターン
スポンサーリンク