小役カウンター公開

VECTORでの登録が完了いたしました

WindowsMobileで動作する小役カウンター「カチカチカウンター」です

ソフトのタイトルとアイコンはやっつけでつけましたが、絵心のない僕には、32x32dotの絵(アイコン)ってなかなか作れない物ですね。

ご興味のある方は、こちらからダウンロードしてください

http://www.vector.co.jp/soft/other/wince/se478763.html

簡単な説明書を添付してますが、不明点やご要望があれば、ぜひコメントください。

スポンサーサイト

小役カウンター公開予定

自作した小役カウンターですが、使ってみたいというコメントをいただきましたので、公開することにいたしました。

現在、Vectorにて、公開申請中です。
大体一週間位かかるみたいです。
公開されましたら、ブログで告知します。

興味のある方は、ダウンロードしてみてください。

使い勝手は、勝ち勝ちくんや、かんたくんと言ったような市販品の方が良いと思いますが、、
自分で欲しい機能を付けてみた物です
もちろんフリーソフトです

もしも、ご要望が多い場合は、改良や更新していきたいと思いますが、はたして使ってくれる人がいるでしょうか???


ちなみに、現在対応しているパチスロ機種は、以下の13機種です。
よく行っていた店のラインナップですが、この店が最近つぶれてしまいましたので、
最新機種は入ってないですねw

桃太郎電鉄
北斗の拳2 将
EVANGERION 約束の時
ULTRAMAN THE SLOT
俺の名はルパン3 世
アイムジャグラー EX
ボンジョビ
天地を喰らう
ハードボイルド
うる星やつら2
ツインエンジェル2
ニューパルサー3
スカイラブ2

WindowsMobileで、SIMの電話番号を取得する (VB.net)

いつも、くだらないことしか書いてないですが、たまには、まじめにプログラムネタを

自分でも忘れてしまいそうなので、備忘録をかねて掲載します。

知人から、WindowsMobileの電話端末用の、業務用ソフトの開発依頼をいただいたのですが、要求として、特定のユーザーだけを限定して動作するように、プロテクトをかけてほしいというものでした。

方法としては、端末固有のIMEIを取得するなどが考えられましたが、今回はSIMカードの電話番号で縛ることにしました。そのため、SIMの電話番号を取得するプログラム(メソッド)を作ってみました。

SIMや電話を操作するAPIの説明が、なかなか見つけられませんでしたが、USのMSDNサイトでサンプルを見つけることができましたので、そのサンプルを参考にしました。Phone.dllや、SMS.dllには、電話をかけたり、オペレーター(電話会社名)を表示させたり、SIMのメモリを読み書きするなどのファンクションも用意されてます。今回は、電話番号を取得することのみに絞っております。

3GのSIMカードを使っている機種であれば、ほとんど使えると思います。

WM6 Professional と WM6 Standard の両方で動作確認しております。

なお、WillcomのW-ZERO3では、Phone.dllとSMS.dllがないため、動作しません。おそらくSIMの仕様や、電話機能の仕様が違うのではないかと思われます。(詳しくは調べていません)

以下、ソースです。Webの表示上、改行して見えるところがありますので、ご注意ください。

VisualStudio2008のVB.netで作成しております。以下のソースを、Sim.vbをいうファイルにして追加し、メインモジュールからは、Sim.GetPhoneNumber() で呼び出せます

返値は、電話番号を文字列で返します。SIMが刺さってないとか、読みだせない場合は、”Nothing”(0文字)が返ります。

----------------------------------------------------------

Imports System.Runtime.InteropServices
Imports interopserv = System.Runtime.InteropServices
Imports System
Imports System.ComponentModel


Public Enum SMS_ADDRESS_TYPE
    SMSAT_UNKNOWN = 0
    SMSAT_INTERNATIONAL
    SMSAT_NATIONAL
    SMSAT_NETWORKSPECIFIC
    SMSAT_SUBSCRIBER
    SMSAT_ALPHANUMERIC
    SMSAT_ABBREVIATED
End Enum 'SMS_ADDRESS_TYPE

Public Structure PhoneAddress 
      Public AddressType As SMS_ADDRESS_TYPE 
       Public Address() As Char
End Structure

