2014年08月一覧

C# ウインドウメッセージによるプロセス間通信

C# プロセス間通信をしてみたのでメモ。

正道を行くならIPCチャンネルを使う選択が正しいのかもしれないが、面倒くさいしよく分からないので比較的簡単に実装できるウインドウメッセージを用いた方法にしてみた。

ただしこの方法には次の制限アリ。

  1. 同じ PC 上のプロセス間のみ
  2. GUI のあるアプリケーション

ウインドウ宛てにメッセージ送るわけなので当然といえば当然。

やりかたそのものは検索すれば出てくる方法とほぼ同じ。
取り回しが良いように DLL にしてみた。

サンプルプロジェクトの構成

まず Visual Studio のソリューションにプロジェクトを3つ作成。

プロジェクト名 種類 参照設定 備考
Server Windows フォームアプリケーション HogeHoge
Client Windows フォームアプリケーション HogeHoge,Server スタートアッププロジェクト
HogeHoge クラスライブラリ System.Windows.Forms

送受信まわりを簡単な DLL(HogeHoge) にして Server・Client から参照する。

Client で Server を参照設定しているのは、実行フォルダに Server.exe を作成する為だけの目的なので本来は必要ない。HogeHoge の System.Windows.Forms 参照はウインドウメッセージを扱うので必要。

Server にはテキストボックスを1つ、Client にはボタンを2つ追加すれば準備完了。
続きを読む



C# で JSON を処理する

久しぶりに C# で JSON を処理してみたので備忘録。

JSONを処理する(現在)

ググってみたところ、使い勝手の言いパーサーがあってすこぶる楽ちんになっていた。

DynamicJson

Dynamic 型を利用しているので、C# 4.0 (Visual Studio でいうと 2010 以降かな?)が必要。

使い方も簡単。

まず上記ページからファイルをダウンロード。(今日現在の最新版 DynamicJson_1.2.0.0.zip)

解凍して中にある DynamicJson.dll を参照設定に追加するか、DynamicJson.cs を自分のプロジェクトに追加すれば使えるようになる。

今回は外部ファイルを必要としなくてもいいように DynamicJson.cs を使ってみた。
(実行時に怒られるので System.Runtime.Serialization も参照設定に追加しておきましょう。)

そしてサンプルコード。
続きを読む


web cron サービスの代替えとして AppFog を使ってみる (Ruby編)

前回より cron っぽくするべく、今度は Ruby でやってみる。

基本的には公式のドキュメントに解説があるのだけど、

Task-scheduling

私のような Ruby 素人にはよくワカランし忘れそうなので備忘録。

実行コード

今回も「5分おきに特定のURLにアクセス」にチャレンジ。

実行スクリプト名 [app.rb]

require 'rubygems'
require 'rufus/scheduler'
require 'net/http'

scheduler = Rufus::Scheduler.new

scheduler.every '5m' do
	Net::HTTP.get('HOGE.com', '/hoge.php')
end

scheduler.join

Ruby の入門サイトあたりを見ればなんとなく理解できる。
続きを読む


web cron サービスの代替えとして AppFog を使ってみる (PHP編)

無料や格安のレンタルサーバーだと cron が使えない場合が多い。

そんな時は web cron サービスを使ったりする。

ところが間隔に制限があったり不安定だったりと残念な思いをするコトがしばしば・・・

そこで PaaS をある程度までは無料で使えちゃう AppFog を代替えにしてみた!

という貧乏くさい備忘録です。。。

前準備

とりあえず AppFog のアカウントを取得。

AppFog

SignUp から必要項目を入力するだけなので詳細は割愛。

次にソースコードをデプロイ(アップロード)する為に必要な専用ツール「af」を使えるようにする。

AF CLI Tool

Windows の場合は Ruby Installer for Windows をインストールして、スタートメニューの [Ruby x.x.x-pxxx(-x64)] から [Ruby コマンドプロンプトを開く] を起動させる。

開いたコマンドプロンプトに、

gem update --system
gem install af

こんな感じで入力すれば準備は完了。
続きを読む


スポンサーリンク