2012/03/27

[ 裸族の集合住宅 ]

外付けeSATA

裸族の集合住宅(商品名)というHDDが4台入る外付けHDDケースが手に入ったので使ってみる。

容量の方が私的には重要だったので、RAID組まずにそのまま認識する方法で接続してみたが、1台しか認識せず???

どうやら、マザーボードがeSATA一箇所から複数台のHDDを使えるようにするマルチポートプライヤに対応していないことが分かり、RATOCのPE32Sを購入

使ってみたところ再フォーマットしなくても認識して普通に使えるし問題も出ませんでした。

ベンチマーク

外付けHDD同士のコピーはしょうがない感じです。(ファイルコピーの表示で45.0MB/秒)

以前ベンチマークで使用したHitachi HDS721050CLA362 500Gで再ベンチマーク

Hitachi HDS721050CLA362 500G eSATA

Hitachi HDS721050CLA362 500G

それほど遅くなっていないしまぁまぁなのかな。。。

節約!?

以前使っていたSATA320Gx2個と使用していたSATA500Gx2個を裸族に移して使うときだけ電源入れるような感じです。

挿す場所の無かった320Gが再利用できたのと、わずかですが熱対策・騒音対策になったかなと。これからは暑くなるので調度よかったかもしれない(・ω・)

問題発生!?

やけに静かだなとおもって裏を見てみるとファンが回っていない。。。メーカー説明では↓

「PCの電源オン/オフに連動してHDD/冷却ファンの回転、停止を制御する電源連動機能搭載!」・・・ちょっと違うな。。。

調べてみたら内部温度が上がったらファンが回りだすと言ってる方々がいるけれど・・・なんだかちょー不安。。。

2012/03/26

[ Googleのドキュメントを使ってみた。 ]

Googleのストレージ

前々から気にはなってたのですが、私の環境だとなぜかgoogle.comのDocumentsにいってしまい英語サイトとなってしまい少し敬遠してましたが、ファイルのアップロードだけhotmail使うよりはGoogle関連サイト内で全て済ましてみようかなと思ったのが発端。


意外に簡単で、アップロード画像をクリックしてアップロードしたら、共有(Sharrd)設定をパプリック(Public)に設定するだけでした。

あとはファイル右クリックでShare→Shareを行えばリンクが作成される感じでした。


特にGoogleヒイキではないですが。

・メール → Gmail

・ブログ → brogger

・写真アップロード → Picasaウェブアルバム

・ファイルアップロード → Gooleドキュメント

・動画アップロード → Youtube


Googleアカウントがあれば大体のことができるシンプルさが大分気に入ってきてます(*・ω・*)

GoogleChrome、Picasa3もシンプルで・・・ヾ(・・;)ォィォィ

追記

※GoogleDocumentsの中に言語設定がありました。デフォルトは英語っぽいです。

[ blogger customize ]

[html5,css3]

VisualBasicの投稿を書いているとき余りにもごちゃごちゃしすぎて面倒になってきたので少しいじってみました。

Webデザインをそれほど勉強したことないし、得意でもないのでネットで調べた方法を組み合わせた程度なので正しいかどうかは別として。。。

でも、なんか型にはまった感じがしてすっきりしました(・ω・)


コードのHTML化は http://manoli.net/csharpformat/ を使用していてCSSにも設定が追加されています。

投稿内容のHTML

<article id="cont">
 <section id="readme">
  <h4>[サブタイトル]</h4>
  <p>[内容]</p>
 </section>
 <section id="cont_main">
  <h2>[サブタイトル]</h2>
  <p>[内容]</p>
 </section>
 <section id="cont_code">
  <h2>Form</h2>
    [内容]
 </section>
 <section id="cont_code">
  <h2>Module</h2>
    [内容]
 </section>
 <section id="cont_dl">
  <h2>ダウンロード</h2>
    [内容]
 </section>
 <aside id="cont_aff">
    [内容]
 </aside>
</article>

brogger設定の追加CSS

*{
    font-family: Arial, Helvetica, sans-serif;
}
 
