IpatHelperNet 1.0.8

dotnet add package IpatHelperNet --version 1.0.8
                    
NuGet\Install-Package IpatHelperNet -Version 1.0.8
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="IpatHelperNet" Version="1.0.8" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="IpatHelperNet" Version="1.0.8" />
                    
Directory.Packages.props
<PackageReference Include="IpatHelperNet" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add IpatHelperNet --version 1.0.8
                    
#r "nuget: IpatHelperNet, 1.0.8"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package IpatHelperNet@1.0.8
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=IpatHelperNet&version=1.0.8
                    
Install as a Cake Addin
#tool nuget:?package=IpatHelperNet&version=1.0.8
                    
Install as a Cake Tool

IpatHelperNet

NuGet NuGet Downloads

JRA I-PAT(インターネット投票)への馬券購入・入出金・購入履歴取得を自動化する Windows 用 C# ラッパーライブラリです。
内部でネイティブ DLL(IpatHelper.dll)を P/Invoke 経由で呼び出しており、中央競馬・地方競馬・海外競馬・WIN5 に対応しています。


動作環境

項目 内容
OS Windows 10 以降(64bit / 32bit)
.NET .NET 6.0 以降
アーキテクチャ x64 / x86

インストール

.NET CLI

dotnet add package IpatHelperNet

Package Manager Console

Install-Package IpatHelperNet

.csproj に直接記述

<PackageReference Include="IpatHelperNet" Version="1.0.0" />

クイックスタート

using IpatHelperNet;

using var ipat = new IpatHelper();

// 1. ログイン
var result = ipat.Login("1234567890", "12345678", "1234", "12345");
if (!result.HasFlag(RETURN_VALUE.SUCCESS))
{
    Console.WriteLine("ログイン失敗");
    return;
}

// 2. 馬券購入情報を構築(東京 11R、単勝 1番、100円)
var ret = ipat.GetBetInstance(
    KAISAI.TOKYO, raceNo: 11,
    year: 2025, month: 5, day: 25,
    HOUSHIKI.NORMAL, SHIKIBETSU.WIN,
    amount: 100, kaime: "1",
    out var betData);

// 3. 購入
if (ret.HasFlag(RETURN_VALUE.SUCCESS))
{
    ipat.Bet(new[] { betData });
}

// 4. ログアウト(using による自動呼び出しも可)
ipat.Logout();

API リファレンス

Login — ログイン

I-PAT へログインします。中央競馬と地方競馬へ並列でログインを試みます。
他の全ての API を呼び出す前に必ず実行してください。

RETURN_VALUE Login(string inetId, string id, string password, string pars)
引数 説明
inetId I-NET ID
id ログイン ID
password パスワード
pars P-ARS 番号
var result = ipat.Login("1234567890", "12345678", "1234", "12345");

if (result.HasFlag(RETURN_VALUE.SUCCESS))
{
    Console.WriteLine("ログイン成功");
}
if (result.HasFlag(RETURN_VALUE.FAILED_CHUOU))
{
    Console.WriteLine("中央競馬のログインに失敗");
}
if (result.HasFlag(RETURN_VALUE.FAILED_CHIHOU))
{
    Console.WriteLine("地方競馬のログインに失敗");
}

Logout — ログアウト

I-PAT からログアウトし、内部セッション情報を初期化します。
IpatHelperIDisposable を実装しており、using を使うと自動でログアウトされます。

RETURN_VALUE Logout()
// 明示的にログアウト
ipat.Logout();

// using を使った自動ログアウト(推奨)
using var ipat = new IpatHelper();

Deposit — 入金

登録口座から I-PAT 口座へ入金します。

RETURN_VALUE Deposit(uint amount, ushort retryCount = 10)
引数 説明
amount 入金額(円・100円単位)
retryCount 失敗時のリトライ回数(デフォルト: 10)
// 10,000円 入金
var result = ipat.Deposit(10000);

注意: 入金額は100円単位で指定してください。100円の倍数でない場合は UNSUCCESS が返ります。


Withdraw — 出金

I-PAT 口座から登録口座へ全額出金します。

RETURN_VALUE Withdraw(ushort retryCount = 10)
var result = ipat.Withdraw();

SetAutoDepositFlag — 自動入金設定

馬券購入時に残高不足が発生した場合、自動で入金を行う機能を設定します。

RETURN_VALUE SetAutoDepositFlag(bool enable, uint amount = 1000, ushort timeoutMs = 10000)
引数 説明
enable true: 有効 / false: 無効
amount 自動入金額(円・100円単位、デフォルト: 1000円)
timeoutMs 入金反映確認タイムアウト(ミリ秒、デフォルト: 10000ms)
// 残高不足時に自動で 5,000円 入金(反映確認タイムアウト 15秒)
ipat.SetAutoDepositFlag(true, 5000, 15000);

