タグ

ブックマーク / dobon.net (86)

  • コンピュータの電源切る、システムのシャットダウン、再起動、ログオフする

    コンピュータの電源切る、システムのシャットダウン、再起動、ログオフするコンピュータの電源を切ったり、システムをシャットダウン、再起動、ログオフさせることは、.NET Frameworkの機能だけではできません。ここでは、Win32 API、WMI、shutdown.exeによる方法を紹介します。 ExitWindowsEx関数で行うExitWindowsEx関数を使用するために、まずは次のようなメソッドを記述します。 Public Enum ExitWindows EWX_LOGOFF = &H0 EWX_SHUTDOWN = &H1 EWX_REBOOT = &H2 EWX_POWEROFF = &H8 EWX_RESTARTAPPS = &H40 EWX_FORCE = &H4 EWX_FORCEIFHUNG = &H10 End Enum <System.Runtime.Intero

    コンピュータの電源切る、システムのシャットダウン、再起動、ログオフする
  • 自作クラスの配列やコレクションでSortやBinarySearchができるようにする

    自作クラスの配列やコレクションでSortやBinarySearchができるようにする IComparableインターフェイスを実装して値の大小を指定するIComparableインターフェイスの実装IComparable<T>ジェネリックインターフェイスの実装Equalsメソッドと演算子のオーバーライドこの記事への評価、コメント 自作クラスの配列やコレクションでSortやBinarySearchができるようにする IComparableインターフェイスを実装して値の大小を指定する自作クラスの配列やコレクションをSortメソッドで並び替えたり、BinarySearchメソッドで検索する必要がある時、どのように並び替えられるようにするかを定義しておく必要があります。その方法は、IComparerを指定するか、自作クラスにIComparableインターフェイスを実装するかのどちらかです。IComp

    自作クラスの配列やコレクションでSortやBinarySearchができるようにする
  • PictureBoxのImageプロパティに関するよくある勘違い

    PictureBoxのImageプロパティに関するよくある勘違い「コントロールやフォームに画像を表示する」ではコントロールに画像を表示する方法として、PictureBoxコントロールのImageLocationやImageプロパティを使用する方法と、コントロールのGraphicsオブジェクトを作成する方法の2つを紹介しています。そちらでも指摘していますが、この2つを併用すると、思ったようにいかなくなるかもしれません。 例えば以下の例では、画像(C:\test\1.jpg)の上に文字列を合成して表示しようとしています。そのために、PictureBoxコントロール(PictureBox1)のImageプロパティを使って画像を表示して、さらにPictureBoxのPaintイベントで文字列を表示しています。さらに、Buttonコントロール(Button1)をクリックすると、その画像をファイルに保

    PictureBoxのImageプロパティに関するよくある勘違い
    katow
    katow 2012/01/30
    PictureBox.Imageの方を良く使う。表示画像の本体に余計な描画を入れずに保持したまま装飾だけ入れたい場合。反対に画像を加工した結果を得たいなら、画像のオブジェクトから直接CreateGraphicsして処理を書く必要あり。
  • OS起動時にプログラムを自動的に実行する

    OS起動時にプログラムを自動的に実行する OS起動時に一回だけプログラムを自動的に実行するこれは、.NETの知識というより、Windowsに関する知識ということになるでしょう。 OS起動時に指定したプログラムを自動的に実行されるようにするには、Windowsのプログラム内スタートアップフォルダにショートカットを作成するか、レジストリのRunキーに登録するというのが一般的な方法です。.NETではショートカットの作成が簡単でないため、ここではレジストリのRunキーに書き込む方法を紹介します。 OS起動時に起動させるプログラムが登録されているキーには、次の4つがあります。(正確には、これらのキーに登録されたプログラムは新規ユーザーがログオンする時に実行されます。また、これ以外のキーもあります。詳しくは、下に紹介するマイクロソフトサポート技術情報をご覧ください。) HKEY_LOCAL_MACHI

    OS起動時にプログラムを自動的に実行する
    katow
    katow 2012/01/23
    レジストリへのスタートアップ登録
  • オブジェクトの内容をXMLファイルに保存、復元する: .NET Tips: C#, VB.NET, Visual Studio

    オブジェクトの内容をファイルに保存、復元する オブジェクトのXMLシリアル化、逆シリアル化を行うオブジェクトの内容をXMLファイルにして保存し、そのXMLファイルから元のオブジェクトに復元できると色々と便利です。例えば、INIファイルの代わりとして、設定を保存、復元したい時などに有用です。(設定を保存する場合は、「アプリケーションの設定を保存する」も参考にしてください。) これを行うには、XmlSerializerクラス(System.Xml.Serialization名前空間)を使うと簡単です。XMLファイルに書き込む時はSerializeメソッドを使ってオブジェクトをXMLシリアル化(シリアライズ)し、XMLファイルを読み込む時はDeserializeメソッドを使ってXML逆シリアル化(デシリアライズ)をします。 オブジェクトの内容をXMLファイルに保存(シリアル化)する次のコードでは

    オブジェクトの内容をXMLファイルに保存、復元する: .NET Tips: C#, VB.NET, Visual Studio
    katow
    katow 2012/01/13
    シリアライズ変換
  • MIDI、MP3などの音楽ファイルを再生する

    MIDI、MP3などの音楽ファイルを再生するここでは、MIDI(.mid)やMP3(.mp3)形式などのオーディオファイルを再生する方法を紹介します。これらのファイルの再生は、.NET Frameworkの機能としては用意されていませんので、Win32 APIなどを使用する必要があります。 なおWAVE(.wav)形式のファイルを再生する方法は、こちらで紹介しています。 MCIを使用する方法まずは、MCI(Media Control Interface)を使用して再生する方法です。この方法では、WAVE、MIDI形式のファイルを再生できます(MP3を再生する方法も後述します)。 下の例では、mciSendString関数を使用してMIDIファイルを再生しています。Button1で再生を開始し、Button2で停止します(Button2で停止しないと、再生できなくなります)。 <System

    MIDI、MP3などの音楽ファイルを再生する
  • WAVEファイルを再生する

    WAVEファイルを再生する ここではWAVE音声ファイルを再生する方法をいくつか紹介します。 .NET Framework 2.0以降で、SoundPlayerクラスを使用する方法 .NET Framework 2.0から追加されたSoundPlayerクラスを使用すれば、簡単にWAVEファイルを再生できます。 SoundPlayerクラスには、WAVEファイルを再生するためのメソッドが3つ用意されています。それぞれ以下のような違いがあります。

  • システムサウンドを再生する

    システムサウンドを再生するここでは、様々なシステムサウンドを鳴らす方法を紹介します。システムサウンドは、コントロールパネルの「サウンドとオーディオデバイスのプロパティ」の「サウンド」タブ「プログラムイベント」の「Windows」で確認、変更ができます。ここで紹介する方法で再生できるシステムサウンドは、「メッセージ(情報)」、「一般の警告音」、「メッセージ(警告)」、「システムエラー」、「メッセージ(問い合わせ)」ですが、PlaySound関数を使用した方法では、それ以外のサウンドを再生することもできます。 .NET Framework 2.0以降で、SystemSoundクラスを使用して再生するSystemSoundsクラスに用意されているプロパティによりSystemSoundを取得して、Playメソッドでサウンドを鳴らすことができます。 SystemSoundsクラスのプロパティとそれが

    システムサウンドを再生する
  • PictureBoxを使って、非同期的に画像を読み込み、表示する

    //PictureBox1に"C:\test.bmp"を表示する PictureBox1.ImageLocation = @"C:\test.bmp"; 実はこのようにPictureBox.ImageLocationプロパティで画像を読み込んだとき、デフォルトでは、非同期的に処理されます。つまり、画像が読み込まれて表示されるのを待たずに、ImageLocationプロパティの処理が終了し、それ以降の処理が実行されます。 同期的に画像を読み込んで表示するには、PictureBox.WaitOnLoadプロパティをtrueにします。同期的に画像を読み込むと、画像を読み込んで表示するまではそれ以降の処理はブロックされ、フォームがフリーズしたようになります。 同期的に画像を読み込んで表示するには、PictureBox.Loadメソッドを使うこともできます。この場合はWaitOnLoadに関係なく、

    PictureBoxを使って、非同期的に画像を読み込み、表示する
    katow
    katow 2011/12/01
    Imageオブジェクトに直接画像を入れて操作していたが、PictureBoxに取り込むほうが自然だといまさらながら気がつき始めた。
  • スクロールバーを付けて画像を表示する

    表示する画像が大きすぎる時、スクロールバーが表示されて画像がスクロールできるようになると便利です。このような機能を実現させる簡単な方法は、画像を表示するピクチャボックスをパネルコントロールにのせ、パネルコントロールのAutoScrollプロパティをTrueにすることです。このようにすることにより、ピクチャボックスがパネルコントロールより大きくなった時、スクロールバーが表示されるようになります。 Visual Studioのフォームのデザイナを使った時の具体的な手順を示します。 Panelコントロールをフォームに追加します。ここでは追加したPanelコントロールの名前が"panel1"であるとします。panel1のAutoScrollプロパティをTrueに変更します。PictureBoxコントロールをpanel1内に追加します。この時必ずpanel1の中に入れてください。ここでは追加したPi

    スクロールバーを付けて画像を表示する
    katow
    katow 2011/12/01
    ユーザーコントロールにした。
  • VB6のFormsコレクションに代わるものは?

    //現在開いているすべてのフォームのタイトルを取得する foreach (Form f in Application.OpenForms) { Console.WriteLine(f.Text); } 参考:Forms コレクション (Visual Basic 6.0 ユーザー向け)方法 : アプリケーションで開いているすべてのフォームにアクセスする.NET Framework 1.1以前VB6のFormsコレクションに相当するものは.NET Framework 1.1以前では用意されていませんし、フォームオブジェクト専用のコレクションもありません。 「マイクロソフト サポート技術情報 - 308537」の「[HOW TO] Visual Basic .NET で Forms コレクションを作成する方法」では、カスタムのFormsコレクションを作成する方法が紹介されています。 しかしここで

    VB6のFormsコレクションに代わるものは?
  • バルーンウィンドウのツールチップを表示する

    バルーンウィンドウのツールチップを表示するここでは、下図のようなバルーン(吹き出し)型のツールチップ(ツールヒント)(バルーンヒント)を表示する方法を紹介します。 注意:OSの設定によっては、バルーンウィンドウのツールチップを表示できない場合があります。レジストリの「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced」にある「EnableBalloonTips」が「0」の時は、バルーンが表示されません。このような設定になっている場合は、ここで紹介している方法を実行しても何も起こりません。 ToolTip.IsBalloonプロパティを使用する方法.NET Framework 2.0以降では、ToolTipコンポーネントのIsBalloonプロパティをTrueにすることにより、ツールチップ

    バルーンウィンドウのツールチップを表示する
    katow
    katow 2011/11/15
    バルーンチップはOSの影響を受けるので、独自クラスを用意したほうがよさそう。Code Projectで探す?
  • レジストリの操作: .NET Tips

    レジストリへの書き込み、読み込み、削除を行うここでは、レジストリから値を読み込む、レジストリに値を書き込む、レジストリの値やキーを削除する方法を紹介します。レジストリの操作全般は、RegistryKeyクラスを使って行うことができます。 レジストリに書き込むまずはじめにレジストリに書き込む例を示します。RegistryKey.CreateSubKeyメソッドでキーを開き、RegistryKey.SetValueメソッドで書き込みます。 次の例では、レジストリのキー"HKEY_CURRENT_USER\Software\test\sub"にデータを書き込んでいます。 'キー(HKEY_CURRENT_USER\Software\test\sub)を開く Dim regkey As Microsoft.Win32.RegistryKey = _ Microsoft.Win32.Registry

    レジストリの操作: .NET Tips
  • http://dobon.net/vb/melma/dotnet74.txt

  • 画像(Imageオブジェクト)を描画する

    画像を描画するには、Graphics.DrawImageメソッドを使います。描画したいImageオブジェクトと、描画する位置、サイズを指定します。 以下の例では、画像ファイル「C:\test\1.bmp」をPictureBoxコントロール(PictureBox1)の (20, 10) の位置に、基の画像と同じ大きさ(ピクセルサイズ)で表示しています。 'Imports System.Drawing '描画先とするImageオブジェクトを作成する Dim canvas As New Bitmap(PictureBox1.Width, PictureBox1.Height) 'ImageオブジェクトのGraphicsオブジェクトを作成する Dim g As Graphics = Graphics.FromImage(canvas) '画像ファイルを読み込んで、Imageオブジェクトとして取得す

    画像(Imageオブジェクト)を描画する
    katow
    katow 2011/07/27
    OnPaintイベントをオーバーライドする手もあり
  • フォームLoad時のフォーム利用判断: DOBON.NETプログラミング掲示板過去ログ

    題名: フォームLoad時のフォーム利用判断 著者: 美晴@.net初心者 日時: 2006/04/14 21:10:47 ID: 15333 この記事の返信元: (なし) この記事への返信: [15334] Re[1]: フォームLoad時のフォーム利用判断 なおこ(・∀・) 2006/04/14 21:47:12 [15336] Re[1]: フォームLoad時のフォーム利用判断 まどか 2006/04/15 3:48:53 [15362] Re[1]: フォームLoad時のフォーム利用判断 美晴@.net初心者 2006/04/18 20:26:43 [解決] ツリーを表示 環境/言語:[VB.NET] 分類:[.NET] はじめまして このたび初の.net開発となりました よろしければご教授・ご意見をお願いします 疑問点: フォームの呼び出し時に与えられたパラメータから詳細データを

    katow
    katow 2011/07/10
    やはりフォームLoadイベント内で強制終了を呼び出すのは立ち振る舞い的に禁じ手らしい。→私はMe.Shownイベントで終了させるようにしました
  • TextBoxやRichTextBoxのタブの幅を変更する

    TextBoxやRichTextBoxのタブの幅を変更するRichTextBoxであれば、SelectionTabsプロパティにより、タブの位置を設定することができます。ただしこれはタブの位置をピクセル単位で、数値型の配列として指定するものです。 SelectionTabsプロパティを使わないのであれば、Win32 APIを使うことになります。EM_SETTABSTOPSメッセージを使って、タブ幅の文字数を指定できます。 次の例では、Button1をクリックすることにより、TextBox1のタブの幅を16にしています。 <System.Runtime.InteropServices.DllImport("User32.dll")> _ Shared Function SendMessage(ByVal hWnd As IntPtr, _ ByVal msg As Integer, ByVa

    TextBoxやRichTextBoxのタブの幅を変更する
  • TextBox(またはRichTextBox)の最後の行までスクロールさせる

    TextBox(またはRichTextBox)の最後の行までスクロールさせるここでは、複数行テキストボックスまたはリッチテキストボックスで、スクロールさせて最後の行を表示する方法を紹介します。 ScrollToCaretメソッドを使う方法テキストボックスのSelectionStartプロパティでカレット位置を最後に移動させてから、ScrollToCaretメソッドでスクロールさせることができます。 ただし、リッチテキストボックスの場合は、ScrollToCaretメソッドを呼び出す時にリッチテキストボックスにフォーカスがないとスクロールしません。テキストボックスの場合はフォーカスがなくてもScrollToCaretメソッドでスクロールしますが、MSDNのScrollToCaretメソッドの説明には「コントロールにフォーカスがない場合、またはカレットが既にコントロールの表示領域に位置している

    TextBox(またはRichTextBox)の最後の行までスクロールさせる
  • どのコントロールを右クリックしてコンテキストメニューを表示したかを調べる

    どのコントロールを右クリックしてコンテキストメニューを表示したかを調べるコントロールのContextMenuStripプロパティ(.NET Framework 1.1以前では、ContextMenuプロパティ)を使用してコンテキストメニューを表示している時、どのコントロールを右クリックしてコンテキストメニューを表示したかを調べる方法を紹介します。例えば、複数のコントロールで同じContextMenuStripを使用している時に役に立ちます。 .NET Framework 2.0以降で、ContextMenuStripコントロールの場合ContextMenuStrip.SourceControlプロパティにより、ContextMenuStripを表示しているコントロールを取得できます。 ContextMenuStripを表示する直前に、そのContextMenuStripを表示しようとしてい

    どのコントロールを右クリックしてコンテキストメニューを表示したかを調べる
    katow
    katow 2011/06/06
    ContextMenuStripExを作ってOpening時にプロパティ保存するようにした
  • PictureBoxに補間して縮小表示した画像(500万画素クラス)をpaintイベントで速やかに再描画させたい: DOBON.NETプログラミング掲示板過去ログ

    題名: PictureBoxに補間して縮小表示した画像(500万画素クラス)をpaintイベントで速やかに再描画させたい 著者: mitarashi 日時: 2005/02/23 0:09:18 ID: 9319 この記事の返信元: (なし) この記事への返信: [9320] Re[1]: PictureBoxに補間して縮小表示した画像(500万画素クラス)をpaintイベントで速やかに再描画させたい mor 2005/02/23 1:22:45 ツリーを表示 環境/言語:[OS : Windows XP Home Edition / 言語 : Visual Basic .NET] 分類:[.NET] はじめまして。EXCEL VBAを経て、VB.NETにチャレンジしているところですが、非常に奥が深いですね。 【解決したい問題】 500万画素級のjpgファイルをPictureBoxに描画し

    katow
    katow 2011/05/09
    高速化に関するTIPS