2011年12月27日火曜日

Telerik FileExplorerのエラー

現象:Telerik FileExplorerを使用したWebページで以下のエラーが表示される。
Invalid Characters In Folder Name

原因:Telerik FileExplorerのInitalPathが無効だと表示されるエラーでした。

2011年12月16日金曜日

文字列に特定の文字列が含まれているかを調べるには?

文字列に特定の文字列が含まれているかを調べるには?(Contains編)

string str = "ろうにゃくなんにょ";
Console.WriteLine(str.Contains("にゃく")); // 出力:True
Console.WriteLine(str.Contains("にゃん")); // 出力:False


ある文字列の部分文字列として特定の文字列が含まれているかどうかを調べるには、Stringクラス(System名前空間)のIndexOfメソッドを用いればよい。

 IndexOfメソッドは本来、ある文字列において、パラメータで指定した検索文字列が最初に見つかった位置を得るためのものだ。もし検索文字列が見つからなかった場合には、戻り値は-1となる。よって、IndexOfメソッドの戻り値が0以上かどうかをチェックすれば、文字列が含まれているかどうかを調べることができる。


static bool HasString(string target, string word) {
if (word == "")
return false;
if (target.IndexOf(word) >= 0) {
return true;
} else {
return false;
}
}

XML

実体参照・文字参照

XMLで使われる特殊な文字は実体参照で表す。

また、文字コードを使って表すことも出来る(文字参照)。

どちらも「&」で始まり「;」で終わる。


実体参照 & &
&lt; <
&gt; >
&apos; '
&quot; "
文字参照 &#n; 十進数で文字コードを指定
&#xh; 十六進数で文字コードを指定

2011年12月9日金曜日

C# 改行

C# 改行

@"\r\n"

.NetでDiff 実装

いろんな場所で必要になってきた、Diff

以下の場所に.Netライブラリとしてありました。
http://www.codeproject.com/KB/recipes/diffengine.aspx

2011年12月8日木曜日

LINQ to SQL でクエリを直接実行

var db = new HgeHoge(@"c:\Hoge.mdf");
var r = db.ExecuteQuery<table>("SELECT * FROM Fuga WHERE Id ={0}", 5);

元ネタ
http://blogs.wankuma.com/rti/archive/2009/09/16/181295.aspx

Group Byとか、直接SQLを記述したい場合などに使えそう。

windows installer にアクセスできない

TOP > itやweb/情報系ソフトやWEBサービスなど, pcerror/パソコンのエラー対応 >
インストールエラー発生の原因と対処、windowsインストーラサービスにアクセスできませんでした…とは?

Inst_errorインストールエラー発生。「windowsインストーラサービスにアクセスできませんでした」というエラーメッセージ。新しいアプリケーション(プログラム)をインストールできない状況だ。これはどういうことか?これはWindowsインストーラのレジストリが壊れている可能性が高い。

Windowsインストーラは便利なプログラムだが、何かの拍子にインストール処理に失敗すると、ファイルとレジストリが不整合を起こす(レジストリが壊れる)らしい。それ以後Windowsインストーラが起動時にエラーを発生するようになる場合がある。
Windowsインストーラを使用してアプリケーションをインストールすると、レジストリにアプリケーションのインストール情報が書き込まれ、%SystemRoot%\Installerという隠しフォルダ内に、Windowsインストーラ・パッケージやWindowsインストーラ修正パッケージが保存される。

何らかの理由で、これらの隠しファイルとレジストリ情報が不整合性になることがある。この状態になると新しいアプリケーションがインストールエラーになりインストールできなくなってしまう。
また、最近のアプリケーションは、レジストリなどを正しく設定しないと実行できないことが多いため、Windowsインストーラが使えなくなるとアプリケーションも使えないことが起こりえる。

対策としては、Windows インストーラを登録解除してから再登録する。

Msiexec_unregister



※以下はマイクロソフトオンラインサポートより(アプリケーションのインストール時にエラー メッセージ "Windows インストーラ サービスにアクセスできませんでした" が表示される)

方法 1 : Windows インストーラを登録解除してから再登録する

1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。

2. 次に、MSIEXEC /regserver と入力し、[OK] をクリックします。この操作を正しく実行しても、処理が行われていないように見えるか、または砂時計が一瞬表示されることがあります。このコマンドを実行したら、操作は完了です。

3. Windows インストーラ ベースのアプリケーションを再実行します。

2011年12月7日水曜日

UniPaasで、Windows制御

UniPaasで、Windows制御

閉じるボタンを無効にするだけなら、
メインプログラムのタスク前に

アクション 式 CallDLL('USER32.EnableMenuItem', '4444', CallDLL('USER32.GetSystemMenu', '444', CallDLL('USER32.GetAncestor', '444', WinHWND(0), 2), 0), 61536, 2)


ついでにこれを書いておけばシステムメニューの閉じるも消せます。

アクション 式 CallDLL('USER32.DeleteMenu', '4444', CallDLL('USER32.GetSystemMenu', '444', CallDLL('USER32.GetAncestor', '444', WinHWND(0), 2), 0), 6, 1024)

アクション 式 CallDLL('USER32.DeleteMenu', '4444', CallDLL('USER32.GetSystemMenu', '444', CallDLL('USER32.GetAncestor', '444', WinHWND(0), 2), 0), 5, 1024)

2011年12月6日火曜日

IE8以降のタブセッション

はじめに

IE8は、今までのIE6/IE7とは異なり、IEのアイコンから新規にウインドウを起動しても、最初に起動したウインドウとセッションが共有されてしまいます。

* IE8


IE6/7の考え方は通用せず、上記のようなやり方であればいずれもセッションを共有します。プロセスが違うウィンドウであっても。

そもそもIE6/7であればウィンドウの数よりプロセスの数が多くなることはありませんでしたが、IE8の場合はプロセスがひとつであっても、タブを増やすと複数のプロセスが出来たりします。

IE8でセッションを共有しない新しいウィンドウを開きたい場合は、「ファイル」→ 「新規セッション」でウィンドウを開きます。

[Browser]IEのウィンドウごとのセッション共有・非共有 はてなブックマーク - [Browser]IEのウィンドウごとのセッション共有・非共有

このため、IE8を新規セッションで起動するには、ユーザ側で意図的に新規セッションを開始するようにしないといけません。IE8を新規セッションで起動するには、以下の2つの方法があります。
IE8を新規セッションで起動する(メニューから)

IE8のメニューから「ファイル」-「新規セッション」で新規ウインドウを立ち上げると新たにセッションが開始され、既存のウインドウとはセッションが別ものになります。

f:id:replication:20100517233322j:image
IE8を新規セッションで起動する(コマンド)

また、IE8のexeファイルをnomergeオプションつきで起動することで、新規セッションで立ち上げることができます。

IE8のインストールディレクトリへ移動

cd C:\Program Files\Internet Explorer

IE8をnomergeオプションをつけて起動する

iexplore.exe -nomerge

【一般的なWindow別セッションの実現方法】

1.コマンドプロンプトから、「iexplorer -nomerge」起動する。

 ※-nomergeオプションを付けてIE8を起動すると、既にIE8が起動していてもCookieは引き継ぎません。

2.IE8の「ファイル」→「新規セッション」を選択して別ウインドウを起動する。

どちらの場合でもユーザ操作が必要であるため、運用を徹底するしか方法はありません。

IE8でのWindow別セッションの実現 (プログラミングワークショップ) はてなブックマーク - IE8でのWindow別セッションの実現 (プログラミングワークショップ)