// 無効化
ipat.SetAutoDepositFlag(false);

GetBetInstance — 馬券購入情報の構築

買い目文字列から ST_BET_DATA を構築します。Bet を呼び出す前に必ずこの関数で購入情報を生成してください。

RETURN_VALUE GetBetInstance(
    KAISAI place, byte raceNo,
    ushort year, byte month, byte day,
    HOUSHIKI houshiki, SHIKIBETSU shikibetsu,
    uint amount, string kaime,
    out ST_BET_DATA betData)
引数 説明
place 開催場(KAISAI 列挙値)
raceNo レース番号(1〜12)
year / month / day 開催日
houshiki 方式(HOUSHIKI 列挙値)
shikibetsu 式別(SHIKIBETSU 列挙値)
amount 1点あたりの購入金額(100円単位)
kaime 買い目文字列(後述)
betData 出力: 構築された購入情報
// 東京 11R、三連単フォーメーション、1,2 → 3 → 4,5、200円
var ret = ipat.GetBetInstance(
    KAISAI.TOKYO, 11,
    2025, 5, 25,
    HOUSHIKI.FORMATION, SHIKIBETSU.TRIFECTA,
    200, "1,2-3-4,5",
    out var betData);

Bet — 馬券購入

GetBetInstance で生成した ST_BET_DATA の配列を渡して馬券を購入します。
異なる開催場の買い目も一括で渡せます(中央・地方・海外を自動振り分け)。

RETURN_VALUE Bet(ST_BET_DATA[] betDataArray, ushort waitMs = 500)
引数 説明
betDataArray 購入情報の配列
waitMs 購入リクエスト間隔(ミリ秒、デフォルト: 500ms)
// 単一購入
ipat.Bet(new[] { betData });

// 複数まとめて購入
var bets = new ST_BET_DATA[3];
ipat.GetBetInstance(KAISAI.TOKYO,    11, 2025, 5, 25, HOUSHIKI.NORMAL,    SHIKIBETSU.WIN,      100, "1",     out bets[0]);
ipat.GetBetInstance(KAISAI.NAKAYAMA,  9, 2025, 5, 25, HOUSHIKI.BOX,       SHIKIBETSU.TRIFECTA, 100, "1,3,5", out bets[1]);
ipat.GetBetInstance(KAISAI.OI,        7, 2025, 5, 25, HOUSHIKI.NORMAL,    SHIKIBETSU.WIN,      100, "2",     out bets[2]);

ipat.Bet(bets);

GetBetInstanceWin5 / BetWin5 — WIN5 購入

WIN5 の買い目文字列から購入情報を構築し、購入します。

RETURN_VALUE GetBetInstanceWin5(
    uint amount, ushort year, byte month, byte day,
    string kaime, out ST_BET_DATA_WIN5 betData)

RETURN_VALUE BetWin5(ST_BET_DATA_WIN5 betData, ushort waitMs = 500)
// 5レース分の買い目(各レースをハイフン区切り、複数頭はカンマ区切り)
var ret = ipat.GetBetInstanceWin5(
    100, 2025, 5, 25,
    "1,2-3-4,5-2,6-1",
    out var win5Data);

if (ret.HasFlag(RETURN_VALUE.SUCCESS))
{
    ipat.BetWin5(win5Data);
}

GetPurchaseData — 購入履歴取得

当日・前日の馬券購入履歴、残高、購入可能件数を取得します。

RETURN_VALUE GetPurchaseData(out ST_PURCHASE_DATA purchaseData)
var ret = ipat.GetPurchaseData(out var data);
if (ret.HasFlag(RETURN_VALUE.SUCCESS))
{
    Console.WriteLine($"残高: {data.unBalance} 円");
    Console.WriteLine($"当日購入: {data.unDayPurchase} 円");
    Console.WriteLine($"当日払戻: {data.unDayPayout} 円");
    Console.WriteLine($"馬券件数: {data.unTicketCount} 件");
}

買い目文字列の書式

