[C#] シンボリックリンクかどうか判断する

ファイルの属性がReparsePointだとシンボリックリンクらしい。

参考サイト

FileAttributes 列挙体 (System.IO)
https://msdn.microsoft.com/ja-jp/library/system.io.fileattributes(v=vs.110).aspx

[C#] シリアルポートの名前とデバイス名を列挙する

デバイスマネージャに一覧されているシリアルポートを取得したい。

devman

サンプルコード

ポート名だけならSystem.IO.Portsを使うと簡単。

デバイス名も取得したければWMI(Windows Management Instrumentation)を使う。

参考サイト

すべてのシリアル・ポートの名前を列挙するには?[2.0のみ、C#、VB] - @IT
http://www.atmarkit.co.jp/fdotnet/dotnettips/523serialportnames/serialportnames.html

シリアルポートの名前取得
http://axion.sakura.ne.jp/blog/index.php?UID=1278233577

C#でCOMポート番号とシリアル接続機器名を同時に取得する方法 – 真実の楽譜(フルスコア)
http://truthfullscore.hatenablog.com/entry/2014/01/10/180608

[C#] LinkLabelコントロールからウェブページを開く

LinkLabelコンポーネントが使える。見栄えはクリッカブルリンクに見えるけど、クリックされた時の振る舞いは自前で実装する必要がある。

サンプルコード

動作

クリック前の体裁

linklabel1

クリック後の体裁

linklabel2

参考サイト

LinkLabelコントロールを使ってWebページを開く: .NET Tips: C#, VB.NET
http://dobon.net/vb/dotnet/control/linklabel.html

[Visual C++] CString::LoadString() 文字化け対策

今更MFCでも無いが、随分前に書かれたMFCベースのアプリをビルドして実行したらステータスバーが文字化け。

現象

ステータスバーの日本語が文字化けする。

リソースの文字列テーブルでID_FIELD_ATRIBUTEに”属性”と定義しているのだけど、ステータスバーには”??”と表示される。

調査

MFCのソースを見ると、ステータスバーの表示文字列はCString::LoadString()関数でリソースから取得している。

Win32 APIを直接呼び出す

::LoadStringで取得した文字列は化けない。MFC依存の問題っぽい。

プロジェクト設定を変えて試す

環境: Windows 7 Home Premium 64bit
プロジェクト: MFCダイアログベースアプリ
(1) Win32/共有DLLでMFCを使う/マルチバイト文字セットを使用する – NG
(2) Win32/共有DLLでMFCを使う/Unicode文字セットを使用する – OK
(3) Win32/スタティックライブラリでMFCを使用する/マルチバイト文字セットを使用する – NG
(4) Win32/スタティックライブラリでMFCを使用する/Unicode文字セットを使用する – OK
(5) x64/共有DLLでMFCを使う/マルチバイト文字セットを使用する – NG
(6) x64/共有DLLでMFCを使う/Unicode文字セットを使用する – OK
(7) x64/スタティックライブラリでMFCを使用する/マルチバイト文字セットを使用する – NG
(8) x64/スタティックライブラリでMFCを使用する/Unicode文字セットを使用する – OK

Unicodeだと化けない。MBCS依存の問題っぽい

ネットで情報収集

似たような現象に直面した人を発見。

Re: loadstring fails in MBCS encoding
http://www.tech-archive.net/Archive/VC/microsoft.public.vc.mfc/2005-11/msg00510.html

1. You have to tell CString::LoadString to use another codepage. This can be
done by calling SetThreadLocale before calling CString::LoadString. Make
sure to revert to the system’s default codepage as soon as possible,
otherwise other parts of the program might not work properly.

解決法

以下の追加で解決。

[ffmpeg] 透かし画像を移動させる

ネットで配信する動画保護の悪あがき(笑)。動画に入れる透かし動画を移動させることで透かしが切り取られ難くしたい。たとえば透かし画像を3分ごとに右下→右上→左上→左下と移動させたい。それもFFmpegを使ってバッチでやりたい。どうするか。

ネットで調べたらドンピシャの記事を発見。

Adding a dynamically positioned watermark to a video via ffmpeg – Stack Overflow
http://stackoverflow.com/questions/12400845/adding-a-dynamically-positioned-watermark-to-a-video-via-ffmpeg

やり方としては、透かし画像が移動するだけの透過動画を作成しておき、それと本編を合成するというもの。

用意するもの

  • 動画本編 source.mp4
  • 透かし画像 (右下) wm1.png
  • 透かし画像 (右上) wm2.png
  • 透かし画像 (左上) wm3.png
  • 透かし画像 (左下) wm4.png

手順

それぞれの透かし画像から3分(180秒)ずつの動画を生成。

結合して透かしが移動するだけの12分(3分x4箇所)の動画を生成。

もし本編の尺に足りなければ繋ぎ合わせて長くしておく。たとえば本編が20分だったら2つ繋ぎ合わせて24分あれば足りる。

本編と合成。オプションは適宜追加。

これにイントロやエンディングのクリップを繋ぎ合わせれば完成。

[CSS] CSS3生成支援サイト

便利なツールはありがたく使わせてもらおう。

総合
CSS3.0 Maker | CSS3.0 Generator | CSS 3.0 Generator | css3 generator
http://www.css3maker.com/

角丸ボックスの定義
CSS Border Radius Generator
http://border-radius.com/

各種ボタンの定義
CSS3 Button Generator
http://css3button.net/

各種グラデーションの定義
Ultimate CSS Gradient Generator – ColorZilla.com
http://www.colorzilla.com/gradient-editor/

ブラウザ互換性
Can I use… Support tables for HTML5, CSS3, etc
http://caniuse.com/

[CSS] 基本メモ: セレクタいろいろ

N番目に来る要素を選択する

div要素の子要素のうち2番目に来るものがp要素だったら

div要素の子要素のうち2番目に来る任意の要素

順番指定のバリエーション

  • 2 – 2番目
  • odd – 奇数番目
  • even – 偶数番目
  • 3n – 3の倍数(3,6,9,12,…)
  • 3n+1 – 3の倍数+1(4,7,10,13,…)

div要素の最初の子要素

div要素の最後の子要素

div要素の子要素が1つだけある場合

ある要素のうちN番目に来る要素を選択する

div要素の子要素のp要素のうち、2番目のもの

div要素の子要素のp要素のうち、最初のもの

div要素の子要素のp要素のうち、最後のもの

div要素の子要素のp要素のうち、p要素が1つだけあれば

要素の状態から選択する

テキスト型の入力項目でdisabledのもの

ラジオボタン型の入力項目でチェックされているもの直後にあるラベル

参考サイト

スタイルシートリファレンス(目的別)
http://htmq.com/style/index.shtml#sel

[CSS] 基本メモ: 属性セレクタ

サンプル

属性が一致したものだけ赤で表示する

バリエーション例

属性がhttpsで始まるもの(前方一致)

属性がjpで終わるもの(後方一致)

属性にbingを含むもの(部分一致)

参考サイト

属性セレクタ – CSSの基本書式 – スタイルシート入門
http://www.webword.jp/cssguide/basic/index9.html

属性セレクタ-スタイルシートリファレンス
http://htmq.com/selector/attr.shtml

属性(値)セレクタ-スタイルシートリファレンス
http://htmq.com/selector/attrvalue.shtml

属性(値候補)セレクタ-スタイルシートリファレンス
http://htmq.com/selector/attrvaluet.shtml