TIPSのブログ記事(古い順)

[TIPS] Vistaでhostsファイルを編集後に保存に失敗する

管理者権限を持ったユーザでログオンしても、エディタをわざわざ「管理者として実行」しないとファイル変更権限が授与されない仕様なのね。

Hosts ファイルまたは Windows Vista での Lmhosts ファイルが変更できません。
http://support.microsoft.com/kb/923947/ja

[TIPS] VistaからLinkStationにログインできない。

これってLM認証されるNAS全般で影響があるのかな・・。

セキュリティが硬くなったせいで利便性が犠牲になってますね。

[管理ツール][ローカルセキュリティポリシー]
+[ローカルポリシー][セキュリティオプション]
 +[ネットワークセキュリティ:LAN Manager認証レベル]
  +[LMとNTLMを送信する-ネゴシエーションの場合、NTLMv2セッションセキュリティ]

に設定を変更することでログインできました。

[TIPS] TimeZoneInfo

さて、米国での今年のサマータイムが終わったようです。(今知った)

州によって使われてなかったり、2007年の改定で期間が変わったり

ややこしいねん

リニアに流れるシンプルな時間の概念をねじ曲げる制度だと思います。

日本でのサマータイム制導入には反対の気持ちです。

(ちなみに同様の理由で日本の和暦も嫌いです。)

 

まぁ、それはそうとして、導入されてる国の時刻を日本時刻(JST)に変換する必要がある場合にはどうするのが適当なのでしょうか・・。

つーことで.NETFrameworkでのタイムゾーンの扱いをお勉強してみます。

 

.NET2.0以前と.NET3.5では推奨される手順が異なるようですね。どうやら度重なる制度改定に柔軟に対応するためにTimeZoneクラスが改良されTimeZoneInfoとなったようです。

 

ここでは.NET3.5のTimeZoneInfoを使ってみます。

 

まずはタイムゾーンの一覧で使いたい地域を確認

For Each tzItem As TimeZoneInfo In TimeZoneInfo.GetSystemTimeZones
  Debug.WriteLine(tzItem.Id & vbTab & tzItem.DisplayName)
Next

アメリカ東部標準時間(EST)→日本時間(JST)への変換

Private Function ESTtoJST(ByVal d As Date) As Date
  Dim EST As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")
  Dim JST As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time")
  Return TimeZoneInfo.ConvertTime(d, EST, JST)
End Function

 

思ったより簡単にできましたね。でも、この仕様になるまで紆余曲折を思うと頭の下がる思いですね。過去にこんな記事もあったみたい。↓

ディベロッパー製品開発統括部 Blog
日本における時差のシナリオに関してご意見をお聞かせください
http://www.exconn.net/Blogs/team01/archive/2006/07/21/15292.aspx

すくれいぴん

クリック証券のAPIがアレなんで、ちまたではスクレイピングが大流行らしい。(たぶん)

うちはVBのひとなので、InStrとかで文字列探したりごにょごにょするのも好きだけど、たまには正規表現でやってみるのも頭の体操になるよ。ってお話。

 

お題:Yahoo掲示板のカテゴリ一覧を読み取ってみよう。

20090228ss.png
 
ついでに最近おぼえたLINQもちょっと使ってみたょ。
コメントされてるのはLINQ使わない方のコードっすね。
 
BBSCategoryクラスではToString用意してあります。
呼び元でTreeViewのItemSourceに入れるだけで表示してます。
 
WPFにもちょっと慣れてきた。

[楽天RSS] DDE(シンプルパターン)

もっとも手抜きにDDEコールバックでRSSから株価を拾ってみる。 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim ddeinst As UInteger Dim pfnCallback = New DdeDelegate(AddressOf DdeCallback) DdeInitialize(ddeinst, pfnCallback, CBF_SKIP_REGISTRATIONS, 0) Dim hszServiceName = DdeCreateStringHandle(ddeinst, "RSS", CP_WINANSI) Dim hszTopicName = DdeCreateStringHandle(ddeinst, "2753.T", CP_WINANSI) Dim hszItemName = DdeCreateStringHandle(ddeinst, "現在値", CP_WINANSI) Dim hconv = DdeConnect(ddeinst, hszServiceName, hszTopicName, Nothing) DdeClientTransaction(Nothing, 0, hconv, hszItemName, CF_TEXT, XTYP_ADVSTART, 9999, Nothing) End Sub Public Function DdeCallback(ByVal uType As Integer, ByVal uFmt As Integer, ByVal hConv As IntPtr, ByVal hsz1 As IntPtr, ByVal hsz2 As IntPtr, ByVal hData As IntPtr, ByVal dwData1 As IntPtr, ByVal dwData2 As IntPtr) As IntPtr If uType = XTYP_ADVDATA Then Dim data = DdeAccessData(hData, Nothing) MsgBox(data) End If End Function