#cont #readme {
    border: 1px solid #4169e1;
    padding: 5px;
    margin-bottom: 30px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    -moz-border-radius: 5px;
}
#cont #readme h4 {
    line-height: normal;
    font-size: 9pt;
    color: #fff;
}
 
#cont #readme p {
    margin-left: 10px;
    line-height: normal;
    font-size: 9pt;
    color: #fff;
}
 
#cont #cont_main {
    margin-top: 30px;
}
 
#cont #cont_main h2 {
    text-decoration: underline;
    line-height: normal;
    font-size: 12pt;
    color: #fff;
}
 
#cont #cont_main p {
    margin-left: 10px;
    line-height: normal;
    font-size: 9pt;
    color: #fff;
}
 
#cont #cont_code {
    margin-top: 30px;
}
 
#cont #cont_code h2 {
    text-decoration: underline;
    line-height: normal;
    font-size: 12pt;
    color: #fff;
}
 
#cont #cont_dl {
    margin-top: 30px;
}
 
#cont #cont_dl h2 {
    text-decoration: underline;
    line-height: normal;
    font-size: 12pt;
    color: #fff;
}
 
#cont #cont_aff {
    margin-top: 30px;
}
 
 
#cont #cont_aff div.amazon {
        float:left;
    line-height: normal;
    font-size: 10pt;
        padding-left:10px;
        padding-bottom:10px;
}
 
#cont #cont_aff div.amazon img {
        -webkit-border-radius: 3px;
        -moz-border-radius: 3px;
        border-radius: 3px;
}
 
 
#cont #cont_code .csharpcode, #cont #cont_code .csharpcode pre{
    font-size: small;
    color: black;
    font-family: Consolas, "Courier New", Courier, Monospace;
    background-color: #ffffff;
    /*white-space: pre;*/
}
 
#cont #cont_code .csharpcode pre { margin: 0em; }
#cont #cont_code .csharpcode .rem { color: #008000; }
#cont #cont_code .csharpcode .kwrd { color: #0000ff; }
#cont #cont_code .csharpcode .str { color: #a31515; }
#cont #cont_code .csharpcode .op { color: #0000c0; }
#cont #cont_code .csharpcode .preproc { color: #cc6633; }
#cont #cont_code .csharpcode .asp { background-color: #ffff00; }
#cont #cont_code .csharpcode .html { color: #800000; }
#cont #cont_code .csharpcode .attr { color: #ff0000; }
#cont #cont_code .csharpcode .alt {
    background-color: #f4f4f4;
    width: 100%;
    margin: 0em;
}
#cont #cont_code .csharpcode .lnum { color: #606060; }

2012/03/23

UOA ツール 開発 #007 - UO UOA TOOL for Visual Basic , 自動化、便利、マクロ、自分で管理などなど(ソース付き)

決まり文句

この記事で紹介しているのはネットゲームのウルティマオンラインのツール開発に関する内容ですが、ウィンドウメッセージを送ったり受け取ったりしたことの無い方には、VBでアプリケーション間通信の手助けとなるコードが書かれてるかもしれません。

途中からこの記事を見た方は、こちらから全て見ることができます。

スキル情報取得

取得するにあたって、スキル番号が必要だったのですが、初めは分からなかったので0~100の間を取得してみた所、練成・神秘・スローイングまで含めた0~57のIDでした。

スキル関係で取得できたのは、表示値、ベース値、ロック状態、スキル名の4種類。


尚、スキル名はUOAの設定で英語表記を使用していれば英語の名称、日本語表記を設定していれば日本語の名称が帰って来るようです。

スキルキャップも欲しかったのですが、色々試した所見当たりませんでした・・・

