月別アーカイブ: 2013年2月

[C++/CLI] モニタの解像度をプログラムから変更する

たまに C++/CLI の記事などを。Visual Studio 2012 からは C++/CLI もインテリセンスが使えるようになったので、C# と win api を媒介する C++/CLI のプログラミングもばっちりですね…って、2010 の時に出してほしかったよなぁ。ちなみに、2012 では C++/CLI でフォームアプリケーションが作れない(ことはないけど、テンプレートに入っていない)ので、そのままフェイドアウト…なのか? それとも C++/CX と融合するのかは謎なところです。 ■解像度とモニタを指定する 解像度自体は、ChangeDisplaySettingsEx 関数を使いますが、複数のモニタがある場合はデバイス名が必要にあんるので、あらかじめ EnumDisplayDevices で取得しておきます。 本来は、モニタのリストとかを取ればいいのです … 続きを読む

カテゴリー: C#, C++ | コメントする

最強.NET開発PCを作るよ(その2)

最強.NET開発PCを作るよ(その1) http://www.moonmile.net/blog/archives/4116 の続き。 開発用 PC を構築したいと思ったときに、各氏に相談した条件として「メモリは 64GB」にしたい、というのが筆頭でした。円安になって、輸入もののメモリとか HDD とかがバンバンと高くなる折だったのですが、ここでケチってしかたがないし。かといって、どのくらいのメモリが「開発にとって快適になる程度なのか」はいまいちわからなかったのです。 BTO パソコンの場合は、ブラウザで見ながらポチポチとメモリの容量を挙げて「ああ、これだと全体が高くなるから、この程度でいいか」ってな具合に、価格比で計算してしまいがち。あるいは、マザーボードなどの制限から、積めるメモリはこれが限度、ってな具合に当時買うときの限界いっぱいまで、ってのが普通です。 で、今回の場合は、Windo … 続きを読む

カテゴリー: 最強.NET開発PC | 3件のコメント

最強.NET開発PCを作るよ(その1)

去年の pp-club のイベント絡みの飲み会で「プログラマ用の開発PCとはなどんなスペックか?」という話があって、作ってみたい~と年末年始ごろに夢にまで見ていたのですが、リンクスインターナショナル社の阪口さんと、デザインラボの加藤さんのご協力もあって、晴れて最強.NET開発PCの自作にこぎつけました。 .NET 開発専用パソコンを考える(´・ω・)ス その1 全体とメモリ|WEB系技術電脳日記 http://ameblo.jp/konica/entry-11476853250.html あたりも参照にしてください。 私の場合、自作PCってのはDOS/Vの頃ぐらいしかなくて、そのあとはちょっとしたメモリ増設とHDDの追加ぐらい。当時、オーバークロックが流行っていたのですが、手を出したことがありませんでした。1年前ぐらいから、duck さん のようなオーバークロッカーという方もいて、まさしく … 続きを読む

カテゴリー: 最強.NET開発PC | コメントする

[Win8] スリープをした後にパスワードを入れなくてもログインできるようにする

Windows 8 の場合、Microsoft アカウントに紐づけるかローカルアカウントを設定するってことで、パスワードを入れておくのが普通です。特に Microsoft アカウントの場合は、パスワードなし、ってのができないので、ログインのときはセキュリティ的にパスワードが必須になります。 が、いざ、タブレット PC で使うと、スリープした後のパスワード入力ってのはちょっと面倒なんですよね。ソフトウェアキーボードを出して、ぽちぽち打ってもいいのですが、ハードウェアのキーボードでは打ちやすいけど、MS のソフトウェアキーボードではちょっと打ちづらい(数字が混じっているときは、いちいちモードを変えないといけないとか)ので、結構不便。 あと、2歳児にタブレットPCを遊ばせているときに、ふとスリープ状態になってしまって、パスワードが入れられなくて泣かれる、というパターンもあります。 そうなんです。 … 続きを読む

カテゴリー: windows 8 | コメントする

[WinRT] Storyboard とユーザーコントロールでモーダル風ダイアログを作る

花札ゲームで、役ができたときに数秒間だけダイアログを出そうとしているので、その実験です。 ■Blend で Storyboard を作る ダイアログを開くときの sbOpen と閉じるときの sbClose という二つの Storyboard を作っておきます。 本当は枚数がいろいろなのですが、簡単にするために5枚だけ配置しておきます。タネやカスが成立したときは、別のユーザーコントロールを使うようにしようかなと。 長いですが、Blend で作った storyboard を晒します。 花札は、右から左に流れる感じで出てきます。1枚1枚ちょっと違うタイミングで出てくるとゲームらしいですよね。あと、役の名前が出るときにちょっとだけ黄色から白に色が変化します。このあたりグラフィックの「アクセラレーター」が有効に働くように注意しないとダメなのよで、たとえば、フォントの大きさを変えようとするとパフォー … 続きを読む