Class Sim
    Private Class WinApi

        Public Const LMEM_FIXED As Long = 0
        Public Const LMEM_MOVEABLE As Long = 2
        Public Const LMEM_ZEROINIT As Long = &H40
        Public Const LPTR As Long = LMEM_FIXED Or LMEM_ZEROINIT


        <System.Runtime.InteropServices.DllImport("coredll.dll", SetLastError:=True)> _
        Public Shared Function LocalAlloc(ByVal uFlags As System.Int32, ByVal uBytes As System.Int32) As IntPtr
        End Function

    End Class

    Public Shared Function AllocHLocal(ByVal cb As Int32) As IntPtr
        Try
            Return WinApi.LocalAlloc(WinApi.LPTR, cb)
        Catch ex As Exception
        End Try
    End Function


    Private Shared SERVICE_PROVIDER As Long = &H6F46

    <StructLayout(LayoutKind.Sequential)> _
    Public Structure SimRecord
        Public cbSize As IntPtr
        Public dwParams As IntPtr
        Public dwRecordType As IntPtr
        Public dwItemCount As IntPtr
        Public dwSize As IntPtr
    End Structure

    <System.Runtime.InteropServices.DllImport("sms.dll")> _
    Private Shared Function SmsGetPhoneNumber(ByVal psmsaAddress As IntPtr) As IntPtr
    End Function


    ' Gets the phone number from the SIM.
    Public Shared Function GetPhoneNumber() As String
        Dim phoneaddr As PhoneAddress = New PhoneAddress
        Dim buffer(512) As Byte
        Dim pAddr() As Byte = buffer
        Dim ipAddr As IntPtr = AllocHLocal(pAddr.Length)
        Dim res As IntPtr = IntPtr.Zero

        Try
            res = SmsGetPhoneNumber(ipAddr)
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

        If (res.ToInt32 <> 0) Then
            Return Nothing
        End If

        phoneaddr.AddressType = System.Runtime.InteropServices.Marshal.ReadInt32(ipAddr)

        ipAddr = IntPtr.op_Explicit(System.Runtime.InteropServices.Marshal.SizeOf(phoneaddr.AddressType) + ipAddr.ToInt32)
        phoneaddr.Address = System.Runtime.InteropServices.Marshal.PtrToStringUni(ipAddr)

        Return phoneaddr.Address
    End Function


End Class

WindowsMobile用 小役カウンター 完成 

先月、作成した小役カウンターのプログラムですが、フルに実戦で使ってます。

小役を数えて、勝てるわけではないとは思ってるけど、数えないよりは、数えた
ほうがいいとは考えてるので

自分的に欲しかった機能を付けていったら、結構大きなプログラムになってしまいました。

WindowsMobile用のソフトは、大変少ないので、公開してもいいんですけどね。

でも、多分、使いたい人は少ないんだろうなー
パチスロで小役をカウントしてる人で、WindowsMobileを持っている人は、あまりいなさそー
それよりも、パチスロ打ってる手で、操作したくない人がほとんどのような気もするしね

一応、動作確認機種は、
イーモバイル S12HT、S21HT
WILLCOM WS007SH、WS0011SH

多分、WindowsMobile5と6ではほとんど動くと思います
(WM6standartは除く)

以下は、シミュレーターから撮った画面キャプチャです
kati2.jpg
エヴァ用の画面です

Kati1.jpg
現在5機種の確率データを選択できます
プログラム的には、自由に機種ごとのデータを最大10機種分まで追加できます

kati3.jpg
通常時とボーナス(ART)中のデータを別々にカウントして、判定します。
判定用確率データを、複数機種分内蔵してます。

WindowsMobile用 小役カウンターを作ってみた

必勝ガイドの 「勝ち勝ちくん」 のようなWindowsMobile用のソフトを今日一日かけて、
作ってみました。
カウントしても勝てるわけではないけど、安心材料にはなるので

とりあえず、明日(って、もう今日だね)近所のパチンコ屋が、大きなイベントをやるので
そこで、デバッグを兼ねて打ってこようかなと

まだ、動作がおかしそうなところもあるけど、見た目はそれなりになったつもり

明日狙ってる台は

ARTは、ウルトラマンとハードボイルド
Aタイプは、エヴァ、北斗2、桃太郎電鉄
なので、その5台用にカスタマイズしました

その店のイベントは、すごい列ができるので、普段はいかないんだけどね。
開店30分前に行こうかとおもうけど、台が取れなかったりして



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。