8月 2005 - 投稿

Windows Forms アプリケーションで、いろいろ画面の描画処理(特に画像を動かしたり、頻繁に書き換えたり)すると、速度が遅くなったり、ちらつきが発生したりします。 その解決方法。ダブルバッファリングを使用します。 フォームのロード時イベントに、以下の文を追加します。 Me.SetStyle(ControlStyles.DoubleBuffer, True)Me.SetStyle(ControlStyles.UserPaint, True)Me.SetStyle(ControlStyles.AllPaintingInWmPaint,
Virtual PC環境におけるゲストPCの通信のキャプチャ。結果的には、できました。 環境:(ホストOS)Windows XP Professional SP2IP:192.168.20.10 (ゲストOS)Windows XP Professional SP2IP:192.168.23.22 実験内容:ゲストOSの通信のキャプチャ(ゲストOSで http://www.msn.co.jp にアクセスしてみる) キャプチャは、Etherealというパケットキャプチャソフトで実験しました。キャプチャのライブラリは、WinPcapですね。
Virtual PC でゲストOSを使っていて、ホストOSのパフォーマンスモニタでホストOSの Network Interface をモニタしても、VPCの通信はキャプチャできません。 そりゃそうですよね。別のPCであってホストOSをルータorゲートウェイとして利用していないと、キャプチャできませんもんね。 もちろん、コンピュータ名を指定してカウンタを追加してあげれば大丈夫です。 そういえば、Ethereal などのパケットキャプチャソフトを使った場合はどうなるのかな?ホストOS/ゲストOSの通信も両方キャプチャできちゃうのかな。

VB.NET:サービス名の取得

投稿日時 2005年8月30日 12:50 投稿者 Elfaria (コメント オフ)

Windowsでのサービスのサービス名の取得です。 参照設定で、System.ServiceProcess.dll を参照に加えてください。 以下のコードでは、存在するサービス名を列挙し、コンソールに表示させています。     Function PrintSvcs()        Dim Svcs() As ServiceProcess.ServiceController        
今回新しくなったC# 2.0(.NET Framework 2.0 / VS 2005)の新機能(?)です。 Iterators(イテレータ)を使うことで、列挙型を簡単に実装することができるようになるとのこと。 私はVBメインなのであまりC#で開発したことがないのでよくわからないのですが… IEnumeable で列挙型を実装した場合、for each 文でループさせた場合の状態を管理する必要があったようで…。それが、Iteratorsを使うことによって簡単に実装できるようです。for each

SFU:uname の値

投稿日時 2005年8月29日 0:08 投稿者 Elfaria (コメント オフ)

UNIX/Linux には、カーネルや現在実行システムのバージョン等の情報を uname というコマンドで取得できます。 これを、SFU(Windows Services for Unix)で状態を表示してみると…。 $ unameInterix $ uname -aInterix vpc-winxppro 3.5 SP-8.0.1969.1 x86 Intel_x86_Family15_Model2_Stepping9 $ uname -XSystem = InterixNode = vpc-winxpproRelease
インストール時に、カスタムインストールを選択し、Interix SDK をインストールしておく必要があります。SDK入れておかないと、configure 時に gcc が無いよって怒られます。 ちなみに、インストールしたのはbash-3.0GNUのサイトにあったのを使用してみました。 作業用のディレクトリとかにコピーして、 $ gzip -d bash-3.0.tar.gz $ tar xvf bash-3.0.tar $ cd bash-3.0 $./configure $ make
SFU(Windows Services for UNIX)のディレクトリ情報は、本来のUNIXとは違います。(当たり前ですが) まず、シェルを起動すると、ホームディレクトリに移動した状態となります。(UNIXでログインした直後と同じですね)具体的には、C:\Documents and Settings\(ユーザー名) がホームディレクトリとなります。$ echo ~ としてみると、/dev/fs/C/Documents and Settings/(ユーザー名)となります。 その他のドライブも/dev/fs/(ドライブ名(英字のみ))に割り当てられます。D:
Windows Services for UNIXでインストールされるシェルの種類です。 インストールすると、C Shell(csh)とKorn Shell(ksh)がインストールされます。 個人的には、Bashの方が好きなんですがね。 Bashのソースを入手して、コンパイルしてみようと思います。
VB.NETでは、2通りの方法でDLLが呼び出せます。ここでは、例として7-zip32.DLLの圧縮解凍を行うSevenZip関数を呼び出す方法をサンプルとして、書きます。 VB6形式Private Declare Function SevenZip Lib "7-zip32" (ByVal hWnd As Long, ByVal szCmdLine As String, ByVal szOutput As String, ByVal dwSize As Long) VB.NET形式最初に、Imports
以前にも書いたかも。 VB.NETでは、System.IO.File.Exists を使うと、簡単にファイルの存在が確認できます。戻り値は、Boolernで返るので、判定が簡単。 例:File.Exists("C:\Windows\notepad.exe") VB6だと、DIR関数があるけど、個人的に好きじゃないです。DIR関数は、そのファイルが存在する場合にだけ、そのファイル名がStringで返ります。
TechEdも終わり、VS2005 Beta2, Windows Vista Beta1 などといろいろベータ版が出てきて評価できるようになりました。 ここで、ベータ版を評価する際の注意点を。 お約束ですが、ベータ版はあくまで「ベータ版」なので、下手をするとデータが飛んだり、青画面のまま立ち上がらなくなったりします。当然、保証なんてものはありません。(でも、フィードバックはできます。物にもよりますが。)なので、仕事環境・本番環境などには入れないようにしましょう。できるだけ、Virtual PC