MAPIでAppointmentを作る場合にTimeZoneの指定をする時のメモ。TimeZoneの元オブジェクトはApplication下にあるTimeZonesコレクションから参照する。
Using Outlook = Microsoft.Office.Interop.Outlook; Outlook.Application app = new outlook.Application(); Outlook.AppointmentItem apoItem = app.CreateItem(Outlook.OlItemType.olAppointmentItem) as Outlook.AppointmentItem; Outlook.TimeZones tzs = app.TimeZones; apoItem.StartTimeZone = tzs["Tokyo Standard Time"];
くわしくはHow to: Create an Appointment That Starts in the Pacific Time Zone and Ends in the Eastern Time Zoneを参照。
Dドライブに割り当てていたデータドライブが調子が悪くなった。CrystalDiskInfoで調べると不良セクタが増えてて「注意状態」。バックアップは定期的にしたので、そちらをメインに回して、バックアップ用の代替えHDDをAmazonで準備する。(急いでないのにその日!に届いた!)。確認のためいったんドライブを外して再立ち上げすると、立ち上がらない!いろいろ調べるとどうもWindows10インストール時に、C:ではなく、Boot mgrがD:にインストールされたようだ(そういや いつのまにかD:にbootフォルダがあった。)SATAの順番の関係か?最終的にはbcdbootをつかって解決。windows10のインストールディスクから緊急用コマンドプロンプトを立ち上げて、
bcdboot C:\Windows /l ja.JP
です。その前に、diskpart でいろいろ調べたりしましたが。
C#でEnumの列挙子の名前を表す文字列をenum値に変換する方法のメモ
enum Test { alpha, beta, gamma } Test ret; bool flag = Enum.TryParse<Test>("alpha", true, out ret); return ret; // == Test.alpha
c#で任意の型TがType型の変数tで与えられている場合のインスタンスを作る場合の方法。またはその配列のインスタンスを作る方法のメモ
// 任意型tのインスタンスの作成 Type t = typeof(***); var tInst = Activator.CreateInstace(t); // 型tの配列t[]のインスタンスの作成 Type t = typeof(***); Type ta = Type.GetType(t.toString()+"[]"); Int num; var tInst = Activator.CreateInstace(ta, num); // または Type t; Int num; var tInst = Array.CreateInstace(t, num); // 追加 var tInst = Activator.CreateInstace(t.MakeArrayType(1), num);
もう終わってしまいましたが、先週末にSteamでFar cay 4が半額セールだったのでぽちりました。FPSは苦手なので弾があたりません・・・
昔のDLLがBitmapしか対応してないので、System.DrawingのBitmapをWPFのBitmapSourceへ変換する。
[System.Runtime.InteropServices.DllImport("gdi32.dll")] public static extern bool DeleteObject(IntPtr hObject); public BitmapSource BmpToWPFBmp(System.Drawing.Bitmap bitmap) { IntPtr hBitmap = bitmap.GetHbitmap(); BitmapSource source; source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(hBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); DeleteObject(hBitmap); return source; }
G9Xで撮った画像をNexus5へWIFIでコピーしようとしてつまずく。どうもカメラ側をWIFIアクセスポイントにするとうまくいかない。ネットワーク接続まではうまくいくがカメラ接続で反応が返ってこないか、タイムアウト。試行錯誤の結果、Nexus5側をアクセスポイント(テザリングモード)にしてやるとうまくいった。Nexus5側はAndroid6.0.1でアプリはCamera Connect。アプリのコメントにもアプリをアップデートしたらつながらなくなった等の意見が散見されたので、アプリのせいか?AndroidのVerのせいか?
ブログ用に写真を撮ることがおおいですが、いつものスマホ(Nexus5)のカメラの性能はいまいちなので、持ち歩き用に1インチコンデジG9Xを買いました。1インチ品としては過去他にもRX100(M3とかじゃない)を対抗で考えてましたがやはり古いし、キャノンのキャンペーンでバッテリがもう1個もらえるので、トータルでは安上がりと考え、これを選びました。加えてキタムラで古いデジカメを下取り値引きしてもらったのでさらにお得。性能はこれからいろいろ撮って確かめます。1つ前の「さくら」はこれで撮りました。
[WPF]c#でGridViewColumnの列幅を最適化する場合のメモ
GridView gv = view.View as GridView; gv.Columns[1].Width = 0; gv.Columns[1].Width = Double.NaN;
WPFでUIスレッドとは別のスレッドからUIを変更するときの作法。いつもやりかた忘れるのでメモ。formの場合のInvokeRequiredとinvokeに当たる。状況に応じてInvokeをBeginInvokeで非同期にするのもあり。VSでCheckAccessが入力補完対象にならないのはなぜだろう。
if (mycontrol.Dispatcher.CheckAccess()) {
mycontrol.Content = "test";
}
else {
mycontrol.Dispatcher.Invoke((Action)(() =>
{
mycontrol.Content = "test";
}));
}