カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

HTMLソースを取得する VisualC#

System.Net.WebClientクラスを使用してHTMLソースを取得します。

//参照を追加
using System.Net;

・単純なダウンロード

//WebClientの作成
WebClient wc = new WebClient();

//文字コードを指定(Shift_JIS)
wc.Encoding = Encoding.GetEncoding(932);

//HTMLソースをダウンロードする
string source = wc.DownloadString(url);

//後始末
wc.Dispose();

・Timeout設定ができるようにするには

//文字コードを指定(Shift_JIS)
Encoding enc = Encoding.GetEncoding(932);

HttpWebRequest req =
    (HttpWebRequest)WebRequest.Create(url);

req.Timeout = 3000;

WebResponse res = req.GetResponse();

//文字コードを指定(Shift_JIS)し、HTMLソースをダウンロードする
Stream st = res.GetResponseStream();
StreamReader sr = new StreamReader(st, enc);

source = sr.ReadToEnd();

//後始末
sr.Close();
st.Close();

文字コードについてはこちらをご覧ください。
[テキストファイルの読み込みと書き込み]

1,210 views

C# ユーザー設定の落とし穴

C#で開発をしていて設定部分で少しハマったので書き留めておきます。

ユーザー設定を保存したりできるようにするためにProperties-Settings.settingsを使うことがあると思いますが、
設定が必要なくなったので全ての設定を削除したときに、予期せぬところでエラーが発生することがありました。

発生したエラーも起きるはずもないところなので頭を抱えていましたが、
再構築みたいなものがないかな?と探していたら「同期」ボタンがあるのを発見。
これを押せば解決しました。

1,307 views

VisualC#でSQLServerへの接続

VisualC#でSQLServerに接続し、データを取得するサンプルです。
割と簡単に取得できますので、是非やってみてください。

まずはSqlClientの参照が必要です。

using System.Data.SqlClient;

接続の設定をします。

private string GetConnectionString()
{
    var builder = new SqlConnectionStringBuilder()
    {
        DataSource = "サーバーのIPアドレス",
        InitialCatalog = "データベース名",
        IntegratedSecurity = false, //User ID および Password を接続文字列中に指定するか
        UserID = "ユーザーID",
        Password = "パスワード"
    };

    return builder.ToString();
}

続きを読む…»

2,111 views

コンピュータの再起動とシャットダウン

コンピュータの再起動とシャットダウンする方法をご紹介します。

コンピュータの再起動

int flag = 0;
flag = ShutdownLibWrap.Reboot;
flag |= ShutdownLibWrap.ForceIfHung;
ShutdownLibWrap.DoExitWindows(flag);

シャットダウンのキャンセル

何か処理を実行しているときに、Windows Update等で勝手にシャットダウンされないようにしたいときに便利です。

フォームのLoadイベントに以下を記述します。

// アプリケーションが閉じられる時のイベントを追加
SystemEvents.SessionEnding += new SessionEndingEventHandler(SystemEvents_SessionEnding);

シャットダウンを検知したらキャンセルします。

private void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e)
{
    e.Cancel = true;
}
3,639 views

OS起動時にアプリケーションを自動的に実行する

OS起動時にアプリケーションを自動的に実行するには、通常ならスタートアップに登録しますが、
アプリケーションから登録したい場合は、レジストリキーに登録する必要があります。

登録するキーは以下のようになります。

起動時に毎回実行する場合
Software\Microsoft\Windows\CurrentVersion\Run

次回起動時に1度だけ実行する場合
Software\Microsoft\Windows\CurrentVersion\RunOnce

レジストリキーを開きます。
第1引数は設定するキーのパス、第2引数は書き込み可能な状態で開くかどうかを指定します。

Microsoft.Win32.RegistryKey regkey =
    Microsoft.Win32.Registry.CurrentUser.OpenSubKey(
    @"Software\Microsoft\Windows\CurrentVersion\RunOnce", true);

キーに値を設定します。
第1引数はアプリケーション名、第2引数は実行ファイルまでのパスです。

regkey.SetValue(Application.ProductName, Application.ExecutablePath);

キーを閉じます。

regkey.Close();

続きを読む…»

7,702 views