Firefox 36/36.0.1が会社のPC(Win 8)の調子が悪い。立ち上げてしばらくはふつうに動くが、しばらくして新しいページを読み込みにいったら、そのまま帰ってこないときがある。いったん起こると、どのタブも読み込みしにいったまま帰ってこない。終了ボタンで終了させてもウインドウは閉じるが、バックグランドでプロセスが動いている。再起動するとプロファイルにアクセスできない、となるので、多分ファイルをつかんだまま。プロセスがゾンビ化していてタスクマネージャからも落とせない。Win8だから?8.1に上げたいが社内システムの関係で上げられない(泣)、うちのWin7proでは問題がない。とりあえず会社ではChromeを使っている。
まてよ今思いついたが会社はプロキシ経由なので、firefox36でリリースされたhttp2が悪さをしているかも。明日ためす。
スクリーン上のマウス座標を取得し、WPFの論理座標に変換する方法。マウス座標はデバイス座標なのでWPFで使うには論理座標に変換が必要。
System.Drawing.Point dp = System.Windows.Forms.Cursor.Position; System.Windows.Point wp = new System.Windows.Point(dp.X, dp.Y); // マウス座標から論理座標に変換 PresentationSource src = PresentationSource.FromVisual(this); CompositionTarget ct = src.CompositionTarget; System.Windows.Point p = ct.TransformFromDevice.Transform(wp);
テキストファイルTest.txtをDLL形式リソースのTest.resources.dllにコンパイルする方法。内部識別子をつけるオプション/embed:filename,specified root nameのところがミソだったのでメモ。
resgen.exe Test.txt Test.resources al.exe /t:lib /embed:Test.resources,Usernamespace.Test.resources /out:Test.resources.dll
C#で外部にあるDLL形式のresourceを動的に読み込む方法。内部に埋め込む方法やサテライトDLLを使う方法はよくあったけど、こちらの方法はあまり紹介されてなかったので、メモ。
System.Reflection.Assembly asm; asm = System.Reflection.Assembly.LoadFrom("Test.resources.dll"); string[] manifests = asm.GetManifestResourceNames(); string manifest = manifests[0].Replace(".resources", string.Empty); ResourceManager rm = new ResourceManager(manifest, asm); string text = rm.GetString("String1"); // string resource
WPFでデータバインドをコードだけで実現する方法がわかりにくかったのでメモ。XAMLだとサンプル例は見つかりやすいんだけど、コードだけの例は少なかった。WPFの主旨からはずれるのかな。
バインドされるクラス側のコード(プロパティ変更の通知あり)
Class Class1 { private int _test; public int test { get { return _test;} set { _test = value; OnPropertyChanged("test"); } } public event PropertyChangedEventHandler PropertyChanged; private void OnPropertyChanged(string name) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(name)); } } public Class1(int x) { test = x; } }
コードだけでバインドする時
obj = new Class1(1); label1.DataContext = obj; label1.SetBinding(Label.ContentProperty, new Binding("test"));
XAMLも使ってバインドする時のXAML側
<Label Content="{Binding test}" name="label1"/>
XAMLも使ってバインドする時のコード側
obj = new Class1(1); label1.
嫁のPCでChromeでブラウズ中、広告が出まくるという症状が発生。普通にインストールされたプログラムとか見てみると、I-CinemaとかSearch Protecttとかでるわでるわ。どうもホニャララ downloaderとかいう、どっかのフリーソフトをダウンロードしたときにくっついてきたようで、インストール日が横並びでした。とりあえずspybotとかで他にもないか調べておきましたが、やはり標準のdefenderだけでは無理かのう。
Windows 7でデスクトップに作った日本語名のフォルダが、デスクトップの操作でも、cmd.exeのrdコマンドからでも「ファイルが見つかりません」となり削除できなくなったので、いらいろ調べてみたら下記の方法で削除できました。
cmd.exeを立ち上げ、
rd "\?c:UsersmohmongarDesktop まで打ち込み[TAB]キーでファイル名補完を行って指定のフォルダをさがす。(mohmongarはユーザー名)
見つかれば[Enter]すると、あっさり削除できました。
普通にコマンドラインからrdコマンドにファイル名を入力した場合は「ファイルが見つかりません。」となります。パス先頭の"\?"がキモのようです。
参考にしたのはMicrosoftコミュニティのこの質問でした。パス名の先頭の"\?"はIPAの解説によると、パス名解釈のサービス機能を不活性化することで正確なフルパスを得ることができる、らしいです。なにはともあれ消えてよかった。
必要に迫られてExcel VBAで2進数表示をしたかったのですが、VBAのDEC2BINでは桁数が10桁までしか対応しておらず、そのうえなぜか値は-512~511と桁数とはなんら関連のない範囲だけ。諦めて自作しました。
Function Dec2BinEx(x As Double, column As Integer) As String Dim ret As String Dim hosu As Boolean Dim y As Integer Dim kuriage As Integer If column < 1 Then Dec2BinEx = "" Exit Function End If ret = "" If x < 0 Then x = (-x) hosu = True kuriage = 1 Else hosu = False kuriage = 0 End If Do If hosu = False Then ret = Format(x - Int(x / 2) * 2) & ret Else y = (1 - (x - Int(x / 2) * 2)) + kuriage kuriage = y / 2 ret = Format(y Mod 2) & ret End If x = Int(x / 2) column = column - 1 Loop While x >= 0 And column > 0 While column > 0 If hosuu = False Then ret = "0" & ret Else ret = "1" & ret End If column = column - 1 Wend Dec2BinEx = ret End Function
先日、修理に出したVaioですがお盆前に帰ってきていましたが、更新が遅れておりました。直前にサポートセンターから電話あり、「なんか茶色いシミがあります。水没は保証外です。」とのこと・・・。どうも子どもがこぼしていたらしいが、その直後は使えていたので忘れていたようだ。「なにもしてないのに、動かなくなった」という言葉がいかにあてにならないかを目の当たりにしました。修理代は買い直すほどではないが結構しました。とほほ。
嫁さんのノートPC”Vaio”が立ち上がらず。買ってまだ1年3ヶ月。使用中バッテリ低下の表示が出たので、(なぜか)手動で再立ち上げをしたらしいのだが、それきり立ち上がらなくなったとのこと。ACアダプタをつなげてアダプタ側のLEDは点灯しているのだが、PC側の電源/充電ランプが消えており、ウンともスンともいわない。ソニーのQ&Aにのっとって、放電処理してみても動作は変わらず。やむを得ず修理に出すことに決定。保証書を探してもみつからず、いろいろ記録をほじくり返したところ、注文したソニーストアの履歴から3年保証をかけていたことが判明したので、多分無償で治るはず。修理依頼はネット上からかけました。引取予定日の入力もさせられたので、多分ヤマトかどこかが引取にくるようです。
・・・というのが今日半日の出来事でした。大半は家に帰ったきた後の作業ですが、メール越しに放電処理とかやってもらうのは結構手間でした。