C#
前書き 最近新しくお仕事用のPCを貰ったはいいんですが、こう、端的に言って、とんでもないクソスペックです。 Windows 7は別にいいんですが、32bitだし、メモリ1GBしかないし…。今どき1GBのメモリなんてExcel開いてるだけで枯渇しますよ。 まぁ開発用ではな…
以前C#でWindows資格情報を列挙すると言う記事で試しに作成したソリューションをGitHubに公開したんですが、相当手を加えて列挙だけでなく操作も全部できるようにしたのでした。 したんですが、それを紹介する記事を書いてなかったので書きます。とは言え、…
ExcelやAccessのデータをコピペしてExcelで保存、それで「CSVを作った」と言い張る輩が日本社会には巣食っているわけですが、あんなものはCSVに対する冒涜です。 と言うのも、セル内改行されているデータが「ダブルクォーテーションで括り、セル内改行部分は…
普段C#ではほんとスクリプトみたいなちまーっとしたものしか作らないので、たまにTaskのキャンセル処理を入れようとするとどうやるのか忘れてしまっています。 と言うわけでメモしておきます。 CancellationTokenSourceを作成する 何はともあれCancellationT…
GoogleのAPI Consoleにプロジェクトを登録すると、Googleの膨大な資産で遊べたり、Googleアカウントを利用して各サービスのAPIを叩いたりすることが出来ます。 更に各言語でGoogle APIを叩くためのライブラリが無料で公開されているため、自分の好きな言語で…
AttributeからリフレクションをキメるためにTypeを渡すようなメソッドを作ることは割とよくあることなんですが、渡すTypeにジェネリクスっぽい制約(境界)を設けたくなることもあると思います。 まぁそもそも「あるインターフェースを実装している場合は特…
最近IEの右クリックメニュー拡張に手を出していて、その辺の絡みでレジストリを自分で作る必要が出てきました。 当然面倒なのである程度自動化しようと思ったら前に書いたやつが読み込みしか出来なかったので、もうStdRegProvのメソッドを全部ラップしてしま…
このTumblrの更新は自作のTumblr更新ツールから行われているんですが、既に書いた記事のタグを取得して候補に出す、なんてことをしています。 が、TumblrのAPIにはタグ一覧を取得するものがないので、とりあえずHTTP飛ばして記事を取ってくるだけ取ってきて…
やはりエンジニアたるもの、出来る限り定時で帰りたいので、PCを起動する際にHTTP経由で毎日時間を合わせようと思います。 使用するWeb API NICT(情報通信研究機構)が提供しているAPIを使用します。 タイムスタンプはどれでもどうにでもなるんですが、POSI…
もうちょっと複雑なことができるものを作りました。 [2014/07/03追記ここまで] こんなのC#じゃないわ!ただのWin32 APIよ! 前書き ちょっと訳あって資格情報マネージャを確認しようとしたらコントロールパネルから見れませんでした。多分、権限とかなんかそ…
私は諸事情により.NET4.5を使うことが出来ず、.NET4.0しか使えないので、この事象が.NET4.5でも再現するかどうかはわかりません。念のため。 事象 例えばこんなコードがあったとします。Form上にあるボタンを押すと非同期処理が走り、Labelが書き換えられま…
ListViewを使ってると「なーんでわざわざデータ用のクラスを作ったのにstringの配列なんぞに変換せにゃならんのじゃ」と結構色んなタイミングで感じることがあります。 いや別に、入れる分にはいいんですけど、取り出す際にTextプロパティ見てSubItemsプロパ…
で、「ああーそっか設定しないと出ないんだっけ」と思いながらプロパティを開いて拡張子がicoのファイルを求められて「それな」って気持ちになるのも今のところ100%です。 別にアイコンとかいらねぇしなんかあのデフォルトで設定されているよくわかんない四…
まー理屈はわかる。確かにその方がいい。ただ厄介なのは、引数がDelegateなせいでそのままラムダ式を書けないし、匿名メソッドもそのまま使えない。MethodInvokerでキャストしてやる必要がある。 //匿名メソッド版 this.Invoke((MethodInvoker)delegate() { …
書き直すのが面倒なのでコードとリンクだけはっつけておきます。 [20140210追記]ちゃんと書き直しました。 コード using System; using System.Linq.Expressions; using System.Management; namespace RegistryTest { public class Registry : IDisposable {…
なんでかわかりませんが、最近WMIばっかりやってる気がします。まぁ仕事だからやるしかないし、案外面白いので別にいいんですが、資料が全然なかったり、ばらばらだったり、VBSでのやり方しか見つからなかったり、いきなりPowerShellの話をされたり、中々し…
普通だったらコマンドライン引数として呼び出し元のモジュールが渡すべきでしょう。ただ、もう本番稼働中かつその共通モジュールを呼びだしているモジュールが山ほどある、全部直してテストするなんてとても考えられない、なんて状況がたまにあります。 そん…
結構色々な資料を読んだつもりだったんですが、TaskはDisposeメソッドを持っていると言うことを昨日初めて知って、結構驚きました。 世の中に出回っている(MSDNを含む)資料でTaskをusingに入れているものを見たことがなかったので、IDisposableも実装して…
ただの親近感のお話です。 public class DateDiff { public int Year { get; private set; } public int Month { get; private set; } public int Week { get; private set; } public int Day { get; private set; } public int Hour { get; private set; } …
おさらい タスクを作成する場合はPackage.Executables.Addを呼び出すことで可能となります。具体的に何のタスクを作成するかは「プログラムによるタスクの追加」という資料に記載されているSTOCKモニカーで指定することができます。 返ってくるExecutableク…
つらつら語っても仕方ないのでコードを出しましょう。 public static TEnum GetEnum<TEnum>(string target) { if (string.IsNullOrEmpty(target)) throw new ArgumentException("Target is null."); var type = typeof(TEnum); if (!type.IsEnum) throw new NotSupp</tenum>…
コードサンプル 下準備としてMicrosoft.SqlServer.ManagedDTSを参照設定に追加しないといけないんですが、.NETタブからは見つけられなかったので、C:\Windows\assembly\GAC_MSIL\配下を探してみてください。 using Microsoft.SqlServer.Dts.Runtime; namespa…
SQLを動的に生成してOLE DB接続でSELECTを発行するものを作っていたんだけど、そのSQL実行時にある特定のエラーが出た時は別の方法で再試行したい、という案件。 とりあえずエラーが起きた時に返ってくるのはOleDbExceptionみたいなので、catchしてみよう。 …
以下のコードであれば、trueになる。 var foo = Tuple.Create("hoge", "piyo"); var bar = Tuple.Create("hoge", "piyo"); if (foo.Equals(bar)) { Console.WriteLine("true"); } else { Console.WriteLine("false"); } 内部的にEqualsが呼ばれていれば何で…
SQL Serverからデータをとってきたいんだけど、ある特定のユーザでWindows認証によるログインを済ませないと目的のデータが引っ張ってこれない。SQL認証であれば接続文字列にちょちょっと加えればそれで済むんだけど、Windows認証だとそうもいかない。 まぁ…
private static FormUrlEncodedContent CreatePostContent(params Expression<Func<Object, Object>>[] exprs) { var contents = new List<KeyValuePair<string, string>>(); foreach (var expr in exprs) { var obj = expr.Compile().Invoke(null); if (obj == null) continue; if (obj is Byte[]) { contents.</keyvaluepair<string,></func<object,>…
誰かが新たにデファクトスタンダードになるような帳票ソフトを開発してくれればそれで済むんですが、仕方ないのでそう言ったものが出てくるまでなんとかExcelでやり過ごしていくしかないのです。 と言うわけで、Excel-DNAなる面白いおもちゃがあるのでExcel…
じゃあVisual StudioでExcelのアドイン作ればいいんじゃね?と言うことで、Excel-DNAで遊びましょう。 どんなことが出来るとか、どうやって導入するとか、どんなメリットがあるかとか、そう言うのはもう先人が書いているので適当に読んでください。日本語リ…
極々稀に西暦→和暦の変換をしなきゃいけないことがあるんだけど、割と面倒だってことだけは知っているのでちょっとまとめておく。 Utilなクラスを作れば十分だと思うが、ありとあらゆるところで出てくる場合は拡張メソッドでもいいかもしれない。 とりあえず…
IEnumerable<dynamic>を継承するクラスを作成しようとするとビルド時に動的なインターフェイス ‘System.Collections.Generic.IEnumerable<dynamic>’ を実装できません と表示される。 dynamicで受け取るオブジェクトがGetEnumeratorを実装していれば普通にforeachでいいんだけ</dynamic></dynamic>…