Form(抜粋)

    <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
    Protected Overrides Sub WndProc(ByRef WMSG As Message)
        Select Case (WMSG.Msg)
            Case WM_UOA_SKILL_LEVEL
                txtLog.AppendText(String.Format("スキル値変動 No:{1} Value:{2}{0}", vbCrLf, WMSG.WParam, WMSG.LParam))
        End Select
        MyBase.WndProc(WMSG)
    End Sub
 
    Private Sub btnGetSkillDisplay_Click(sender As System.Object, e As System.EventArgs) Handles btnGetSkillDisplay.Click
        Dim Result As Integer
        For i As Integer = 0 To 100
            Result = UOALink_GetSkillDisplay(i)
            If (Result = -1) Then Exit For
            txtLog.AppendText(String.Format("SkillDisplay No:{1} Value:{2}{0}", vbCrLf, i, Result))
        Next
    End Sub
 
    Private Sub btnGetSkillBased_Click(sender As System.Object, e As System.EventArgs) Handles btnGetSkillBased.Click
        Dim Result As Integer
        For i As Integer = 0 To 100
            Result = UOALink_GetSkillBased(i)
            If (Result = -1) Then Exit For
            txtLog.AppendText(String.Format("SkillBased No:{1} Value:{2}{0}", vbCrLf, i, Result))
        Next
    End Sub
 
    Private Sub btnGetSkillLock_Click(sender As System.Object, e As System.EventArgs) Handles btnGetSkillLock.Click
        Dim Result As Integer
        For i As Integer = 0 To 100
            Result = UOALink_GetSkillLock(i)
            If (Result = -1) Then Exit For
            txtLog.AppendText(String.Format("SkillLock No:{1} Value:{2}{0}", vbCrLf, i, Result))
        Next
    End Sub
 
    Private Sub btnGetSkillName_Click(sender As System.Object, e As System.EventArgs) Handles btnGetSkillName.Click
        Dim Result As Integer
        Dim Buf As String
        For i As Integer = 0 To 100
            Result = UOALink_GetSkillName(i)
            If (Result = -1) Then Exit For
            Buf = fncGetAtomString(Result)
            txtLog.AppendText(String.Format("SkillName No:{1} Value:{2}{0}", vbCrLf, i, Buf))
        Next
    End Sub
 
    Private Sub btnMessageCheck_Click(sender As System.Object, e As System.EventArgs) Handles btnMessageCheck.Click
        Dim Result As Integer
        Dim WM As Integer = CInt(Me.txtWM.Text)
        Dim WPARAM As Integer = CInt(Me.txtWPARAM.Text)
        Dim LPARAM As Integer = CInt(Me.txtLPARAM.Text)
        Result = UOALink_SendMessage(WM_USER + WM, WPARAM, LPARAM)
        txtLog.AppendText(String.Format("WM Check WM:{1} WPARAM:{2} LPARAM:{3} RESULT:{4}{0}", vbCrLf, WM, WPARAM, LPARAM, Result))
    End Sub

Module(抜粋)

    Public Const WM_UOA_GET_SKILL As Integer = WM_USER + 203
    Public Const WM_UOA_SKILL_LEVEL As Integer = WM_USER + 306
 
    Public Const UOA_GET_SKILL_DISPLAY As Integer = 0
    Public Const UOA_GET_SKILL_BASED As Integer = 1
    Public Const UOA_GET_SKILL_LOCK As Integer = 2
    Public Const UOA_GET_SKILL_NAME As Integer = 3
 
    Public Const UOA_SKILL_STATUS_UP As Integer = 0
    Public Const UOA_SKILL_STATUS_DOWN As Integer = 1
    Public Const UOA_SKILL_STATUS_LOCK As Integer = 2
 
 
    Public Function UOALink_GetSkillDisplay(ByVal SkillNo As Integer) As Integer
        Dim Result As Integer
        Result = UOALink_SendMessage(WM_UOA_GET_SKILL, SkillNo, UOA_GET_SKILL_DISPLAY)
        Return Result
    End Function
 
    Public Function UOALink_GetSkillBased(ByVal SkillNo As Integer) As Integer
        Dim Result As Integer
        Result = UOALink_SendMessage(WM_UOA_GET_SKILL, SkillNo, UOA_GET_SKILL_BASED)
        Return Result
    End Function
 
    Public Function UOALink_GetSkillLock(ByVal SkillNo As Integer) As Integer
        Dim Result As Integer
        Result = UOALink_SendMessage(WM_UOA_GET_SKILL, SkillNo, UOA_GET_SKILL_LOCK)
        Return Result
    End Function
 
    Public Function UOALink_GetSkillName(ByVal SkillNo As Integer) As Integer
        Dim Result As Integer
        Result = UOALink_SendMessage(WM_UOA_GET_SKILL, SkillNo, UOA_GET_SKILL_NAME)
        Return Result
    End Function

