ブックマーク / atmarkit.itmedia.co.jp (32)

  • Windows 10のユーザーアカウント制御(UAC)を一時的に無効にする:Tech TIPS - @IT

    Windows Vista以降のWindows OSには、「ユーザーアカウント制御(User Account Control。以下UAC)」と呼ばれるセキュリティ機能が実装されている。ウイルスや不正な操作、操作ミスなどによって、システム設定の変更やプログラムのインストールなどの管理者権限が必要となる操作が自動的に実行されてしまうのを防ぐための機能だ。 UACによって表示されるダイアログ UAC機能が有効な場合、たとえ管理者アカウントでログオン(サインイン)していても、システム設定の変更やプログラムのインストールなどの管理者権限を必要とする操作をしようとすると、このように確認を求めるダイアログが表示される。この画面は、レジストリエディターを起動した際に表示されたUACのダイアログ。ユーザーが操作を続けるには、表示内容を確認してから明示的に[はい]ボタンを押す必要がある。 いちいちデスクトップ

    Windows 10のユーザーアカウント制御(UAC)を一時的に無効にする:Tech TIPS - @IT
    dotsarg
    dotsarg 2021/08/20
    UAC を全画面で確認しない方法が記載されている。
  • pushd/popdでフォルダーを移動する

    cdコマンドで移動すると履歴が残らず、元のフォルダーへ戻るのが面倒である。pushdコマンドで移動すると、履歴がスタックに残り、popdコマンドで簡単に戻ってくることができる。引数なしでpushdコマンドを実行すると、履歴が表示される。 解説 コマンドプロンプト上で作業をする場合、あちこちのフォルダーへ移動しながらファイルを操作したり、コマンドを実行したりすることが多い。Windows OSに限らず、コマンドや設定ファイル、ログファイルなどは複数のフォルダーに分かれて置かれているため、このような移動は避けられない。もしフォルダーを移動せずに作業しようとすると、全てのファイルパスをフルパスで指定しなければならず、とても煩わしくなるからだ。 ●cdではなく、pushdコマンドで移動する フォルダーを移動する場合、コマンドプロンプトでは「cd」コマンドを利用する。引数に移動したい先のフォルダー名

    pushd/popdでフォルダーを移動する
  • 【Windows 10対応】ページファイルを別ドライブに移動してパフォーマンスを向上させる

    対象OS:Windows 7/Windows 8.1/Windows 10/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2/Windows Server 2016 仮想記憶の仕組みとページファイル Windows OSでは、物理メモリサイズを超える大きなプログラムやサービスなどを実行するために、「仮想記憶」というシステムが使われている。プログラムを実行するためには、プログラムコードやデータが全て物理メモリ上に載っている必要がある。 しかし、メモリが不足する場合は、優先度の低いプログラム(のうちの一部)を一時的にディスク上の「ページファイル(スワップファイル)」へ書き出しておき(これをスワップアウトという)、後でまた実行する段階になってファイルからメモリ上へロードして(スワップイン)、実行する。 この仕組みを

    【Windows 10対応】ページファイルを別ドライブに移動してパフォーマンスを向上させる
  • @IT Tips:バッチ・ファイル中で日付をファイル名に使用する

    バッチファイル中で、数字や時刻などをファイル名として使いたい バッチファイルの中で、日付や時間をベースにしたファイル名のファイルを作成し、そこに結果を保存したいといった場合は意外と多いだろう。 例えば、システムデータやユーザーファイルをバックアップし、バックアップ先のフォルダやファイル名に、その日の日付を反映した名前を付けたいといった場合である。例えば、「systemconfig-20221221」「user1-20230501」などと付ければ、いつバックアップしたかすぐ分かるだろう。 Tech TIPSでは、バッチファイル内で日付と時刻の情報を取得して、ファイル名やフォルダ名として利用するためのテクニックを紹介する。鍵となるのは「date」「time」という変数の扱い方である。 まずバッチファイルの基から知りたいなら、Tech TIPS「Windowsのバッチファイルの基的な使い方

    @IT Tips:バッチ・ファイル中で日付をファイル名に使用する
    dotsarg
    dotsarg 2020/09/01
    コマンドプロンプトでの文字列の抽出・置き換え方法が記載されている。
  • コンソール・アプリケーションの強制終了時に処理を行うには?(Win32編)[C#、VB] - @IT

    「TIPS:コンソール・アプリケーションで[閉じる]ボタンを無効にするには?」では、コンソール・アプリケーションの後処理を実行可能にするため、[×]ボタン([閉じる]ボタン)を無効にすることにより、アプリケーションが強制終了されないようにする方法を示したが、Win32 APIを利用すれば、[×]ボタンがクリックされたときに処理を実行することもできる。 これには、Win32 APIである「SetConsoleCtrlHandler関数」を使用する。これは、コンソール・アプリケーションで[Ctrl]+[C]キーが押されたり、コマンド・プロンプトが閉じられたりする際に呼び出されるハンドラ(=特定のメソッド)を登録するための関数だ。 ハンドラは、SetConsoleCtrlHandler関数の第1引数で指定する。C言語などでは「HandlerRoutine関数」へのポインタを指定することになるが、

  • コンソール・アプリケーションの強制終了時に処理を行うには?[2.0のみ、C#、VB] - @IT

    コンソール・アプリケーション(通常、コマンド・プロンプト内で実行される)は、[Ctrl]+[C]キーにより強制終了することができるが、アプリケーションによっては突然終了されては困る場合がある。アプリケーションの終了時に一時ファイルの削除や、ログの書き出しといった後処理が必要になる場合だ。 .NET Framework 2.0のConsoleクラス(System名前空間)では、[Ctrl]+[C]キーが押されたときにCancelKeyPressイベントが発生するようになっており、そのイベント・ハンドラにあらかじめメソッドを登録しておくことにより、アプリケーションの強制終了時に後処理を実行させることができる。 CancelKeyPressイベント・ハンドラの記述と登録 CancelKeyPressイベント・ハンドラとなるメソッドは次のような形式で記述する(具体例は後述のサンプル・プログラムを参

  • 【C#】時間のかかる処理をバックグラウンドで実行するには?[2.0のみ、C#、VB] − @IT

    Windowsアプリケーションでは、時間のかかる処理(以下、重い処理)はアプリケーションのメインのスレッドとは別のスレッドで行わなければならない。これは重い処理がアプリケーションのユーザー・インターフェイス(UI)をフリーズさせてしまうからだ。 たとえユーザーがその処理の完了まで待つ必要があるとしても、その間にウィンドウの移動や最小化ができなければならないし、可能であれば処理の進ちょく状況をプログレス・バーなどで表示すべきである。 .NET Framework 2.0では、そのような処理を容易に実装するための「BackgroundWorkerコンポーネント」が新しく追加されている。これを使えばスレッドをほとんど意識することなく、重い処理を別スレッド(バックグラウンド)で実行させることができる。 稿では、BackgroundWorkerコンポーネントを利用し、進ちょく状況を表示しながら、重

  • .NETビルド・エンジン「MSBuild」使いこなし術 ― @IT

    .NET Framework 2.0では、CLR上で動作するプログラム(以降、.NETプログラム)を生成するための新たなビルド・エンジンとして「MSBuild」が搭載された。 そこで特集では、前・後編の2回に分けてMSBuildの詳細を解説する。前編では、「MSBuildとは何かについてとその利用方法」について、後編では「ビルドの手順(以降、ビルド・プロセス)を記述したMSBuild用ファイルの読み方や書き方、またMSBuildにカスタムの機能を追加して拡張する方法」について説明する。 それではさっそくMSBuildとは何かから説明していこう。 1. 「MSBuild」および「MSBuildファイル」とは? MSBuildとは、独自のXMLフォーマットのファイル(以降、MSBuildファイル)を解釈して、それに従い.NETプログラムをビルドするためのツールである。 MSBuildファイル

    dotsarg
    dotsarg 2017/08/04
    カスタムタスクの作成方法が記載されている。
  • LINQ:数値コレクション内の最小値/最大値を求めるには?[C#、VB]

    配列やコレクションに格納されている数値から最小値/最大値を見つけ出すコードを書くのは、意外と面倒なものだ。もっと簡潔に書けたらよいのにと思ったことはないだろうか? LINQを使えばそれが可能だ。稿ではその方法を説明する。 従来の書き方 例えば1から10までの整数が格納されたコレクションがあるとき、その中から最小値/最大値を見つけ出すには、これまでなら次のようなループを使ったコードを書いていただろう。 var nums = System.Linq.Enumerable.Range(1, 10); // 1~10の整数を格納したコレクション var min = int.MaxValue; var max = int.MinValue; foreach (var n in nums) { if (min > n) min = n; if (max < n) max = n; } Console

    LINQ:数値コレクション内の最小値/最大値を求めるには?[C#、VB]
  • 常に管理者としてアプリケーションを実行させるには?[C#、VB、VS 2008] - @IT

    Windows VistaやWindows Server 2008 R2、Windows 7などの最新のWindows OSでは、UAC(ユーザー・アカウント制御)というセキュリティ機構が採用されている。その環境下では、管理者権限が必要なアプリケーションを実行しようとしても、通常は失敗する。これを失敗しないようにするには、エンド・ユーザーにアプリケーションを管理者として実行してもらう必要がある(つまり、権限の昇格をしてもらう必要がある)。 ユーザーが管理者としてアプリケーションを実行する方法は、「Windows Vistaでプログラムを管理者モードで実行する」で紹介されているが、これを実際のエンド・ユーザーに手作業で行ってもらうのは現実的にはなかなか難しい場合もあるだろう。そのような場合には、常にアプリケーションを管理者権限で実行させるように設定するという手法が取れる。 これを行うには、ア

  • 継承と属性プログラミングで実現するRAD開発(3/4) - @IT

    解説 実例で学ぶWindowsプログラミング 第2回 継承と属性プログラミングで実現するRAD開発 デジタルアドバンテージ 2004/12/11 属性プログラミングの実践 新規にコントロールを作成した場合、VS.NETでのデザイン時にそのコントロールをドラッグ&ドロップで配置し、さらに[プロパティ]ウィンドウでそのコントロールのプロパティを変更して、コントロールの表示や動作をカスタマイズできるようにしておけば便利だ。.NETの言語機能である「属性」を利用すると、このような[プロパティ]ウィンドウへの表示を制御することなどが簡単にできる。以下では、属性の代表的な利用方法について、今回のサンプル・アプリケーションの開発例を通して、簡単に説明する。 ■プロパティ属性の設定 上記のDrawPanelメソッド内のコードに文字列を描画する処理があるが、その文字列にはTitleTextプロパティの値が使

    dotsarg
    dotsarg 2014/07/31
    VS 上でユーザーコントロールのプロパティ表示の制御方法が掲載されている。
  • C#ラムダ式 基礎文法最速マスター - @IT

    ■0. まえがき 稿では、小さいテーマではあるが、まだまだ慣れ親しんでいない開発者が少なくないと考えられる「ラムダ式(C#)」についての基礎文法を簡潔にまとめる。「ラムダ式、どう書くんだっけ?」という場合のリファレンスとして活用していただけるとうれしい。また、ラムダ式を敬遠しているという方は、まず稿が学び始める取っ掛かりになるかもしれない(もちろん稿の説明は充実しておらず、すべてを学べるわけではないので、じっくり学ぶには「連載:C# 3.0入門 第1回 ラムダ式」を参照してほしい)。 今年(2010年)に入ってインターネット上では、プログラミング言語の基文法を簡潔にまとめた「○○言語 基礎文法最速マスター」(以降、最速マスター・シリーズ)というブログ記事が多数投稿されている。参考までに、そのいくつかを示そう(そのほかについては、こちらを参照されたい)。 C#基礎文法最速マスター:n

    dotsarg
    dotsarg 2014/07/31
    構文などが掲載されている。
  • @IT:.NET TIPS Encodingクラスで扱えるエンコーディング名は? - C#

    稿は2003/04/11に初版公開、2008/07/24に改訂した記事を再改訂し、Visual Studio 2017でコードの動作検証、図版の追加、全般的な構成の変更などを行ったものです。 ファイルの読み書きなどで文字コードを指定したいときがある。そのために使うEncodingクラス(System.Text名前空間)のインスタンスは、どのようにして取得すればよいだろうか? また、日語独自のエンコーディングを指定するには、どのようなエンコーディング名が使えるのだろうか? 稿で整理して紹介する。

    @IT:.NET TIPS Encodingクラスで扱えるエンコーディング名は? - C#
  • ControlクラスのInvokeメソッドで匿名メソッドを使うには?[2.0のみ、C#] - @IT

    C# 2.0では「匿名メソッド」と呼ばれる機能が追加され、それまで複数のメソッドに分けて記述しなければならなかった処理を1つにまとめることができる。 しかし、Controlクラス(System.Windows.Forms名前空間)のInvokeメソッドのパラメータとして匿名メソッドを記述するとコンパイル・エラーとなってしまう。 匿名メソッドの基的な使い方 例えば、Threadクラス(System.Threading名前空間)により別のスレッドで処理を実行する場合、C# 1.xでは次のように記述していた。 void Run() { ThreadStart ts = new ThreadStart(worker); Thread t = new Thread(ts); t.Start(); } void worker() { Console.WriteLine("別スレッドで実行中"); }

  • 文字列で指定したクラスのインスタンスを作成するには? ― @IT

    連載目次 通常、クラスのインスタンスはnewキーワード(VB.NETの場合はNewキーワード)により作成するが、リフレクションの機能により、文字列で指定されたクラス名からインスタンスを作成することもできる。 稿では、インスタンス化したいクラスを含んだアセンブリがすでにロードされている場合と、そのアセンブリがまだロードされていない場合の2つのケースについて、クラス名からインスタンスを作成する方法について解説する。 すでにアセンブリがロードされている場合 インスタンス化したいクラスを含んだアセンブリがすでにディスクからロードされている場合には、まずTypeクラス(System名前空間)のGetTypeメソッドにより、そのクラスのTypeオブジェクトを得る。GetTypeメソッドでは、パラメータとしてクラス名を文字列で指定できる。 Type t = Type.GetType("インスタンス化し

  • https://atmarkit.itmedia.co.jp/fdotnet/dotnettips/374timerstimer/timerstimer.html

  • 【C#】 @IT:.NET TIPS Windowsフォームで別スレッドからコントロールを操作するには? - C# VB.NET VS.NET

    連載目次 Windowsフォームでスレッドを作成した場合、フォームやフォーム上のコントロールに対しては、そのスレッドからの操作(フォームやコントロールが持つメソッドの呼び出しやプロパティの読み書き)は動作が保証されない。稿ではそのような処理を<安全>に行うためのプログラミングについて解説する。 フォーカスの移動を行うサンプル・プログラム 例えば、Visual Studio .NET(以降、VS.NET)でWindowsアプリケーションのプロジェクトを新規作成し、次の画面のように、2つのテキストボックス(TextBox1とTextBox2)と1つのボタン(Button1)を配置したとする。

    【C#】 @IT:.NET TIPS Windowsフォームで別スレッドからコントロールを操作するには? - C# VB.NET VS.NET
  • ユーザビリティを高めるファンクション・バーの実装(前編)(2/3) - @IT

    ■コード上の重要な変化(リソース破棄の仕組み) 前述のImageListコンポーネントの追加作業により、FunctionBar.csは次のようなコードになる。 [ToolboxBitmap(typeof(ToolBar))] public class FunctionBar : System.Windows.Forms.ToolBar { private System.Windows.Forms.ImageList imageList1; private System.ComponentModel.IContainer components; public FunctionBar() { InitializeComponent(); } protected override void Dispose( bool disposing ) { if( disposing ) { if( com

  • ある座標や領域がコントロールの領域内に含まれているかを確認するには? - @IT

    .NET TIPS ある座標や領域がコントロールの領域内に含まれるているかを確認するには? デジタルアドバンテージ 一色 政彦 2005/12/02 Windowsアプリケーションでは、ある点の座標(例えばマウスの位置など)や、ある領域(四角形で示される範囲)がフォームやコントロールの領域内に含まれているかどうかを判定したいことがある。このような場合、フォームやコントロールの領域を表すRectangle構造体(System.Drawing名前空間)のContainsメソッドにより確認できる。 Containsメソッドでは、そのパラメータにPoint型(System.Drawing名前空間)の値を指定するか、もしくはRectangle型(System.Drawing名前空間)の値を指定する。Containsメソッドは、パラメータで指定した座標や領域が、対象となる領域内に収まっていればTrue

  • 数値を右詰めや0埋めで文字列化するには?[C#、VB]

    稿は2004/01/30に初版公開、2008/07/10に改訂された記事を再改訂し、C# 6.0/Visual Basic 14(以下、VB 14)の補完文字列についての記述を追加したものです。また、稿のコードは全てC# 6.0/VB 14で動作を確認しました。 数値をファイルや帳票に出力する際には、文字列の幅を固定し右詰めにしたり、0埋めで出力したりしたい場合がある。このような用途には、Stringクラス(System名前空間)のFormatメソッドを使うのが簡単だ。 Formatメソッドでは、書式を指定する「書式指定文字列」と、それに対応するオブジェクトを引数で指定する。稿では、よく用いられるであろう整数値の文字列化に絞って解説する。 また、C# 6.0/VB 14では、「補間文字列」(interpolated string)という機能を使うことで、StringクラスのForma

    数値を右詰めや0埋めで文字列化するには?[C#、VB]