Category Archives: C# カテゴリ "C#"のRSS  

DirectX SDKインストール時に”S1023エラー”が出る時の対処法

2012年9月29日 (カテゴリ: C#:, )

DirectXのSDKをインストールしようとすると、「S1023エラー」が出る場合があります。 セットアップが失敗しました。 再配布可能なパッケージのインストール中にエラーが発生しました。 開いているすべてのプログラムを閉じて、セットアップをもう一度実行してください。 それでも問題が解決しなければ、DirectX開発者サポートにお問い合わせ下さい。セットアップが失敗しました。 再配布可能なパッケージのインストール中にエラーが発生しました。 開いているすべてのプログラムを閉じて、セットアップをもう一度実行してください。 それでも問題が解決しなければ、DirectX開発者サポートにお問い合わせ下さ…


続きを読む

エラー:”名前空間マネージャまたは XsltContext が必要です” が出た時の対処法

2012年9月17日 (カテゴリ: C#:)

表示されたエラーメッセージ 名前空間マネージャまたは XsltContext が必要です。 このクエリには、プレフィックス、変数、またはユーザー定義の関数があります名前空間マネージャまたは XsltContext が必要です。 このクエリには、プレフィックス、変数、またはユーザー定義の関数があります Namespace Manager or XsltContext needed. This query has a prefix, variable, or user-defined function.Namespace Manager or XsltContext needed. This qu…


続きを読む

変数の特定ビットだけを0に落とす時に、条件式を簡単に書く

2012年9月12日 (カテゴリ: C, C#, Java:)

※本記事の例はC言語ですが、java,C#などのビット操作が出来る言語に共通した話です。 まずは、ビット操作の基本的な考え方です。 たとえばcharがたの変数dataから、5bit目だけ0に落としたい場合を考えます。 この場合のコードをシンプルに書くと、以下のようになります char data = xxx; char ans = data & 0xDF;char data = xxx; char ans = data & 0xDF; これは、以下の論理式演算(ビット単位のand)を行って、特定ビットを落としています。 (data) xxxx xxxx and (0xdf) 11…


続きを読む

C#でAmazonのMWSを使用して,マケプレの出品情報を取得する

2012年9月10日 (カテゴリ: C#:)

Amazonでは、Marketplace WebService API(Amazon MWS)を使用することで、マーケットプレースに出品されている商品の出品情報を取得する事が出来ます。 今回は、VisualStudioよりC#を使用して、マケプレの出品情報を取得するプログラムを作成してみます。 (phpで同じことをしたい場合はこちらの記事を参考にしてください) Amazonマーケットプレイス徹底活用 サンプルプログラムの実効結果 今回のサンプルプログラムによって、以下の様なデータを取得できます。 結果が長いので一部省略しています。 ===============================…


続きを読む

[C#]ネットワーク(NIC)の情報をプログラムで取得する

2012年8月23日 (カテゴリ: C#, 未分類:)

C#(.Net Framework)では、System.Net.NetworkInformationクラスを使用することで、NICの情報を取得する事が可能です。 下記のコードはIPCONFIGで出力されるような、IPアドレス/MACアドレス等の情報を出力しています。 送受信速度は取得できませんが、これは一定時間周期でBytesSentやBytesReceivedの値を取得し、一定時間内にどれだけ値が増えたかを元に速度を算出します。 例えば1秒周期で値を取得すれば、前回取得値との差分が、Byte/Secの単位として速度が算出できます。 using System.Net.NetworkInform…


続きを読む

[C#]Pic16f84シミュレータを作成する

2012年7月28日 (カテゴリ: C#, PIC:)

これまで1ヶ月ほど掛けて、パタヘネ本でCPUの動作原理を勉強してみたり、PICによるアセンブラプログラムの作成を行ってきました。そこで、今回は勉強した成果として、Microchipから発売されているPic16f84のシミュレーターを作成してみます。 いきなり全部作ると大変になるので、今回は大枠を作るために、ADDLW(Wレジスタの加算)とGOTO命令しか解析できない最低限のCPUシミュレータを、C#で構築します。 このシミュレータは、C#上ではクラス(Pic16f84Simulatorクラス)として実装していきます。 まずはプロパティの定義を行います。 class Pic16f84Simula…


続きを読む

[C#]PIC16シリーズのバイナリを逆アセンブルする

2012年7月22日 (カテゴリ: C#, PIC:)

前回、MPLABで生成されたhexファイルを解析するプログラムをC#で用意しました。 今回はこのバイナリ(機械語)を元に、逆アセンブルするプログラムを作成します。 というわけでプログラムです。 13bitの2進データをみて文字列に変換するだけなので、単純に力技です。 今回は分かりやすいように全命令の処理を列挙しましたが、PICの機械語命令は、命令の各bitに何の情報を持たせるかの構成パターン数が少ないので、最適化させればもう少しシンプルに書けそうです。 PICアセンブラ入門 using System;   class Pic16f84 { //***************…


続きを読む

C#でintelのhexファイルフォーマットを解析する

2012年7月21日 (カテゴリ: C#, PIC:)

C#でintelのhexファイルフォーマットの解析プログラムを作成したので,公開しておきます。 hexファイルフォーマットはアスキー形式の可変長テキストですが、シンプルな作りになっているので読み込みは簡単です。 ファイルフォーマットの詳細が知りたい場合は、以下のエントリで説明しています。興味があれば参考にしてください。 MPLABで作成されたhexファイルのフォーマットを解析する ここで読み込んだ情報を元にPIC16F84A用のバイナリを逆アセンブルしてみる予定ですが、本クラス自体はターゲットデバイス非依存な作りです。 (pic以外用のROMデータでも解析できるはずです) というわけで、解析処…


続きを読む

[C#,Win32API]ユーザがしばらくPCを使用していなければ自動ログオフさせる

2012年6月30日 (カテゴリ: C#:)

WindowsではユーザがしばらくPCを使用していな時に、スクリーンセーバーを起動させたり、自動デフラグを行わせたりしています。 このように、PCがアイドルの時に限って何らかの処理を行わせるようにしておくと、ユーザに負担を掛けることなく(処理が重くなることなく)タスクを実行できるので便利です。 このような処理を行うためには、ユーザが”何もしていない”時間を計測する必要なのですが、GetLastInputInfo()というWin32API関数を使用すると、この情報を取得可能です。 関数仕様は以下の形で、データの取得に成功すると戻り値に0以外の値が返ってきてくれます。 BO…


続きを読む

[.Net]Chartコントロールに表示させるグラフ色の,カラーパレット一覧

2012年5月25日 (カテゴリ: C#:)

Chartコントロールでは、1つのコントロールに複数の系列のグラフを描画する事ができます。 この際、各系列が分かりやすくなるよう、色が自動で切り替わるのですが、このカラーパレットはPaletteプロパティで指定する事が可能です。 chart1.Palette = ChartColorPalette.Berry; chart1.ApplyPaletteColors();chart1.Palette = ChartColorPalette.Berry; chart1.ApplyPaletteColors(); パレットを切り替えたい時は、上記のコードで簡単に変更する事が可能です。 …


続きを読む

.Net Framework4.0で追加されたChartコントロールを.Net3.5でも使用したい

2012年5月25日 (カテゴリ: C#:)

.Net Framework4.0では、画面にグラフを描画する為のコントロールとして、Chartコントロールが新たに追加されました。 このコントロールは、System.Windows.Forms.DataVisualization.Chartingパッケージに有るのですが、新しいクラスなので、当然ながら.Net Framework3.5以前では通常は使用することが出来ません。 ですが、.Net Framework3.5を使用して開発を行っている場合は、同コントロールが使用できるよう、Microsoftより追加のライブラリを提供してくれています。 下記のページからライブラリをダウンロードし、イン…


続きを読む

[C#][.Net]Chartコントロールに表示されているグラフをファイルに保存する

2012年5月25日 (カテゴリ: C#:)

VS2010の.Net Frameworkで用意されているChartコントロールを使用して描画したグラフをファイルに保存する方法です。 private void button1_Click( object sender, EventArgs e ) { chart1.SaveImage( "c:\\work\\chart.jpg", ChartImageFormat.Jpeg ); }private void button1_Click( object sender, EventArgs e ) { chart1.Save…


続きを読む

[C#][.Net]Chartコントロールから目盛りの罫線を消す方法

2012年5月25日 (カテゴリ: C#:)

VS2010の.Net Frameworkで用意されているChartコントロール(System.Windows.Forms.DataVisualization.Charting)で、グラフ内にあるグリッドの罫線を消す方法です。 ここでいう罫線とは、下図の赤枠で囲まれた線の事です。 Chartコントロールのプロパティを表示し、ChartAreasを選択します。ChartAreasは、実際にグラフが描画されるエリア(凡例などの周囲の余白ではなく)の情報を管理しています。 ダイアログが表示されるので、Axesプロパティを選択します。 さらに孫ダイアログが表示されるので、左のメンバーからX axisを…


続きを読む

[C#]WMIイベントをManagementEventWatcherクラスで処理する

2012年5月24日 (カテゴリ: C#:)

Windowsでは、WMI(Windows Management Instrumentation)のAPIを使用することで、OSを構成しているコンポーネントを操作出来ます。 WMIでは通常データの取得やセットを行う事が多いのですが、イベントハンドラを登録しておく事で、指定した状況が発生したかをプログラムで検出することが出来ます。 今回は、C#より.Net FrameworkのManagementEventWatcherクラスを使用して、イベントハンドラを取れるようにします。サンプルとして、PCに接続されているディスプレイの輝度が変更された事をイベントとして検出し、イベント情報を画面に出力するプ…


続きを読む

ThinkPadのFn+Home,Endでの明るさと、wmi\WmiSetBrightnessの関係

2012年5月21日 (カテゴリ: C#, ThinkPad:)

ThinkPadでは、Fn+Home,Endのキーを押すととで、ディスプレイの明るさを変更可能です。 このショートカットキーを押すと画面に現在の明るさが表示されますが、この値とwmiのWmiMonitorBrightnessにて取得したCurrentBrightness値の対応表を調べたのでメモしておきます。 表示値 CurrentBrightness 0 2 1 3 2 4 3 5 4 7 5 8 6 10 7 12 8 14 9 17 10 20 11 22 12 30 13 42 14 63 15 100表示値 CurrentBrightness 0 2 1 3 2 4 3 5 4 7 …


続きを読む

メモリリークの確認に、タスクマネージャのワーキングセットを使ってはいけない。

2012年5月18日 (カテゴリ: C#:)

システムの開発時、メモリリークが疑われる場合最初にタスクマネージャでexeが使用しているメモリの量を確認する事が多いかと思います。 この際、Windows7のタスクマネージャでだと、メモリの使用量として「ワーキングセット(メモリ)」と、「メモリ(プライベートワーキングセット)」の2つが有りますが、ワーキングセットを見てメモリリークの判断を行ってはいけません。 (補足:XPだと、プライベートワーキングセットは、仮想メモリサイズと表記されます) なぜかというと、ワーキングセットの値は、以下の特性があり該当のexeが”今使用している”メモリ量をあらわしているわけでは無いからです。 1.ワーキングセッ…


続きを読む

[C#]Chartコントロールを使用して、タスクマネージャー風のグラフを作成する

2012年5月18日 (カテゴリ: C#:)

VisualStudioの2010ではグラフを表示するために、Chartコントロールというものが追加されています。 このコントロールを使用すると、手軽にグラフを作成する事が出来るのですが、デフォルトのプロパティ値ではデザインがいまいちなグラフが出来上がってしまいます。 コントロールをフォームに貼った直後のデザインは、以下のような感じになっています。 今回は、Chartコントロールを使用して、主に見た目に関するプロパティを確認しつつ、 Windowsのタスクマネージャー風のグラフを作成してみました。 [今回作成したプログラムによるグラフの表示] 情報を見える形にする技術 今回のサンプルプログラム…


続きを読む

[C#]パフォーマンスカウンタから取得した値の履歴を,一定件数覚えておく

2012年5月18日 (カテゴリ: C#:)

Windowsに標準で搭載されているコントロールパネルやパフォーマンスモニタでは、PCの現在の状態を表示しつつ、グラフで一定時間(直近30sec分など)の履歴を表示しているものがあります。 このような表示方法だと、現在の状況を確認しつつデータが増加・減少傾向のどちらにあるのかの、トレンドも同時に把握する事ができるので便利です。 [コントロールパネルによるCPU負荷履歴の表示] 今回は、パフォーマンスカウンタから値を取得し、その履歴を一定件数覚えておく処理を作成します。 以下が、今回のサンプルコードです。 // 取得データの履歴 const int MAX_HISTORY = 40; Queue…


続きを読む

[C#]Listから最初のn件のデータだけ処理する

2012年5月17日 (カテゴリ: C#:)

Listに登録したデータから、最初のn個だけを残して他は削除したい場合は RemoveRange()メソッドを利用します。 int n = 10;   List<string> dataList = new List<string>(); if ( lstTest.Count > n ) { dataList.RemoveRange( n, dataList.Count – n ); }int n = 10; List<string> dataList = new List&…


続きを読む

[Windows]メモリエリア関係の用語まとめ(System.Diagnostics.Processクラス)

2012年5月16日 (カテゴリ: C#:)

System.Diagnostics.Processにあるメモリ関係のプロパティを見ていたら、よく分からなくなってきたので、整理を兼ねてメモしておく。 メモリ プロセスが使用しているメモリには、OSが管理するメモリ領域と、プログラムが使用するメモリ領域の2つがある。 OSが使用するメモリ領域 OSが使用するメモリ領域には、ページング化なエリアと、不可なエリアが存在する。 Process.NonpagedSystemMemorySize: ページングされないシステム メモリの量 Process.PagedSystemMemorySize : ページング可能なシステム メモリの量Process.N…


続きを読む