ダウンロード

開いたら File→Download で保存することができます。

UOA_Tool.#007.zip

2012/03/22

UOA ツール 開発 #006 - UO UOA TOOL for Visual Basic , 自動化、便利、マクロ、自分で管理などなど(ソース付き)

決まり文句

この記事で紹介しているのはネットゲームのウルティマオンラインのツール開発に関する内容ですが、ウィンドウメッセージを送ったり受け取ったりしたことの無い方には、VBでアプリケーション間通信の手助けとなるコードが書かれてるかもしれません。

途中からこの記事を見た方は、こちらから全て見ることができます。

アカウント名、キャラ名

前回の続きですが、今度はアカウント名とキャラ名をuo.cfgから取得する処理。

キャラクターがログアウトしたらuo.cfgを読み込んで名称を取得しようという考えです。

微妙にハマったのが、INIファイル読み込みだからと思ってGetProfileString使った所、uo.cfgにはセクション([xxx]ようなもの)が無くて、うまく読めなかった感じ。(結構ネット調べたんですが見つからなかったので、分かる方いたら教えて下さい・・・)

結局は正規表現で無理やり抜き出し(・・;

そもそもINIファイルじゃないっ って話かもしれませんが。

Form(抜粋)

    Private AcctName As String = ""
    Private PlayerName As String = ""
    Private UO_Path As String = ""
 
    <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
    Protected Overrides Sub WndProc(ByRef WMSG As Message)
        Select Case (WMSG.Msg)
            Case WM_UOA_LOGOUT
                AcctName = UO_GetAcctID(UO_Path)
                PlayerName = UO_GetPlayerName(UO_Path)
                txtLog.AppendText(String.Format("AcctName:{1} AcctID:{2}{0}", vbCrLf, AcctName, AcctID))
                txtLog.AppendText(String.Format("PlayerName:{1} PlayerID:{2}{0}", vbCrLf, PlayerName, CharaID))
        End Select
        MyBase.WndProc(WMSG)
    End Sub
 
    Private Sub txtUOPath_TextChanged(sender As System.Object, e As System.EventArgs) Handles txtUOPath.TextChanged
        UO_Path = txtUOPath.Text
    End Sub

Module(抜粋)

    Public Const UOCFG_ACCTID As String = "AcctID"
    Public Const UOCFG_PLAYERNAME As String = "PlayerName"
 
    Public Function UO_GetAcctID(ByVal strFilePath As String) As String
        Dim Result As String = ""
 
        If (strFilePath.Trim = "") Then Return Result
        If Not (System.IO.File.Exists(strFilePath)) Then Return Result
 
        Dim sr As New System.IO.StreamReader(strFilePath)
        Dim buf As String = sr.ReadToEnd()
        sr.Close()
 
        Dim reg As New System.Text.RegularExpressions.Regex( _
            String.Format("{0}=[A-Z0-9]+", UOCFG_ACCTID), _
            System.Text.RegularExpressions.RegexOptions.IgnoreCase)
        Dim match As System.Text.RegularExpressions.Match = reg.Match(buf)
 
        If (match.Success) Then
            Dim ValueArray() As String = match.Value.Split("=")
            If (Not IsNothing(ValueArray(1))) Then
                Result = ValueArray(1)
            End If
        End If
 
        Return Result
 
    End Function
 
    Public Function UO_GetPlayerName(ByVal strFilePath As String) As String
        Dim Result As String = ""
 
        If (strFilePath.Trim = "") Then Return Result
        If Not (System.IO.File.Exists(strFilePath)) Then Return Result
 
        Dim sr As New System.IO.StreamReader(strFilePath)
        Dim buf As String = sr.ReadToEnd()
        sr.Close()
 
        Dim reg As New System.Text.RegularExpressions.Regex( _
            String.Format("{0}=[A-Z0-9]+", UOCFG_PLAYERNAME), _
            System.Text.RegularExpressions.RegexOptions.IgnoreCase)
        Dim match As System.Text.RegularExpressions.Match = reg.Match(buf)
 
        If (match.Success) Then
            Dim ValueArray() As String = match.Value.Split("=")
            If (Not IsNothing(ValueArray(1))) Then
                Result = ValueArray(1)
            End If
        End If
 
        Return Result
    End Function

ダウンロード

開いたら File→Download で保存することができます。

UOA_Tool.#006.zip

2012/03/16

UOA ツール 開発 #005 - UO UOA TOOL for Visual Basic , 自動化、便利、マクロ、自分で管理などなど(ソース付き)

決まり文句

この記事で紹介しているのはネットゲームのウルティマオンラインのツール開発に関する内容ですが、ウィンドウメッセージを送ったり受け取ったりしたことの無い方には、VBでアプリケーション間通信の手助けとなるコードが書かれてるかもしれません。

途中からこの記事を見た方は、こちらから全て見ることができます。

シャード名、アカウント情報、キャラ情報

シャード名は普通に取得することができましたが、キャラ名やアカウント名は取得できなくて、UOAの管理しているIDとして取得できました。

UO.cfgにアカウント名、キャラ名が *ログアウト時* に保存されますが、クライアントが異常終了したときは保存されないと思うので若干問題が出そうです(・・;

ユーザーIDとやらも取得できましたがこちらは、パーティ関連で使うらしいので今回は必要なかったかもでした。

Form(抜粋)

    Private ShadeName As String = ""
    Private AcctID As Integer = 0
    Private UserID As Integer = 0
    Private CharaID As Integer = 0
 
    <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
    Protected Overrides Sub WndProc(ByRef WMSG As Message)
        Select Case (WMSG.Msg)
            Case WM_UOA_LOGON
                CharaID = WMSG.WParam
                UserID = UOALink_GetUserID()
                AcctID = UOALink_GetAcctID()
                ShadeName = UOALink_GetShadeName()
                txtLog.AppendText(String.Format("ログインしました{0}", vbCrLf))
                txtLog.AppendText(String.Format(" ShadeName:{1} AcctID:{2} CharaID:{3} UserID:{4}{0}", vbCrLf, AcctID, CharaID, UserID))
                txtLog.AppendText(String.Format("{0}", vbCrLf))
 
            Case WM_UOA_LOGOUT
                CharaID = 0
                UserID = 0
                AcctID = 0
                ShadeName = ""
                txtLog.AppendText(String.Format("ログアウトしました{0}", vbCrLf))
                txtLog.AppendText(String.Format("{0}", vbCrLf))
 
        End Select
        MyBase.WndProc(WMSG)
    End Sub

Module(抜粋)

    Public Const WM_UOA_GET_USER_ID As Integer = WM_USER + 210
    Public Const WM_UOA_GET_SHARD_NAME As Integer = WM_USER + 211
    Public Const WM_UOA_GET_ACCOUNT_IDENTIFIER As Integer = WM_USER + 216
    Public Const WM_UOA_LOGON As Integer = WM_USER + 303
    Public Const WM_UOA_LOGOUT As Integer = WM_USER + 308
 
    Public Function UOALink_GetShadeName() As String
        Dim Result As Integer
        Dim Buf As String = ""
        Result = UOALink_SendMessage(WM_UOA_GET_SHARD_NAME, 0, 0)
        If (Result <> 0) Then
            Buf = fncGetAtomString(Result)
        End If
        Return Buf
    End Function
 
    Public Function UOALink_GetAcctID() As Integer
        Dim Result As Integer
        Result = UOALink_SendMessage(WM_UOA_GET_ACCOUNT_IDENTIFIER, 0, 0)
        Return Result
    End Function
 
    Public Function UOALink_GetUserID() As Integer
        Dim Result As Integer
        Result = UOALink_SendMessage(WM_UOA_GET_USER_ID, 0, 0)
        Return Result
    End Function

ダウンロード

開いたら File→Download で保存することができます。

UOA_Tool.#005.zip

2012/03/13

[iTunesのデータを移動]

以前SSDのベンチマークを取ったときに、ふと気がついたのが、

特にソフト沢山インストールしているわけじゃないのにCドライブ使用容量56G・・・

おかしいと思ってフォルダの容量を見ていくと・・・



iTune関連のバックアップがすごいことになってました・・・



ググってみるとジャンクションと言って、シンボリックリンクみたいにショートカットを貼って対応するというものでした。

普通のショートカットとは違うもの見たいですが、これはまた今度調べるとしてとりあえず対処。


Windows Server 2003 Resource Kit Toolsに含まれているlinkd.exeを使用するらしい。

まず"C:\users\[username]\AppData\Local\Apple Computer"と"C:\users\[username]\AppData\Roming\Apple Computer"を別のディスクの変更場所へ移動

そしてリンク作成

linkd.exe "C:\users\[username]\AppData\Local\Apple Computer" "E:\iTune\AppData\Local\Apple Computer"

linkd.exe "C:\users\[username]\AppData\Roming\Apple Computer" "E:\iTune\AppData\Roming\Apple Computer"

移動したファイルは35G・・・SSDにとってはは大きすぎるので気づいてよかったという感じでした(・ω・;

※上記パスはWindows7の場合です。




2012/03/11

UOA ツール 開発 #004 - UO UOA TOOL for Visual Basic , 自動化、便利、マクロ、自分で管理などなど(ソース付き)

決まり文句

この記事で紹介しているのはネットゲームのウルティマオンラインのツール開発に関する内容ですが、ウィンドウメッセージを送ったり受け取ったりしたことの無い方には、VBでアプリケーション間通信の手助けとなるコードが書かれてるかもしれません。

途中からこの記事を見た方は、こちらから全て見ることができます。

冴えない頭で考える

坦々と機能紹介していってもつまらないので・・・既に3日坊主になりかけ(・ω・;

何かを作る方向性にしようかと思って考えたのが、スキル管理!?っぽいのを。

私はソウルストーンで入れ替えしてるとどのキャラにスキル入ってるか忘れがちで、わざわざINして確認が面倒だと思うから

サーバー別、アカウント別、キャラ別に保存しておけるのが作れたらいいなと思う。

以前スキル管理ソフトあった気がしたのだけれど探しても見当たらず、ちょうどいいので作ってみようかなと。

2012/03/07

UOA ツール 開発 #003 - UO UOA TOOL for Visual Basic , 自動化、便利、マクロ、自分で管理などなど(ソース付き)

決まり文句

この記事で紹介しているのはネットゲームのウルティマオンラインのツール開発に関する内容ですが、ウィンドウメッセージを送ったり受け取ったりしたことの無い方には、VBでアプリケーション間通信の手助けとなるコードが書かれてるかもしれません。

途中からこの記事を見た方は、こちらから全て見ることができます。

ログイン/ログアウト

1.UOAのハンドルを取得する

 FindWindowで“UOASSIST-TP-MSG-WND”を探すとハンドルを取得できる

2.UOAに自分のウィンドウハンドルを通知

 SendMessageでUOAハンドルめがけてWM_USER+200と自分のハンドルを送る

・ログアウト

1.上記2を再度行うとログアウトできる

Form(抜粋)

    Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click
        Dim Result As Integer
        Result = UOALink_Login(Me.Handle)
        Select Case Result
            Case -1
                txtLog.AppendText(String.Format("UOALink_Login = {1}: UOAが見つからない{0}", vbCrLf, Result))
            Case 0
                txtLog.AppendText(String.Format("UOALink_Login = {1}: スロットが一杯{0}", vbCrLf, Result))
            Case 1
                txtLog.AppendText(String.Format("UOALink_Login = {1}: ログイン成功{0}", vbCrLf, Result))
            Case 2
                txtLog.AppendText(String.Format("UOALink_Login = {1}: ログアウト成功{0}", vbCrLf, Result))
            Case Else
                txtLog.AppendText(String.Format("UOALink_Login = {1}: 不明な戻り値{0}", vbCrLf, Result))
        End Select
    End Sub

Module(抜粋)

    Public Const UOA_CLASSNAME As String = "UOASSIST-TP-MSG-WND"
    Public UOA_hWnd As Integer
    Public Const WM_USER As Integer = &H400S
    Public Const WM_UOA_REQUEST_DATA As Integer = WM_USER + 200
 
    Public Function fncGetWindowHandle( _
    ByVal pClassName As String) As Integer
        Return FindWindow(pClassName, vbNullString)
    End Function
 
    Public Function UOALink_SendMessage( _
        ByVal WM_UOA As Integer, _
        ByVal wParam As Integer, _
        ByVal lParam As Integer) As Integer
        Dim Result As Integer
        UOA_hWnd = fncGetWindowHandle(UOA_CLASSNAME)
        If UOA_hWnd = 0 Then
            Return -1
        End If
        Result = SendMessage(UOA_hWnd, WM_UOA, wParam, lParam)
        Return Result
    End Function
 
    Public Function UOALink_Login(ByVal hWnd As Integer, Optional ByVal GetHouse As Integer = 0) As Integer
        '' hwnd   = メッセージを受け取るウィンドウハンドル
        '' Result = -1 : UOALink_SendMessageでUOAのウィンドウが見つからないと-1を設定
        '' Result =  0 : スロットが一杯
        '' Result =  1 : ログイン
        '' Result =  2 : ログアウト
        Dim Result As Integer
        Result = UOALink_SendMessage(WM_UOA_REQUEST_DATA, hWnd, GetHouse)
        Return Result
    End Function

ダウンロード

開いたら File→Download で保存することができます。

UOA_Tool.#003.zip

2012/03/06

[HardDisk BENCH2]

CrystaldiskMarkさんのページをよく見てみたら、SSDはテストデータの設定で結果が変わるとちゃんと書いてありました。。。

ということで再度 0fill で再度ベンチとって見ました。

INTEL 510 SSDSC2MH120A2 120G

INTEL 520 SSDSC2CW060A3 60G

Hitachi HDS721050CLA362 500G

RamPhantom7 FAT32 4G


それなりの結果になって気持ち満足です(・ω・)

520は影響あって大分変化しましたね。



[HardDisk BENCH]

気分変えてハードウェアネタです(・ω・)

SSD導入してから数週間たつのでベンチマークとって見ました、

使用ソフトしたソフトはCrystalDiskMark3.0.1

[環境]

 マザーボード:ASUS P7P55D EVO

 OS:Windows7 32bit

INTEL 510 SSDSC2MH120A2 120G

INTEL 520 SSDSC2CW060A3 60G

Hitachi HDS721050CLA362 500G

RamPhantom7 FAT32 4G


SSD120Gがウィンドウズが入っているディスクで、SSD60Gは作業用で酷使しているディスクです。

あとは比較用にSATAとついでにRAMDISKも出してみた感じです。

作業用SSDは毎日20Gぐらい書き込み・削除を繰り返す感じの使いかたですが、今のところ数週間続けても特に劣化は見られない結果です。(書き込みが遅く見えますが元々こんな感じでした。。

ネット上で見かけるベンチ結果に比べると大分低く感じます(・ω・、詳しくは調べてないですがOSを64bitにすればもっと早くなったり。。。(試したいですがOSが無い

>マザーボードがSATA3非搭載だったのが原因でした(・ω・;

DiskKeeper2011が入ってるので、IntelliWriteというデフラグ防止機能が原因か!?と思ってオフにしても結果は似たようなものでした。