Sample

クライアントからアップロード

/// <summary> /// ファイルをアップロードする /// </summary> class FileUploader { string _uploadUrl; string _postInputName; Encoding _encode; CookieContainer _cookies; /// <summary> /// 文字コード、アップロードのアクションを指定してImageUploaderのインスタンスを初期化</summary>…

Ctrl+AでtextBoxを全選択する

windows fromなんてオワコンデフォルトで出来なかったんだっけtextBoxのKeydownイベントに登録 private void Form1_Load( object sender, EventArgs e ) { textBox1.KeyDown += ( eventSender, eventE ) => { if ( eventE.Control && eventE.KeyCode == Keys…

SecureString

いまいち使いどころがわからないSecureString メモリ上にずっとパスワードを保持しないといけない場合に使うのだろうか。でもstringに変換しないと使えない(他のIFへパスワードを渡す)場合は意味あるの? とりあえず使い終わったstringには空文字でも入れ…

ニコニコ動画の動画をダウンロードする

エコノミー症候群なんでlowならlow消えるまでdl待つとかやりたいがために作った。WebClient.Downloadつ使いたかったけど。とりあえずこんなもんで。汎用性一切なし的な何か。ポイントはhttp://flapi.nicovideo.jp/api/getflvとかhttp://ext.nicovideo.jp/api…

SMTP AUTH LOGIN Cram-Md5認証をC#でやる

SMTP AUTH LOGIN Cram-Md5認証 public static void ConnectCramMd5( string server, int port, string user, string pass ) { var client = new TcpClient(); client.Connect( server, port ); var stream = new SslStream( client.GetStream() ); stream.Au…

最大数以上のアイテムを追加すると古いものから削除されるリスト

newとかあまり使いたくはないんだけど。すべてをラップするのはめんどいんで。 public class LimitedList<T> : List<T> { private int _maxItemCount; public int MaxItemCount { get { return _maxItemCount; } set { _maxItemCount = value; if ( Count > _maxIt</t></t>…

モニター、ディスプレイの一覧(解像度含む)取得

ディスプレイクラス class Display { [DllImport( "user32.dll" )] static extern bool EnumDisplaySettings( string deviceName, int modeNum, ref DEVMODE devMode ); [DllImport( "user32.dll" )] static extern bool EnumDisplayDevices( string lpDevic…

Hey, Scripting Guy! DN を finance.fabrikam.com/Users という形式に変換する方法はありますか

Hey, Scripting Guy! DN を finance.fabrikam.com/Users という形式に変換する方法はありますかあれ?なんかちがくね? オレの求めてるものと違う・・・。てわけで。 On Error Resume Next Set objSysInfo = CreateObject("ADSystemInfo") strUser = objSysI…

文字列配列から数値の配列へ変換

var line = new[]{ "1", "3" }; var intArray = Array.ConvertAll( line, new Converter<string, int>( s => int.Parse( s ) ) );</string,>

Google Calendarで日本の祝日を取得

前にちょこっと書いたものの実装編 struct Holiday { public DateTime Date; public string Title; public override string ToString() { return Title + ":" + Date.ToString("yyyy/MM/dd"); } } class Calender { private const string requestUrl = "http…

正規表現で指定したタグ以外を取り除く

指定したタグ以外を取り除く Regex reg = new Regex( "</?(?!table|link|p|br|tr|th|td|a{1}(?!\\w+))\\w+(\\s+.*?)?>", RegexOptions.IgnoreCase | RegexOptions.Singleline | RegexOptions.Compiled );

Array Copy

1,2次元配列のコピー拡張的な何か。配列のCopyToってなんで戻り値で返してくれないんだろうっていつも思ってる。 static class ArrayExtension { public static T[] CreateDeepClone<T>( this T[] source ) { if ( !typeof( T ).IsValueType ) { throw new A</t>…

多重起動抑制

コードに埋め込みたくなかったんで。 うーん。いまいちだな。 終了するときに開放だしあんまり気にしなくてもいいかと安易に思ってみたり。 class MultiInstanceBlocker { static Mutex _mutex; static public void Activate( string key ) { if ( IsActivat…

SMTP スタブ

とりあえず25番に反応してくれる人がいないと先に進まなかったので。SmtpServer 接続を待ち受ける人。 namespace SmtpStub { class SmtpServer { TcpListener _listener = new TcpListener( new IPEndPoint( IPAddress.Any, 25 ) ); List<MailProcessor> _processores = new</mailprocessor>…

Serialize

class SerializeHelper { static public void ExportObject<T>( string key, T o ) { XmlSerializer serializer = new XmlSerializer( typeof( T ) ); if ( ConfigurationManager.AppSettings[key] == null ) { throw new ArgumentException( key + " を key と</t>…

DOS で yyyyMMddHHmmss

日本語環境 set tempTime=%time: =0% set strdate=%date:~0,4%%date:~5,2%%date:~8,2%%tempTime:~0,2%%tempTime:~3,2%%tempTime:~6,2% 英語版 set tempTime=%time: =0% set strdate=%date:~10,4%%date:~4,2%%date:~7,2%%tempTime:~0,2%%tempTime:~3,2%%tempT…

powershell でユーザー取得

よく忘れるので。 $targetAccountName="ユーザーアカウント" $root = New-Object DirectoryServices.DirectoryEntry( 'LDAP://rootDSE' ); $dn=$root.defaultNamingContext.Value; # DC=jp,DC=xxxx,DC=net $entry = New-Object DirectoryServices.DirectoryE…

暗号化、復号化

文字列の暗号化ってよくやるよね。X.509 証明書は以下 方法: X.509 証明書で XML 要素を暗号化する | Microsoft DocsAESを使用した暗号化。 インスタンスの方はいらないかも。 /// <summary> /// 暗号化を行う機能を提供します。 /// </summary> public class Encryptor { /// <summary> </summary>…

フォルダのアクセス権限を設定する。

ファイルならFileInfoで。 C:\private\test にローカルユーザーの aaa をフルコントロールで追加する場合。 DirectoryInfo di = new System.IO.DirectoryInfo( @"C:\private\test" ); DirectorySecurity ds = di.GetAccessControl(); ds.AddAccessRule( new …

NTFS代替データストリーム(ADS)一覧取得

NTFSに設定されている代替データストリーム(ADS)の一覧を表示したい。 いろいろ調べた結果 NtQueryInformationFile を使うのがよさげらしい。 dsofile.dll とかもあったんだけど、欲しい情報が取れなかったんですべてを取れるわけじゃないっぽい。 ネタ元 …

ドメインコンローラー内のオブジェクトを列挙

所属ドメコンで権限がある場合。 所属ドメコン内のオブジェクトを列挙。 参照設定:Com の「Active DS Type Library」と「System.DirectoryServices」が必要。 static void Main( string[] args ) { try { DirectoryEntry rootEntry = new DirectoryEntry( "…

BinaryFormatterで大量データを扱うと例外が発生。

ある程度の大きさを持ったオブジェクトをシリアライズしてみた。 System.Runtime.Serialization.SerializationException:内部配列を Int32.MaxValue 要素を超えて展開することはできません。 えっ!?相変わらず意味不明のエラー吐きやがる。 途中まで作られ…

Transaction 確認。

ちょっと話題に出た+忘れかけてたので再確認してみた。参考 トランザクション スコープを使用した暗黙的なトランザクションの実装 とか。 static void Main( string[] args ) { TranTest test = new TranTest(); test.TestExecute(); Console.WriteLine( "-…

Console WriteLine で色を変える。

そういや、xp あたりからエスケープシーケンスがデフォルトでは使えないんだっけ、とか思いつつ。 (NT以降の32BitのWindowsらしい)Console クラスは static だったので拡張できず残念。 出来るように言語拡張してくれないかな。 public static void ConsoleW…

.net でのエクセル読み込み

エクセルを読み込む。(未テスト)Openで全部の引数指定とかめんどいからクラス作ってみた。 ついでなんでちょっと機能拡張。まずは参照設定。 COM のタグから。 Microsoft Excel 11.0 Object Library WorkbookHelper /// <summary> /// ワークブックを簡易に扱えるラ</summary>…

NTPクライアント

ソースまとめ [クラス] TimeSynchronizer 時刻補正 NtpClient NTP 通信用クライアント NtpPacket NTP 通信で使用するパケット NtpPacket /// <summary> /// NTP 通信で使用するパケットを提供します。 /// </summary> public class NtpPacket { const long COMPENSATING_RATE_32…

読み取り専用配列を作るには。

ReadOnlyCollectionが有効。 public class ReadOnlyCollection<T> : ReadOnlyCollectionBase { public ReadOnlyCollection( IList<T> sourceList ) { InnerList.AddRange( (ICollection)sourceList ); } public T this[int index] { get { return (T)InnerList[ind</t></t>…

MagicPacket

マジックパケット。いわゆる Wakeup On LAN(WOL)ブロードキャストで投げる。 届かないときは諦めが肝心。MagicPacket仕様 0xff * 6 MAC * 6 class MagicPacket { public MagicPacket() { } public void SendPacket( string macString ) { byte[] mac = new b…

javascript プロパティ一覧表示

function showProperties(obj) { var s = ""; for (var i in obj) { s += i + "," } s = s.substring(0, s.length - 1); alert(s); }

ユーザの偽装。

偽装処理 作ってた当事はいろいろ思うこともあったが、今は思い出せない。 とりあえずコードのみ。 /// <summary> /// 偽装処理を行うためのスコープを提供します。 /// </summary> public class ImpersonateScope : IDisposable { /// <summary> /// 偽装ユーザ。 /// </summary> private readonly…