Windows 7の新機能を Visual Studio 2010/VC++/MFCで使う

Windows 7の新機能(特にタスクバーまわり)をどう実装すればいいのか分からなかったので検索してみました、があまり情報がヒットしてませんでした。中で一番役に立ちそうなのは

Windows 7 Online Training | Learn | Channel 9

かな。Taskbarのところをみると、Windows7のタスクバーの新機能である、「オーバーレイアイコン」、「タスクバー上のプログレスバー」、「ジャンプリスト」、「タスクバー上のサムネイル」などをどう実装すればよいかがまとめられています。Managed(VC#/VB)、MFC、Nativeそれぞれ分かれているのでそれぞれの言語でどう実装すればいいかもわかりそうです。

SChangerを使ってWindows PCからMacのParallels上のWindowsへ接続

結論からいうとだめでした。つながるけどMacの仮想環境の上でマウスカーソルが見えなくなって実用できません。やっぱSynergy使うしかないのかな。Synergyはキーボードまわりでいろいろ不都合起こりそうなので正直さけていた。今後の課題。

Ruby/MySQLでuninitialized constant Mysql::Protocol::UNIXSocket (NameError)

ActiveScriptRubyでRuby/MySQL(pure rubyのほう)を使ってMySQLデータベースに接続しようとしたのですが、エラーが発生して接続できませんでした。

C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/ruby-mysql-2.9.2/lib/mysql/protocol.rb:212:in `initialize': uninitialized constant Mysql::Protocol::UNIXSocket (NameError)
	from C:/Program Files/ruby-1.8/lib/ruby/1.8/timeout.rb:53:in `timeout'
	from C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/ruby-mysql-2.9.2/lib/mysql/protocol.rb:209:in `initialize'
	from C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/ruby-mysql-2.9.2/lib/mysql.rb:110:in `new'
	from C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/ruby-mysql-2.9.2/lib/mysql.rb:110:in `connect'
	from C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/ruby-mysql-2.9.2/lib/mysql.rb:42:in `new'
	from dbselect.rb:4

RubyGemsを使って入れたのでバージョン不整合?などと疑い、いろいろ調べてみたのですが、接続時のホスト名を”localhost”→”127.0.0.1″に修正したら大丈夫になりました。海外のフォーラム情報によるとWindowsでもUNIXSocketを使おうとするRuby/MYSQLのバグらしいです(Error: uninitialized constant Mysql::Protocol::UNIXSocket | keyongtech

■だめ

db = Mysql.new('localhost', 'dbuser', 'dbpassword', 'dbname');

■OK

db = Mysql.new('127.0.0.1', 'dbuser', 'dbpassword', 'dbname');

UIImagePickerControllerのボタンのラベルがローカライズされない

UIImagePickerControllerのナビゲーションバーのボタンが、シミュレータの言語設定を切り替えても変わらないので悩みました。
plistの「Localization native development region」で指定した言語で常に表示されているようです。

結局、Localizable.stringsを追加して、英語・日本語でローカライズしてみたところ、UIImagePickerControllerのナビゲーションバーのボタンも切り替わるようになりました。謎です。

UIButtton setTitle:forState:ではまる

forState:の引数が論理和で一気に指定できると思い込んでいました。しかし次のように指定してもタイトルがなぜか変わらない。

[button setTitle:title forState:UIControlStateNormal | UIControlStateHighlighted | UIControlStateDisabled | UIControlStateSelected];	

しばらく悩みました。やはり一つずつ指定しないとだめなようです。

[button setTitle:title forState:UIControlStateNormal ];	
[button setTitle:title forState:UIControlStateHighlighted];	

元からそういうものかわかりませんが、だめなものはだめでしたw

iPhoneシミュレータに写真をとりこむ時にiTunesを使えるのか?

UIImagePickerControllerを使ったプログラムをテストするとき、シミュレータ内に写真が必要です。全く写真が存在しない場合、次のように表示されます。

screenshot

「You can sync photos and videos onto your iPhone Simulator using iTunes」をまともにとるとiTunesとiPhoneシミュレータを同期して写真を転送できそうなのですができませんでした。どうすればいいのでしょうか。

MacからiPhoneシミュレータ上のSafariにドロップし、クリック長押しで保存する方法だとできるみたいなので、こうするのが正解かな?

MacでiPhoneの写真を取り込む

MacでiPhoneの写真を取り込むには「イメージキャプチャ」という標準アプリを使うのが簡単です。
イメージキャプチャ

「すべてを読み込む」ボタンを押せばiPhoneの写真がすべてMacに転送されます。

PS/2・USB変換器に完璧は存在しない(?)

Mac miniにPC用のJISキーボードを接続して使っています。といっても直刺ししているわけではなく、D-Sub/PS2対応の古いKVM(PC切り替え機)を間に挟んでいるので、マウス・キーボードのUSB端子をPS2に変換→KVM→PS/2・USB変換器→Mac miniといいう本末転倒な状況にw。

これで普段は問題なく使えているのですがたまにキーボードが暴走します。PS/2・USB変換器がおかしいのかと思い別のに変えてみたのですが、今度はCtrlとCapsの入れ替えができなくなってしまいました。【連載リレーコラム】買い物山脈 PS/2→USB変換器を6製品試すによると6製品試して結局ダメみたいなので、KVM変更するしかないのかもしれません。

KVMはKVMで高い&相性問題山積みしてそうなので頭がいたいです。

MySQL Server Instance Configuration Wizardでエラー

最近MySQL 5.1をWindowsにインストールすると、MySQL Server Instance Configuration Wizardの最後でエラーがでることがたまにあります。
mysql

原因は不明ですが、一端完全にアンインストールしてから入れ直すのが経験上もっとも手っ取り早い解決方法です。Windows 7 64bitの場合以下の手順でアンインストールします。

  • プログラムのアンインストールからMySQLをアインインストール。
  • C:\Program Files\MySQLを削除。
  • C:\ProgramData\MySQLを削除。
  • C:\Windows\Prefetch\MYSQL*を削除(MYSQLで始まるファイル)

この後再度インストールしConfiguration WIzardを動かすのですが、初回にもかかわらずCurrent Root Passwordを聞かれることがあります。その場合、Current Root Passwordは空白のままにしておき、新しいパスワードを設定すればうまくいくと思います。対処療法ですがとりあえず困ってみている人はためしてみてください。

FaEdit Free/Professional 2.0.7 リリース!!

FaEdit Free/Professional 2.0.7 リリースです。

Google Chromeからリンクをドロップできるようになりました。最近Visual Studio 2008に触っていなかったのでだいぶ手間取りましたが、なんとかリリースできてホッとしています。

Vectorにも登録申請していますのでそのうち公開されると思います。Vectorも知らないうちにWebから登録申請できるようになっていて驚きました(汗。便利です。