WPFのDataGridで行単位でダブルクリックを受け取る。
<datagrid.rowstyle> <style targettype="DataGridRow"> <EventSetter Event="MouseDoubleClick" Handler="DataGridRow_MouseDoubleClick"/> </style> </datagrid.rowstyle>
最近、Win10を立ち上げてしばらく使っていると、変なオレンジ色のアイコンが一瞬現れて消えることあった。一瞬なんで後からタスクマネジャーを立ち上げてもどのアプリが起動したかもわからない。こっちが忘れてたころに出るので画像キャプチャも間に合わない。こんな情報ではネットで調べることもできなぁ、といいつつ「オレンジ色 アイコン 一瞬立ち上がって消える」を画像検索でググるとそれらしい画像が出た!。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12185208977
Yahoo!の知恵袋も侮れない。
調べるとこのアイコンの持ち主はDJCUHost.exeで、LogicoolのマウスとかのUnitfy接続用のアプリケーションらしい。そういえば最近、LogicoolのMouseを新調した。でもなんで起動直後じゃなく途中であらわれるか不明だ。
本サイトのWordpressの表示が乱れていることに気が付き、どこかファイルが壊れたかといろいろ四苦八苦したところ、どうもWordpressプラグインのCrayon Syntax HightlighterがPHP7.3で誤動作するのが問題のようだ(2019年版 Crayon Syntax Highlighterのエラー)。そういやレンタルサーバー側から先日7.2から7.3に上げると案内がきていた。Crayonは高機能なSyntax Hightlighterなので使っている人も多いようだが、すでにメンテされなくなって3年くらいたっている。代わりのプラグインを探したが、書式がコンパチというのは見当たらない。とはいえいまさら古いコンテンツをすべて書き換えるのも面倒なので、いろいろ探したところGithubで有志の方がメンテナンスされていたようだ(Release Crayon Syntax Highlighter & PHP 7.3 fix · Crunchify/crayon-syntax-highlighter · GitHub)。Wordpressのプラグインサイトには乗らないので、手動でアップデートが必要だがとりあえずこれでしのぐ。
ひさしぶりにゲームにはまる。発売当初よりちょっと興味があったのだが、始めの時はあまり評判がよくなかったのでスルーしていた。その後、大型更新後にましになったとYoutubeのゲーム実況とかでよく見るようになり、そこへきてSteamセールで半額となったのでそのときポチってしまった。飛んで、歩いて、掘って、組立てて、と基本的に作業ゲーなのだが、延々と続けている。こんなにずっとゲームしているのはSkyrim以来だ。あとCivlizationに近いものがある。あれも止め時がわからない。一つミッションをこなすたびに、次々とやることが増えていく。というか自分で増やしていく。お使いゲーだとどこかで飽きてくるのだが、まだ飽きない。早く寝ないと。
c#でSqlite をつかっていた際、特定の条件で64bit数値が32bit化されることを発見。普通のselectでは発生せず、
create table ... as select ...
で発生。
System.Data.SQLite Net.1.0.108で発生。SQLite version 3.24.0.のコマンドラインツールからの実行では発生なし。python 3.5.1 sqlite3 2.6 で発生なし、なので、.Netライブラリ上でのみ起こるっぽい。
元のテーブル
create table test (id integer not null unique primary key, value integer not null);
に下図のような値が入っていた時、
create table tmp as select id,value,value+0 from test;
を実行したら、
となり、value欄の値が化けているのがわかる。-4394967295=0xffffffff付近で化けていることから、64bitが途中で32bit化しているっぽい。value+0となんらかの演算を行ったvalue+0カラムは正常な値になっている。
ちなみにselectだけの
select id,value,value+0 from test;
の場合、問題は起こらない。
TS/M2TSデータから音声データ(AC3)を抽出する方法は以下の通り。
参考はTMPGEnc Video Mastering Works5でDTS-HD Master Audioの音声を抽出する方法 : とあるヒロップの日常など。感謝!。tsMuxeRはtsMuxeR - Transport Stream Muxer - My Ubuntu Corner of the Web、eac3toはeac3to - audio conversion tool - Doom9's Forum、eac3toguiはEAC3toGUI 2.00 | Software - Digital Digestあたりを探してください。
tsMuxeRを使って、TS/M2TSからAudioデータを抽出する
EAC3toGUIを使って、dtsをac3に変換する
C#でFormsを使ってプログラムする機会があって調べたメモ。メニューのあるアイテムの下層をひとつのグループとみなし、そのグループ中で一つだけチェックが入る前提で、メニューを選択した際にチェックをいれる処理を統一したもの。親menu1の下に子menu1_menu1,menu1_menu2,... があるとして、各メニューの処理時に同じCheckMenuExclusivelyを呼び出すことで排他的にチェックマークが入る。当然チェックを入れる以外の処理は別途必要。たぶん似たようなものはそこらに転がってるけど、子メニューを示すメソッドがItemsではなくDropDownItemsであったことため、しばし悩んだのでメモしておく。
void CheckMenuExclusively(object sender, ToolStripMenuItem upper) { foreach (ToolStripMenuItem item in upper.DropDownItems) { if (object.ReferenceEquals(sender, item)) { item.Checked = true; } else { item.Checked = false; } } } private void menu1_menu1_Click(object sender, EventArgs e) { CheckMenuExclusively(sender, menu1); }
ひさしぶりにWindowds formsのプログラムをC#で作成中にコントロールにデータバインドをしようとしたら、ListBoxなど一部のコントロールでは<INotifyPropertyChangedを使った更新が効かないことが分かったので、BindingListで使用したのでメモ。(というか本来ListboxにバインドできるのはSelectedIndex ,SelectedItem ,SelectedValue,Tagだけらしい)。
ここでBindingListを使わずにtestclassを直にDataSourceにバインドすると、PropertyChangedがnullとなる。
t = new testclass(); t.display = "one"; testdata = new BindingList<testclass>(); testdata.Add(t); listBox1.DisplayMember = nameof(display); listBox1.DataSource = testdata;
ついでによく忘れるので、INotifyPropertyChangedの書き方。
using System.ComponentModel; public class testclass : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(string propertyName = "") { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } public string _display; public string display { get { return _value; } set { if (value != _display){ _display= value; NotifyPropertyChanged(nameof(display)); } } } }
ほかにもいろんなやりかたがあるらしい。参考はこのページ「データ バインディング - .
さくらレンタルサーバがLet's encryptによるSSL化に対応したので、導入してみました。コントロールパネルのドメイン設定から選択するだけなのでかなり簡単です。https化で転送速度が遅くなるかなとも思いましたが体感速度は変わりありません。常時httpからhttpsへ転送するのは.htaccessを修正、Wordpressの場合はプラグインのほうでできるようです。ただの備忘録サイトなのでSSL化するメリットはないのですが気分です。
ようやくPCが落ち着いたので備忘録として記録しておきます。先日PCでネットサーフィン中に異臭がしてきました。最初は何の匂いわからず、どこともなく見回していましたが、ふとモニタ画面が一瞬暗転して、すぐ元にもどったのを見て「あ、これPCじゃね?」とはたと気づいたので、すぐ電源を断ちました。PCケースを開けてみると、煙こそありませんがやはりここが一番臭い。おそるおそる再度電源をいれてみましたが、ファンは回るが2度と立ち上がりませんでした。合掌。どこが壊れたのか、いろいろ予備部品を使って確認してみましたが、電源やビデオカードやHDDやメモリは問題なさそう、おそらくマザーかCPUだろうとまではしぼれましたが、ここからは交換部品がなく、別のマザーかCPUをもってきて試すしかありません。マザーはGIGABYTEのGA-Z68P-DS3で、CPUはi5-2300と6年前(たぶん震災前に近所のPCデポで購入)に組んだ自作PCで、いまとなってはこれに合うパーツを新たに買うのもなんなので、いっそのことマザーごとく組直すこととしました。それにしても壊れる時はいきなりくるもので、たまたまPC操作中に異臭→PCと気が付きましたが、レンダリング中とかで夜中に動かしっぱなしの時だったらけっこうやばかったです。それにこの時の異臭が服についてその日は取れなかったです。新マザーの話しはまた今度。