C# アクセシビティなど実験色々

┗ グローバル名前空間
┗ 名前空間(namespace)
┗ 型(クラス)空間

5つのアクセシビティ

PUBLIC: 制限されない
PROTECTED: クラス内部から + 派生クラス内部から
INTERNAL: 同一ログラムから可
PROTECTED INTERNAL: 
PRIVATE: クラス内部から

デフォルトのアクセシビティ

型(クラス): INTERNAL
型のメンバ: PRIVATE

付けることのできるアクセシビティ

型(クラス): public、internal

┣ 型のメンバ: public、protected、internal、protected internal、private
┃ ┃
┃ ┣ インターフェースのメソッド: 定義側は表記不要。実装側はpublicのみ
┃ ┃
┃ ┗ 抽象メソッド: private以外は大丈夫 (継承元、継承先で同じアクセシビティにする必要がある)
┃   ┗ 実装側でoverrideする必要あり。

┗ 構造体の子メンバ: public、internal、private

アクセシビティについて実験

private・protectedはクラス内部からしかアクセスできない。インスタンス生成して class.method()などの様に直接使えない。protectedは派生クラスの内部からもアクセスできる。

継承はあくまでもクラス(ひな形の)コピーであってインスンタス生成後にお互いに影響を与えない。

通常、クラスを入れ子にはしないが、クラスのスコープは越えられない。アクセシビティは誰に見せるかを定義するもので、メンバは、アクセシビティで許可した範囲からメッセージを受け付ける。

クラス定義領域では、メンバ変数同士での演算はできない。staticなクラスなら可能。クラス定義領域はインスタンス生成に評価されるため。

コンストラクタをprivateにするとインスタンス生成できないクラスになる。
基底クラスのコンストラクが実行され、次にサブクラスのコンストラクタが実行される。
上の例では、”20″のあと”This is BaseClass”と表示される。

C# VBA タイムカードアプリ

以前作ったタイムカードアプリ。氏名などはフォームに直接。

Form1.cs

Form2.cs

DataCheck.cs

C#でmdbに登録してエクセルで抜き出して集計

C# 型情報取得

C# Webサーバー

サーバ1

サーバ2

C# 付箋紙プログラム

以下は未使用。

Program.cs

Form1.cs

画像の場合

 

ここまで未使用。

サイズ変更の作りがおかしかったので、以下、修正版。画像を表示しておくため位置をxmlにシリアライズ。

Progam.cs

Form1.cs

これでデスクトップに画像を表示しておくことができる。

以下はテキスト用にForm1だけさらに修正。デスクトップに表示させておいてメモとして利用
Form1.cs

PHP IPアドレス確認用POST

クライアント

あるいは、

Winならタスクスケジュール、ubuntuならCRONに設定しておくと、
定期的にWan側のIPがレンサバに表示できるので、そのWan側のIPを使って、
SoftEtherをダイナミックDNSではなく、IP直打ちもできる。
xxx.xxx.xxx.xxx/192.168.xxx.xxxのような感じで入力する。

post.php

s.css

C# DirectShow

DirectShow導入

以下のコマンドを走らせると、QuartzTypeLib.dllができる。
“C:\Program Files\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\TlbImp.exe” “C:\windows\System32\quartz.dll”
できたら、参照設定に直接追加する。

ちなみに、DirectShowでmp4を再生する場合、
ffdshow
をインストールする。
DirectShowフィルタのみチェックでOK。

Haali Media Splitter
をインストールする。
Disable MPC internal Matroska splitter
のチェックを外す。

GraphEdit

DirectShowを確認できるソフトだが、Microsoft SDKs\WIndows\V7.1\Bin\
には見つからなかった。最終的にGraphStudioNextというのが近いらしく、これを利用することに。

非公式だが、以下からだとgraph editが行けるらしい。
http://www.digital-digest.com/dvd/downloads/showsoftware_graphedit_141.html

とりあえず動画の再生

C# Seleniumの利用

Selenium Client & WebDriver Language BindingsのC#をダウンロードする。

解凍した中身をコピーする。

C:\Windows\Microsoft.NET\Framework\v4.0.30319

csc.exeがある場所と同階層にcsc.rspがあるのでと追記する。

/r:Selenium.WebDriverBackedSelenium.dll

/r:ThoughtWorks.Selenium.Core.dll

/r:WebDriver.dll

/r:WebDriver.Support.dll

.Netの標準dll以外で参照設定したサードパーティのdllは実行ファイルと実行ファイルと同フォルダ内に配置する。

Firefox以外は作成した実行ファイルと同じ場所にDriverが必要。

The Internet Explorer Driver Serverから32 bit Windows IEをダウロードする。

解凍した実行ファイル(IEDriverServer.exe)は作成した実行ファイルと同一階層におく必要はないが、パスが通ってないとダメ?ためしに、c:\置いたけどエラーがでる。

C:\Windows\Microsoft.NET\Framework\v4.0.30319に置くか、作成した実行ファイルと同一階層なら大丈夫だった。

 

C# FFmpegにコマンド投げる①

カット

コンバート

C# Listをソート