ほんとは各種ハンドルの解放とかエラー処理が必要ですが、基本これだけ。

あと、API利用のために以下も必要です。

Public Const CBF_SKIP_REGISTRATIONS As Integer = &H80000 Public Const CF_TEXT As Integer = 1 Public Const CP_WINANSI As Integer = 1004 Public Const DDE_FACK As Integer = &H8000 Public Const XTYP_ADVDATA As Integer = &H4010 Public Const XTYP_ADVSTART As Integer = &H1030 Public Const XTYP_ADVSTOP As Integer = &H8040 Public Delegate Function DdeDelegate(ByVal uType As Integer, ByVal uFmt As Integer, ByVal hConv As IntPtr, ByVal hsz1 As IntPtr, ByVal hsz2 As IntPtr, ByVal hData As IntPtr, ByVal dwData1 As IntPtr, ByVal dwData2 As IntPtr) As IntPtr <DllImport("user32.dll", EntryPoint:="DdeInitialize", CharSet:=CharSet.Ansi)> _ Public Shared Function DdeInitialize(ByRef pidInst As UInteger, ByVal pfnCallback As DdeDelegate, ByVal afCmd As UInteger, ByVal ulRes As UInteger) As UInteger End Function <DllImport("user32.dll", EntryPoint:="DdeConnect", CharSet:=CharSet.Ansi)> _ Public Shared Function DdeConnect(ByVal idInst As UInteger, ByVal hszService As IntPtr, ByVal hszTopic As IntPtr, ByVal pCC As IntPtr) As IntPtr End Function <DllImport("user32.dll", EntryPoint:="DdeCreateStringHandle", CharSet:=CharSet.Ansi)> _ Public Shared Function DdeCreateStringHandle(ByVal idInst As UInteger, ByVal psz As String, ByVal iCodePage As Integer) As IntPtr End Function <DllImport("user32.dll", EntryPoint:="DdeAccessData", CharSet:=CharSet.Ansi)> _ Public Shared Function DdeAccessData(ByVal hData As IntPtr, ByRef pcbDataSize As UInteger) As String End Function <DllImport("user32.dll", EntryPoint:="DdeClientTransaction", CharSet:=CharSet.Ansi)> _ Public Shared Function DdeClientTransaction(ByVal pData As IntPtr, ByVal cbData As UInteger, ByVal hConv As IntPtr, ByVal hszItem As IntPtr, ByVal wFmt As UInteger, ByVal wType As UInteger, ByVal dwTimeout As UInteger, ByRef pdwResult As UInteger) As IntPtr End Function

Client Profile で System.Web が参照できない件

参照アセンブリ "***.dll" は、現在のターゲット フレームワーク ".NETFramework,Version=v4.0,Profile=Client" 内にない "System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" に依存するため、解決できませんでした。 

上記エラーで毎回はまるのでメモ

[詳細コンパイルオプション][対象のフレームワーク(すべての構成)]が .NET Framework 4 Client Profile になっている場合にはSystem.Webが見つからない。(デフォルトで Client Profile になっている)

.NET Framework 4 に変更すればコンパイルが通る。

 

なぜClient ProfileでSystem.Webを使えなくしたのか、その理由は想像し納得できるのだが、HttpUtilityなどのツール類は別クラスに移動してほしい気もする・・。

というかその方向で考えます的な議論がされているらしい。(1年前だが・・

Introducing the .NET Framework Client Profile - Troy Martez's Weblog
http://blogs.windowsclient.net/trickster92/archive/2008/05/21/introducing-the-net-framework-client-profile.aspx

 

Windows 7 VL版のライセンス認証

Windows 7 VL版のライセンス認証のメモ

「Windowsのライセンス認証手続きを行えませんでした
 キー管理サービス(KMS)ホストがドメインネームシステム(DNS)に見つかりませんでした。」

以下コマンドでライセンスキーを登録すればOK

slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

 

Windows Vista Enterprise、Windows Vista Business、または Windows Server 2008 のライセンス認証を行おうとすると、エラー メッセージ "コード 0x8007232b" が表示される
http://support.microsoft.com/kb/929826/ja

CMEデータの取得

さて、今日はCME日経225先物のデータ取得について。

 

URLはこれ

http://www.cmegroup.com/CmeWS/md/MDServer/

V1/Venue/G/Exchange/XCME/FOI/FUT/Product/NIYH0

 

URL末尾は先物でおなじみの限月ですね。

 

中身はおなじみJSON形式ですね。

 

おためしあれ。



Twitter

メッセンジャー







モバイル