カテゴリー: C#, WinRT, 花札ゲーム | コメントする

[WinRT] Storyboard.Clone を作る

アニメーションの場合は、 Storyboard の場合は、Blend でちまちま編集して動作確認 プログラムコードに組み込んで、動作確認 もう一度、Blend に戻って修正。 またまた、プログラムコードに組み込んで、動作確認 っていう繰り返しになるので、Blend でデザイン、Visual Studio でビルドしてからシミュレーターで確認、ってのが定番…になると思うのですが、どうなんでしょう?そんなに複雑な Storyboard は作らないのかな? ■Storyboard.Clone を拡張メソッドで作る リフレクションとか使って正確に書こうとも思ったのですが、さほど複雑な構造でもないし、入れ子になるクラスは決まっているのでだらだらと150行ほど書きます。 ■アニメーションの開始点と終了点を変更する拡張メソッドを作る アニメーションをする対象と、開始終了点を指定するのですが、 … 続きを読む

カテゴリー: C#, WinRT | コメントする

[WinRT] XAML タグを XmlReader.Load を使ってコピーする

WPF の XAML には Clone メソッドがあって、Storyboard とか UI のタグをコピーできたのですが、WinRT の XAML には Clone がありません。継承関係とかすっきりしてメソッドの整理もされいるので、同じ XAML とはいえ挙動が異なる…のが微妙なところですが、まあ、すっきりした分 XAML の描画は高速になっているんだろうなッ!!! と実験してみたいものです。当時、非力…でもないマシンを使っても WPF アプリは結構重かったわけで、では、現在の PC ならばどうでしょうってのが疑問なところですが、描画として XAML と C++/CX の DirectX が直結しているのか否か?そのうえで、GPU は有効に使われているのか?(なんか、CPU のパワーだけを使っている感じがするので)ってのを確かめたうえで、XAML の描画部分を C … 続きを読む

カテゴリー: C#, WinRT | コメントする

View を遅延更新する MVVM を作ってみる

MVVM のメリットは、Model のプロパティを変更することによって、View の画面の更新が自動的にされる、というものがあります。まぁ、他にもメリットがあるんだけど、View のもろもろの構造は関係なく、好きなように Model を構築することができる(場合によってはデータベース周りに特化させても ok)ってのが良いのですが、その反面、Model のプロパティへの更新が、そのまま View に伝達されてしまうために、その「即時性」が、かえって View の描画の重さになってしまうってのが、デメリットといえばデメリットです。描画速度が遅くならない程度に、頻繁に Model を更新しなければよいだけの話なんですが…ふと、C++/CX のゲームアプリの説明では、描画のためのデータの更新は、描画をするタイミングまでためておいて、フレームレートの間で描画できる処理をする、というのがあ … 続きを読む

カテゴリー: C# | 1件のコメント

連続したアニメーションをつなぐために、await/async を使う

連続したアニメーションをつなぐために、Completed イベントでつなげる | Moonmile Solutions Blog http://www.moonmile.net/blog/archives/4071 の続きで、storyboard の Completed イベントで連続させるのではなくて、async/await を使ってつなげてみます。 ■開始 Image と 終了 Image を渡してアニメする関数を作る モーダルダイアログを作ったときと同じように、Completed イベントの発生待ち(アニメーションの完了待ち)をします。Task.Delay() をループさせて待つので、ダサいと言えばダサんですが。他によい方法があったら、また検討するということで。 Task.Run に渡すラムダ式に async がついているという不思議なコードですが、これで動くのだからたいしたものです … 続きを読む

カテゴリー: C#, WinRT | コメントする

連続したアニメーションをつなぐために、Completed イベントでつなげる

今、寄り道になってしまっているのは、WinRT でモーダルダイアログを出す場合には async/await が必須っぽいのと、アニメーション自体は非同期で動くのだから、それを連続させる場合には async/await を使ったほうが便利ではないか?という思惑と、ならば、Awaitable パターンを実装してみるのが良いのでは?というのと、MessageDialog は IAsyncOperation を実装していて…ってところで、非同期のパターンを同期っぽく書くために await を連続させれば、非同期処理を手続の連続で「わかりやすく」書けるのでは?っての確認のためです。ええ、何を言っているかややこしいのですが、これから一手ずつ試していきます。 ■参考資料はここから 自分の資料がてら、だらだらと。 非同期メソッドの内部実装 (C# によるプログラミング入門) http://uf … 続きを読む

カテゴリー: C#, WinRT | コメントする