GetBetInstance および GetBetInstanceWin5 に渡す買い目文字列のフォーマットです。

  • 列の区切り: ハイフン(-
  • 同一列内の複数馬番: カンマ(,

方式別の例

方式 式別 買い目文字列 説明
通常 単勝 "1" 1番
通常 馬連 "1-5" 1番 - 5番
通常 三連単 "1-3-5" 1着1番・2着3番・3着5番
フォーメーション 馬連 "1,2-3,4,5" 1,2番 から 3,4,5番
フォーメーション 三連単 "1,2-3-4,5" 1,2番 → 3番 → 4,5番
ボックス 馬連 "1,3,5,7" 1,3,5,7番 の全組み合わせ
ボックス 三連単 "2,4,6" 2,4,6番 の全組み合わせ

WIN5 の例

買い目文字列 説明
"1-2-3-4-5" 各レース1頭ずつ指定
"1,2-3-4,5-2,6-1" 一部のレースで複数頭指定

列挙型

KAISAI(開催場)

中央競馬

SAPPORO(札幌)/ HAKODATE(函館)/ FUKUSHIMA(福島)/ NIIGATA(新潟)/ TOKYO(東京)/ NAKAYAMA(中山)/ CHUKYO(中京)/ KYOTO(京都)/ HANSHIN(阪神)/ KOKURA(小倉)

地方競馬

SONODA(園田)/ HIMEJI(姫路)/ NAGOYA(名古屋)/ MONBETSU(門別)/ MORIOKA(盛岡)/ MIZUSAWA(水沢)/ URAWA(浦和)/ FUNABASHI(船橋)/ OI(大井)/ KAWASAKI(川崎)/ KASAMATSU(笠松)/ KANAZAWA(金沢)/ KOCHI(高知)/ SAGA(佐賀)

海外競馬

LONGCHAMP(ロンシャン)/ SHATIN(シャティン)/ SANTAANITA(サンタアニタ)/ DEAUVILE(ドーヴィル)/ CHURCHILLDOWNS(チャーチルダウンズ)/ ABDULAZIZ(キングアブドゥルアジーズ)

SHIKIBETSU(式別)

式別
WIN 単勝
PLACE 複勝
BRACKETQUINELLA 枠連
QUINELLAPLACE ワイド
QUINELLA 馬連
EXACTA 馬単
TRIO 三連複
TRIFECTA 三連単

HOUSHIKI(方式)

方式
NORMAL 通常
FORMATION フォーメーション
BOX ボックス

RETURN_VALUE(戻り値)

ビットフラグ形式です。HasFlag() で判定してください。

意味
SUCCESS 処理に成功
UNSUCCESS 処理に失敗(パラメータ不正・残高不足等)
FAILED_CHUOU 中央競馬での処理に失敗
FAILED_CHIHOU 地方競馬での処理に失敗
FAILED_COMMUNICATE_CHUOU 中央競馬との通信に失敗
FAILED_COMMUNICATE_CHIHOU 地方競馬との通信に失敗
var ret = ipat.Bet(new[] { betData });

if (ret.HasFlag(RETURN_VALUE.SUCCESS))             Console.WriteLine("購入成功");
if (ret.HasFlag(RETURN_VALUE.FAILED_CHUOU))        Console.WriteLine("中央競馬での処理に失敗");
if (ret.HasFlag(RETURN_VALUE.FAILED_COMMUNICATE_CHUOU)) Console.WriteLine("中央競馬との通信に失敗");

総合的な使用例

using IpatHelperNet;

using var ipat = new IpatHelper();

// ログイン
var loginResult = ipat.Login("1234567890", "12345678", "1234", "12345");
if (!loginResult.HasFlag(RETURN_VALUE.SUCCESS))
{
    Console.WriteLine("ログイン失敗");
    return;
}

// 残高不足時に自動で 10,000円 入金
ipat.SetAutoDepositFlag(true, 10000);

// 購入情報を複数構築
var bets = new ST_BET_DATA[2];

// 東京11R 馬連フォーメーション 1,2 - 3,4,5(200円)
ipat.GetBetInstance(
    KAISAI.TOKYO, 11, 2025, 5, 25,
    HOUSHIKI.FORMATION, SHIKIBETSU.QUINELLA,
    200, "1,2-3,4,5", out bets[0]);

// 大井7R 単勝 3番(100円)
ipat.GetBetInstance(
    KAISAI.OI, 7, 2025, 5, 25,
    HOUSHIKI.NORMAL, SHIKIBETSU.WIN,
    100, "3", out bets[1]);

// 一括購入
var betResult = ipat.Bet(bets);
if (betResult.HasFlag(RETURN_VALUE.SUCCESS))
{
    Console.WriteLine("購入成功");
}

// 購入履歴を確認
var histResult = ipat.GetPurchaseData(out var history);
if (histResult.HasFlag(RETURN_VALUE.SUCCESS))
{
    Console.WriteLine($"残高: {history.unBalance} 円");
    Console.WriteLine($"当日購入: {history.unDayPurchase} 円 / 払戻: {history.unDayPayout} 円");
}

// ログアウト(using により自動実行)

注意事項

  • 本ライブラリは Windows 専用です
  • 本ライブラリを使用した馬券購入は実際の金銭を伴います。十分にテストしてからご使用ください
  • I-PAT の仕様変更により動作しなくなる場合があります
  • ログイン情報はメモリ上にのみ保持され、ファイルへの保存は行いません
  • 全 API はスレッドセーフです(内部でクリティカルセクションによる排他制御を実施)

ライセンス

MIT License

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.8 64 5/10/2026
1.0.7 69 5/9/2026