C#で試験対策用のアプリを作成(1)

CISCOの試験用の勉強はPDFの問題集を行ったが、答えを番号を覚えてしまったのが敗因だと思う。

自分で勉強用のアプリを作成して勉強することにする。

問題をランダムに出せたり、回答履歴を覚えて苦手を出したりできるように拡張していくことにする。

■開発環境:Visual Studio Community 2017 

■開発言語:UWP(C#)

■プロジェクト名:WorkBook

■ターゲットと最小プラットフォーム:初期状態のまま

 

GitHubでソース及び設計書を管理することにする。

CISCO試験

2017年6月1日でCCNPが失効するので、更新のために300-208を受けてみる。

受験料が¥36,000円!消費税が2,880円なので、合計は¥38,880円

5/28日落ちました・・・

はーーーーーーーーーーーーー

切ない

Visual Studio ショートカットキー

Visual Studio 2012~2017で使える便利なショートカットキー

 

  • コメント化(Ctrl K+C)
  • コメント解除(Ctrl K+U)
  • 定義に折りたたむ(Ctrl M+O)
  • アウトラインの中止(Ctrl M+P)
  • アウトラインの展開/折りたたみ(Ctrl M+M)

資格試験

資格によっては有効期限があり、失効するものがあるので、自分の資格を棚卸する。

 

まずはOracle。学生時代、お金が無い中自腹でOracle Master Platinum8iを2001年に取得し、その後Oracle10gのGOLDを2006年に更新してから、止まっている状況。

 

Oracle Login - Single Sign On

 

次はCISCO。東京に出てきてから色々資格を取って、会社をクビになっても他の処に入れるよう、DBとプログラムの他にもネットワークとセキュリティの勉強をしようと2007年にCCNA,CCNPを取得した。2017/6/1に失効するので、早めに更新しなくては。

 

Cisco.com Login Page

 

昔から時々受けていたが、ここ数年は全然受けにも行っていない・・・

情報セキュリティ、システムアーキテクト、データベースを取得

 

  • PMI

数年前からPMの仕事が多くなってきたが、なかなか難しくPMPの資格を2013年に取得。2016年に更新したが、慌ててPDUを取ったので、2019年までには計画的に取らないと。

 

PMI Login

 

仕事でテストが(も)うまく出来ないため、勉強のために取得した。ネットでは試験結果等のエビデンスが無い・・・。まあ情報処理試験も無いが、規模も違うし、メールアドレスと紐付けて欲しいな。

 

  • その他

Javaのプログラミングの試験や、昔SQL Serverの資格などを取ったが、MSのはアカウントが忘れてしまった。

まあこの年になると、資格を持っていてもあまり意味ないけど。

 

とりあえず以上。

 

 

WEBクライアントの自動化について

特定のWEBサーバと通信するクライアントのアプリを作成しようとした時の、パケットキャプチャの仕方をまとめる。

とりあえずFiddlerのバージョンが4(ver.4.6)になっていたので、情報をまとめる。

 

起動したら、いきなりキャプチャを始める。

  • 自マシン以外からもキャプチャする方法

メニューの[Tools]-[Telerik Fiddler Options]を選択し、[Connections]タブ内の[Allow remote computers to connect]にチェックを入れる。

Fiddlerを再起動する。

ウイルス対策ソフトのファイヤウォールを無効にする。

自マシン以外のプロキシ設定を変更する。(ポート8888)

それでもうまくいかない場合は、しばらく待つとOKになった。(謎)

 

  • リストの削除

全選択(Ctrl+A)で削除(Delete)可能。

 

一覧のリストの[Host]欄が「Tunnel to」になっているのはSSL通信をしていてパケットの中身が見えない。

[Tools]-[Telerik Fiddler Options]を選択し、[HTTPS]タブ内の[Caputure HTTPS CONNECTs]と[Decrypt HTTPS traffic]にチェックを入れる。ダイアログが表示されたら[YES]を選択。

証明書を入れないと通信できないがiPhoneでは証明書を入れられなかった。

iPhoneからhttp://のIPアドレス>:8888/でアクセスして証明書をインストール。

※FiddlerRoot.cerをメールで送ってもインストールできなかった。

 

  •  特定のURLだけをキャプチャ

画面左下の[Capturing]をクリックし、システムプロキシとしてのキャプチャを停止し、個別にプロキシ設定をすればOK。

 他にも[File]-[Capture Traffic]やF12キーでもOK

  • デコード

「Response body is encoded.Click to decode.」と黄色で表示されていて、文字化けしている場合は、クリックしたら正しく表示される。

あと、ツールバーの「Decode」ボタンを押していると(青枠になる)、それ以降の通信はデコードされて表示される。(既に通信済みのログはデコードされない)

 

  • 特定のセッションをハイライト

「QuickExec」画面左下(Webセッションリストの下)にある黒いテキストボックス。

ここに「?キーワード」を入力すれば、ホスト名やURLにキーワードが入っている個所がハイライトされる。

 

  • リクエストの内容を書き換える

とりあえずここまで

2017年

やりたいこと

  • 英語を勉強して海外旅行
  • 資格試験の更新
  • VisualStudioで毎週プログラム作成
  • 子供の勉強を教える

アプリケーションの位置移動

マルチモニタを使っているときなど、アプリケーションがどこに行ったか見えない場合がある。

強制的にアプリケーションの位置を変更するツールC#で作成。

ソースは以下。(XAMLは省略)

    public partial class MainWindow : Window
    {
        //MoveWindow関数の宣言
        [System.Runtime.InteropServices.DllImport("user32.dll")]
        private static extern int MoveWindow(IntPtr hwnd, int x, int y,
            int nWidth, int nHeight, int bRepaint);
 
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private void btn_Click(object sender, RoutedEventArgs e)
        {
            System.Diagnostics.Process[] plist = System.Diagnostics.Process.GetProcessesByName(ProcessName.Text);
            foreach (var p in plist)
            {
                p.WaitForInputIdle();
                MoveWindow(p.MainWindowHandle,
                    GetValue(PositionX, 0),
                    GetValue(PositionY, 10),
                    GetValue(SizeX, 100),
                    GetValue(SizeY, 200),
                    1);
 
            }
        }
 
        private int GetValue(TextBox inputVal, int initVal)
        {
            int result;
            if(int.TryParse(inputVal.Text, out result))
            {
                return result;
            }
            return initVal;
        }
 
    }