タグ

c#に関するhalohalolinのブックマーク (97)

  • キー入力を受け付けながら処理を行う. (Console.Read, Console.ReadKey, ThreadPool, QueueUserWorkItem, IAsyncResult, Func, BeginInvoke, EndInvoke) - いろいろ備忘録日記

    たまたま知人より、キー入力を受け付けながら処理を行う事って出来るの??って聞かれたので 書いたサンプルです。もったいないので、メモメモ。 Console.ReadやConsole.ReadKeyメソッドは処理をブロックするので、そのまま処理のループの中で 呼んでしまうと制御が返ってこなくなります。 なので、キー入力を受け付ける処理を別のスレッドに分けて、メインとサブで 処理をするとすっきりします。 以下、殴り書きのサンプルです。 読みづらいです。すみません。 using System; using System.Threading; namespace Test { public class Sample { volatile static bool _keyReaded = false; static void Main() { ThreadPool.QueueUserWorkItem(

    キー入力を受け付けながら処理を行う. (Console.Read, Console.ReadKey, ThreadPool, QueueUserWorkItem, IAsyncResult, Func, BeginInvoke, EndInvoke) - いろいろ備忘録日記
    halohalolin
    halohalolin 2014/10/02
    コンソールにおいてThreadPool.QueueUserWorkItemを用いてConsole.ReadKeyのキー受付を別スレッドにすれば、入力待ちで処理を止めることはない。
  • チュートリアル: カスタム動作を使用した、インストール時におけるバイナリのネイティブ コードへのコンパイル

    カスタム動作を定義して、インストール後に実行するコマンドを指定できます。 たとえば、このチュートリアルでは、カスタム動作を定義し、CustomActionData プロパティに EXE のパス名を渡して、アプリケーションのインストール後にこの実行可能ファイルをネイティブ コードにコンパイルします。 注意 お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。 これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。 詳細については、「Visual Studio の設定」を参照してください。 配置する Web ブラウザー アプリケーションを作成するには [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。 [Windows フォ

    チュートリアル: カスタム動作を使用した、インストール時におけるバイナリのネイティブ コードへのコンパイル
    halohalolin
    halohalolin 2013/07/26
    VisualStudio追加クラスの種類に「インストーラー クラス」がなかった→http://bit.ly/6zaORm を参考に自作。本当にネイティブコードへコンパイルされたのか?調べる→ngen displayコマンド、ngenはC:\Windows\Microsoft.NET...内に存在。
  • Microsoft – クラウド、コンピューター、アプリ & ゲーム

    6 月 10 日午前 2 時 (日時間) に、「Xbox Games Showcase」、Call of Duty®: Black Ops 6 Direct の順に開催される 2 立てイベントに参加しましょう。

    Microsoft – クラウド、コンピューター、アプリ & ゲーム
    halohalolin
    halohalolin 2013/07/10
    .NET環境からxlsx出力を行いたい場合に使える、エクセル不要。ただ残念ながらxls形式の出力は非対応、Microsoft Excel用オートメーション クライアントに頼ることになる。画像の対応はどうなんだろう?
  • 実行環境にExcelがインストールされているかどうかを調査する.(Type.GetTypeFromProgID) - いろいろ備忘録日記

    TypeクラスのGetTypeFromProgIDメソッドを利用すると、その環境にてExcelがインストールされている かどうかを簡単に調査できます。 やり方は、以下のように上記のメソッドにExcelを表すProgIDを指定します。 ちなみに、ワードの場合は"Word.Application"です。 戻り値として、nullが返ってくる場合はインストールされていないとみなします。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace Gsf.Samples.CSharp { public partia

    実行環境にExcelがインストールされているかどうかを調査する.(Type.GetTypeFromProgID) - いろいろ備忘録日記
    halohalolin
    halohalolin 2013/07/09
    TypeクラスのGetTypeFromProgIDメソッドを利用すると、その環境にてExcelがインストールされているかどうかを簡単に調査できます
  • システムのアイコンを取得する

    システムのアイコンを取得するSystemIconsクラス(System.Drawing名前空間)のプロパティを参照することにより、Windowsのシステムのアイコン(既定のアプリケーションアイコン、エラーアイコン、疑問符アイコンなど)のIconオブジェクトを取得することができます。 次の例ではSystemIconsクラスから取得できる各アイコンを順番にPictureBox1に表示しています。 'Imports System.Drawing 'システムのアイコンを表示する '描画先とするImageオブジェクトを作成する Dim canvas As New Bitmap(PictureBox1.Width, PictureBox1.Height) 'ImageオブジェクトのGraphicsオブジェクトを作成する Dim g As Graphics = Graphics.FromImage(ca

    システムのアイコンを取得する
    halohalolin
    halohalolin 2013/06/28
    MessageBox等でシステムアイコンを設定するなら「SystemIcons」を用いる、例えばびっくりマーク(エクスクラメーション)を呼び出したいなら、SystemIcons.Exclamation
  • TCPを利用した複数クライアント接続可能なチャットアプリケーションの作成:CodeZine

    はじめに ここでは、複数のクライアントが同時に接続できるTCPを利用したクライアントサーバー型チャットアプリケーション(僭越ながら、「DOBON Chat」と命名させていただきます)のサンプルを示し、その要点を解説します。 .NET FrameworkではTCPを利用したデータ通信を行うためのクラスとして、TcpClient及びTcpListenerクラス(共にSystem.Net.Sockets名前空間)が用意されています。これらのクラスは内部でSocketクラス(System.Net.Sockets名前空間)を使用しており、Socketクラスをより簡単に扱えるようにするためのクラスであると言えます。しかしSocketクラスを直接扱う場合と比べて機能的に劣り、しかも取り扱いの難しさもそれほど変わるとは思えません。そこでここでは、TcpClientとTcpListenerクラスを使わずに、

    TCPを利用した複数クライアント接続可能なチャットアプリケーションの作成:CodeZine
    halohalolin
    halohalolin 2013/06/19
    TCP/IPのクライアント・サーバプログラムは同じ筆者より http://bit.ly/mFcbVr にも記載されているが、あちらは同期・こちらは非同期なので複数からの同時接続に対応
  • .NET Memory Profiler - Find Memory Leaks and Optimize Memory Usage in Programs Written in C#, VB.NET or any other .NET Language

    Find Memory Leaks and Optimize Memory Usage in any .NET Program .NET Memory Profiler is a powerful tool for finding memory leaks and optimizing the memory usage in programs written in C#, VB.NET or any other .NET Language. With the help of the profiling guides, the automatic memory analyzer, and specialized trackers, you can make sure that your program has no memory or resource leaks, and that the

    halohalolin
    halohalolin 2013/06/12
    メモリリークを調べる.NET対応プロファイラソフトの一つ、メソッドレベルで調べることができ、変数のshare指定し忘れなども指摘してくれる、英語、お試し期間は7日(有料)
  • Download Visual Studio Async CTP (Version 3) from Official Microsoft Download Center

    halohalolin
    halohalolin 2013/06/12
    Visual Studio 2010に対し、Visual Studio 2012に追加されたAsync および Await を使用した非同期プログラミングを対応させるものらしい
  • VB.NETでサクッとメモリ使用量を計測する - qaz76のブログ

    リアルタイムでCLR上のアプリのメモリ使用量なんかを確認したい!ってお話です。。。 パフォーマンスチューニングは処理速度以外にメモリ使用量なんかも対象にしますよね? プロジェクトの後半で、長期間に渡ってテストしているとOutOfMemoryExceptionなんかで悩まされたりするはずです。 チューニングは、やはり計測が基です。 。。ということで、今回は.NETでメモリ使用量などを手軽に計測する方法をlogります。 ポイント アプリのメモリ使用量の計測にMy.Application.Info.WorkingSetを使います。 OSの空き容量の計測にDiagnostics.PerformanceCounterを使います。 アプリのタイトルバーにメモリ使用量などを表示します。 アドオン的に使います。 MemoryMonitorの実装&使用例 Option Explicit On Option

    halohalolin
    halohalolin 2013/05/29
    アプリのメモリ使用量の計測にMy.Application.Info.WorkingSet、例えば String.Format(" [メモリ情報] 使用: {0,6:#,##0.0}MB",(My.Application.Info.WorkingSet / 1024 / 1024))
  • HttpRequestCacheLevel Enum (System.Net.Cache)

    halohalolin
    halohalolin 2013/01/25
    Net.WebClientや、HttpWebRequestなどを用いて.NETから通信する際、CachePolicyプロパティでNoCacheNoStoreも指定しないとキャッシュが使われデータが古いものが渡される可能性がある?
  • Internet Explorer のバージョンを取得する - tilfin's note 跡地

    他にも方法はあるだろうがレジストリから取得するのが一番良さそう。 文字列でIEのバージョンを返す。エントリがなく取得に失敗したら null を返す。 public static string getInternetExplorerVersion() { string rKeyName = @"SOFTWARE\Microsoft\Internet Explorer"; string rValueName = "Version"; try { Microsoft.Win32.RegistryKey rKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(rKeyName); string sVersion = (string)rKey.GetValue(rValueName); rKey.Close(); return sVersion

    Internet Explorer のバージョンを取得する - tilfin's note 跡地
    halohalolin
    halohalolin 2012/12/11
    .NETにてIEのバージョンを取得するにはレジストリを参照する、VBのサンプルコードは→ http://web.biz-prog.net/praxis/ie/version.html
  • Windowsバージョンの取得方法 - kurukuru-papaのブログ

    アプリケーションが動作しているWindows環境について、Windowsの種類(Windows XP, Vista, 7, Server 2003, Server 2008など)とService Packを取得する方法を調べたのでメモしておきます。 まず、バージョン判定の考え方ですが、これはMicrosoftのサイトに載っていました。 OSVERSIONINFOEX Structure (Windows) http://msdn.microsoft.com/en-us/library/ms724833%28VS.85%29.aspx Operating system Version number dwMajorVersion dwMinorVersion Other Windows 7 6.1 6 1 OSVERSIONINFOEX.wProductType == VER_NT_WORKS

    Windowsバージョンの取得方法 - kurukuru-papaのブログ
    halohalolin
    halohalolin 2012/11/27
    C#におけるWindowsバージョンの判定サンプルプログラム、ServicePackやServerかどうかの判定つき
  • Webサーバのプロトコル違反による例外を回避するには? - @IT

    WebClientクラス(System.Net名前空間)やHttpWebRequestクラス/HttpWebResponseクラス(System.Net名前空間)を使ってWebページにアクセスする際、Webサーバによっては、ページが存在しブラウザで開くことができるにもかかわらず、「サーバーによってプロトコル違反が発生しました. Section=ResponseHeader Detail=CR の後には LF を指定しなければなりません。」というメッセージの例外が発生して、アクセスできない場合がある*。 これは、冒頭で挙げたクラスがWebサーバから返されるデータを厳密に検証した結果、HTTPプロトコルに違反している個所が見つかった場合に発生する例外である(実際に行われる検証内容については、「HttpWebRequestElement.UseUnsafeHeaderParsingプロパティの解

    halohalolin
    halohalolin 2012/11/02
    Section=ResponseHeader Detail=CR の後には LF を指定しなければなりません。は、サーバ側が仕様を満たしていないのが問題、だが言ってられないので<アプリケーション名>.exe.configでビルド。これも参考になる→http://bitly.com/SgvWdO
  • Windowsストアにアプリを登録する - DoboWiki

    DOBON.NET DOBON.NET プログラミング道 .NET Tips 最近1週間の人気の20件.NETプログラミング研究/93 ( 162 / 121 / 137804 ) ぱたうさ ( 85 / 88 / 30434 ) .NETプログラミング研究/112 ( 66 / 68 / 36872 ) .NETプログラミング研究/111 ( 62 / 67 / 46406 ) .NETプログラミング研究/76 ( 55 / 40 / 72331 ) .NETプログラミング研究/98 ( 52 / 38 / 42215 ) free/kanaxsCSharp ( 46 / 45 / 29871 ) .NETプログラミング研究/94 ( 42 / 54 / 59775 ) .NETプログラミング研究/103 ( 35 / 33 / 50198 ) .NETプログラミング研究/79 ( 31

    halohalolin
    halohalolin 2012/09/25
    Windows RT向けアプリを配布するためにWindowsストアへ登録する方法まとめ/開発環境を整える/Windowsストアアプリを作成する/Windowsストア開発者アカウント登録する/アプリを提出する過程を確認する...
  • C# Programming

    例えば、フルフォーマットでプリントする場合には、次のように {0:f} でフォーマット付で呼び出します。 Console.WriteLine("{0:f}", time1); あるいは、 string str = System.DateTime.Now.ToString("D"); Console.WriteLine( "str" ); というように出力できます。 このフォーマットは、コントロールパネル→地域と言語のオプション→地域オプションに依存しています。 下図の【長い形式】のところを見ると、2002年xxxもしくは平成xxxxというように表示されていると思いますが、ここでPCのロケールがセットされており、このロケールによって 結果が異なってきます。 次の表に、デフォルトの西暦表示の場合と、和暦を指定した場合の表示の違いについて示しています。 フォーマットも、上の図の短い形式、長い形式

    halohalolin
    halohalolin 2012/09/13
    地域と言語の設定によらない日時表示の方法、datetimeで文化指定がない場合、コントロールパネルの設定によって年の扱いが和暦・西暦等まちまちで伝えられるので例外や誤動作の元になる
  • SplitContainerで片方のパネルサイズを固定する - bnote

    SplitContainerで片方のパネルサイズを固定したい場合、2つのプロパティを使用します。 FixedPanel コンテナのサイズを変更してもサイズ変更されないパネルを指定できます。 IsSplitterFixed 分割線を固定するか移動できるようにするかを指定する。 例えば、左右に分割しているとして左(Panel1)のパネルを固定は場にする場合、次のように設定します。 FixedPanel -> Panel1 IsSplitterFixed -> True 両方のプロパティを有効にすることで、指定したパネルの幅又は高さが固定されるようになります。

    halohalolin
    halohalolin 2012/09/04
    SplitContainerで固定化するには自分でコードを書かなくてもFixedPanelとIsSplitterFixedを指定すれば良い、無駄な時間を費やしてしまったorz
  • サムネイル画像の色数が少ない? - OKWAVE

    ListViewコントロールでサムネイル画像を一覧表示するには? VB初心者です。 .NET TIPSの中に「ListViewコントロールでサムネイル画像を一覧表示するには?」というものがありました 今回、それを利用してサムネイル一覧の表示をしようとして行き詰りました。 作りたいのは以下のものです ○決まったサイズの画像(bitmap)を表示し、その下にファイル名(フルパスでは無い)を表示し、更にその下に元の画像のサイズを表示するようなものを作成したいのですが、作成可能でしょうか? また、作成可能な場合、どういった方法で作成したら良いか教えて下さい。 行き詰ったのは、第一段階の、サムネイル画像のしたのファイル名の所です。 よく分からずに ListView1.Items.Add(bmpFiles(i), i)の所を Dim bmpFileName As String = _ Path.Get

    サムネイル画像の色数が少ない? - OKWAVE
    halohalolin
    halohalolin 2012/08/27
    .netにおけるListViewにてサムネイルを表示させる場合、関連付けるImageListは、よっぽどローエンド向けにする場合以外は必ず.ColorDepthプロパティを指定して色数を増やしておいたほうが良い
  • 同期メソッドの非同期呼び出し - .NET

    このトピックのコード例では、 BeginInvoke と EndInvoke を使用して非同期呼び出しを行う 4 つの一般的な方法を示します。 BeginInvoke を呼び出した後、次の処理を行うことができます。 何か処理を実行した後、呼び出しが完了するまでブロックする EndInvoke を呼び出します。 WaitHandle プロパティを使用して IAsyncResult.AsyncWaitHandle を取得し、その WaitOne メソッドを使用して WaitHandle が通知されるまで実行をブロックし、 EndInvokeを呼び出します。 IAsyncResult によって返される BeginInvoke をポーリングして非同期呼び出しが完了したかどうかを確認した後、 EndInvokeを呼び出します。 コールバック メソッドのデリゲートを BeginInvokeに渡します。

    同期メソッドの非同期呼び出し - .NET
    halohalolin
    halohalolin 2012/08/03
    BeginInvokeで呼び出したデリゲートが終了したかどうかを確認するにはIAsyncResultを変数に定義してIsCompletedがtrueかどうか調べる
  • Windowsアプリケーションをフルスクリーンで表示するには?

    連載目次 Windowsアプリケーションでは、デスクトップいっぱいにウィンドウを表示する「最大化表示」のほかに、ウィンドウの上下左右の枠と上部のタイトル・バーを非表示にして、ウィンドウ内部(=クライアント領域)をデスクトップ全体に表示する「フルスクリーン表示」がある(フルスクリーン表示では、デスクトップ最下部(デフォルト時)にあるタスク・バーも覆う)。 次の画面は、Visual Studio .NET 2003のIDEを、実際にフルスクリーンで表示したところだ。 Visual Studio .NET 2003のフルスクリーン表示 Visual Studio .NETのIDEで、ショートカット・キー[Alt]+[Shift]+[Enter]を押すか、メニュー・バーから[表示]-[全画面表示]を選択すると、IDEのウィンドウ内部がデスクトップ全体に広がって表示される。 稿では、このようなフル

    Windowsアプリケーションをフルスクリーンで表示するには?
    halohalolin
    halohalolin 2012/07/31
    Windowsアプリケーションにおいて全画面表示を実装するのはあまり難しくなさそう。途中で通常表示を組み合わせるのが、タスクバーを消したり表示のバランスを取るコツらしい。
  • コレクション - smdn.jp

    .NET FrameworkのSystem.Collections名前空間には様々な機能を持った便利なクラスが複数存在します。 これらはコレクションと呼ばれ、一般的に使う配列の様に一つのコレクションオブジェクトが複数のオブジェクトを保持する一方、配列とは異なり、ソートや動的な領域確保など配列にはない機能も持っています。 また、キューやスタック、リスト、集合などのデータ構造もコレクションとして用意されています。 ここではそのコレクションクラスについて解説します。 LINQおよびEnumerableクラスなどで提供される拡張メソッドについても一部触れていますが、詳細については解説しません。 必要に応じて他のドキュメントを参照してください。 コレクションの種類と特徴 コレクションクラスの種類とインターフェイス コレクションクラスの特徴 コレクション、リストのクラスと特徴 ディクショナリのクラスと

    コレクション - smdn.jp
    halohalolin
    halohalolin 2012/07/11
    ジェネリック(List/Dictionary/SortedListとSortedDictionary/LinkedList/StackとQueue/HashSetとSortedSet/Collection/ReadOnlyCollection/ObservableCollection/ReadOnlyObservableCollection/KeyedCollection等)のまとめ、ソート・列挙・比較なども記載