Hatena::ブログ(Diary)

ウィモバの日々

2017-03-29

UWPアプリのボタン等に表示しているアイコンをプログラムで変更する方法

絶賛迷走中の俺、参上!なんだか謎のプログラム意欲が出てきてUWPアプリの作り方を勉強中。

今更Windows10Mobileの誰も望んでいない劣化パクリなアプリを作ることに意味はあるのか分からないけどがんばるぞい!


ということでUWPで画面に表示しているボタンのアイコンの変更方法についてのメモ。

xaml上にボタンを配置する場合には

<AppBarButton Icon="Refresh" x:Name="buttonRefresh" Tapped="buttonRefresh_Tapped" />

といったようにIcon=〜でアイコン名を指定することで予め用意されているシンボルアイコンが表示される。

それをプログラム中に画面の状態なんかによって変更したい場合には

buttonRefresh.Icon = new SymbolIcon(Symbol.Cancel);

buttonRefresh.Icon = new SymbolIcon(Symbol.Refresh);

というようにシンボルアイコンを指定し直せば切り替わる。

定義されているアイコン一覧は下記にまとまっている。

https://msdn.microsoft.com/en-us/library/windows/apps/hh770557.aspx


シンボルアイコン以外にも独自のアイコンを作って表示も出来るようだけどそれはまた別の話。

2017-03-10

Visual Studio 2017を導入してみた(DL〜インストール)

さて、Windows10Mobileを手に入れたわけだけど、そうすると次は何をするかというとー?

当然、W10Mソフトを開発出来る開発環境の構築だよね!(えっ)

ということで、VisualStudioを手に入れちゃおう!

奇しくも、数日前にVisualStudioの2017が正式公開されたばかり。

前世代のVS2015は安定してそうだけど、せっかくなので最新版を試してみたいよね!?

そんな新しいモノ好きなアナタ達はここからインストーラダウンロードしてみよう。

Downloads | Visual Studio Official Site

https://www.visualstudio.com/ja/downloads/


自分は木っ端開発者なので、無料版の「Visual Studio 2017 Community」をインストールすることに。

無償ダウンロード」を押下すると、インストーラファイル vs_community__1140864216.1489166447.exe が

ダウンロードされるので実行しよう。2:27〜

f:id:rideonshooting:20170311022859p:image:w360

インストーラを実行するとこんな画面が出るので、しばらく待つ。

5分ほど待つと、下記のようにインストールする項目の選択画面が出てくる。

f:id:rideonshooting:20170311023708p:image

自分は、とりあえずはユニバーサルアプリ(W10M用アプリ)が作れる環境と

今までやってきた.NETアプリC++ネイティブアプリが作れればいいかなー、と一番上の3個を選択したけど

Unityのゲーム開発や、Xamarinクロスプラットフォーム開発等をしたい人は画面をスクロールして

該当項目にチェックを付けよう。

なお、オプションを増やしすぎると50GBを超えるのでSDDやHDDの残量に気を付けよう。

f:id:rideonshooting:20170311025032p:image

[インストール]を押すとインストールダウンロード)が始まるんだけども、これがまた時間がかかる。

自分の選んだ10GB分だけでも低速回線だと4時間くらいかかった・・・

大容量を導入するので光回線じゃないと厳しいかも。

長い闘いを終え、インストールがようやく終わると[起動]ボタンが現れるので押すと開始画面に。

f:id:rideonshooting:20170311132212p:image:w360

開始画面ではMicrosoftアカウントのサインインを促される。

サインインすると便利なので入れる派だけど、アカウントなしでも[後で行う]で起動出来る。

f:id:rideonshooting:20170311132640p:image:w640

起動直後の画面はVS2015とそれほど変わらず。フラットデザインになってから大きな変化はないね。

VS2015と同じ感覚で.NETアプリのプロジェクトは新規作成出来た。

f:id:rideonshooting:20170311133550p:image:w640

UWPアプリを新規作成しようとすると、[開発者モード]になっていない場合は[開発者モード]を促されるのでしよう。

[ファイル]-[新規作成]-[プロジェクト]から[Windows ユニバーサル]-[空白のアプリ]で

プロジェクトを新規作成して、ローカルPCではそのままビルドデバッグ実行出来た。

CPUとメモリの使用状況は前からあったと思うけど、可視化されて便利だねー。

まあ実際に使い込むとリリースビルドでは動作が変わって謎の現象に悩まされるんだろうけど(畏れ

f:id:rideonshooting:20170312151833p:image:w640

ローカルPCでは実行できたので、いざエミュレータで実行しようとすると

f:id:rideonshooting:20170311135516p:image

エミュレータダウンロードにまた結構かかりそう( ^ω^)・・・

とりあえず出来るようになるまで放置。また今度書く。



→2017/3/14追記


どうやら「新しいエミュレーターダウンロードしています…」というのは誤訳らしく

VS2017をずっと放置していてもニッチもサッチもいかないので

エミュレータを直接ダウンロードインストールすることにした。

[新しいエミュレーターダウンロードしています…]をクリックすると下記のページが表示されるので

https://developer.microsoft.com/ja-jp/windows/downloads/sdk-archive

画面右にある「エミュレーターインストール」をクリックしてインストーラダウンロードする。

ダウンロードされた EmulatorSetup v10.0.26624.0.exe などのファイルを実行するとセットアップ画面が立ち上がり

選択を選んで進めていくとイメージのダウンロードインストールが始まる。

選択途中のMSへのフィードバック?だかは嫌な人は[No]を選ぼう。


インストールが完了した後、VisualStudio再起動してみたが、先に作っていたUWPプロジェクトでは

エミュレータ選択肢が出てこなかったので、UWPプロジェクトを作り直してみるとエミュレータ選択肢が出るようになった。

f:id:rideonshooting:20170314192408p:image

そこで、試しに画面に適当にコントロールを配置した後、一番下の[1080p 6inch 2GB]を選んでビルド&実行すると・・・

f:id:rideonshooting:20170319211442p:image:w360

エミュレータが無事起動。これで実機でない画面解像度でも確認出来る。

あとはプログラミングをするだけ・・・!それがまた大変なんだけど。

2015-09-25

Windows8.1でVS2010のService Pack 1がWindowsUpdateからインストール出来ない

Windows7で使っていたPCをWindows10にアップデートしようと思ったけど、

やっぱり怖いのでサポート対象なWindows8.1にアップデートした腰抜けマクフライな管理人です、こんばんは。

いやーやっぱり無償ライセンスだと今後ハード換装した場合のライセンスの問題がねー。

ということで、Windows8.1に変えたんだけども、VisualStudio2010を

インストールしていなかったのに気付いてインストールしたわけですよ、ええ。

最初のメディアからのインストール自体は問題なく成功して、WindowsUpdateにて

Service Pack 1も提供されていたのでそれもインストールしようとしたんだけど・・・


結論だけ、書く。

失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した

失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した

失敗した失敗した失敗した失敗した失敗した


あたしは失敗した失敗した失敗した失敗した失敗した失敗した失敗した

失敗した失敗した失敗したあたしは失敗した失敗

f:id:rideonshooting:20150926092326p:image:w640

何度やりなおしても、キャッシュを消してどれだけ繰り返しても、インストールすることができなかった。


失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗した

失敗した失敗した失敗した失敗した失敗した失敗した失敗した失敗


これはおかしい、と検索してみると、同様の現象になっていたサイトがみつかって、

Windows8.1固有の現象っぽいということでオフラインインストール用のisoイメージを落として

WinCDEmuなんかでマウント、インストールしたらサービスパックの適用に成功した。やったね!

エル・プサイ・コングルゥ!(意味なし)


参考にしたサイト様:

Windows8.1 で Visual Studio 2010 Service Pack 1 の適用に失敗する

http://futuremix.org/2014/03/windowsupdate_000013ec-or-windowsupdate_dt000

2015-06-25

Armadilloのクロス開発環境ATDE5をチューニングする忘備録

ハロー ハロー ぼくから世界へ 応答願います ぼくらのコードは正しくつながっていますか(挨拶


アルマジロは哺乳綱異節上目被甲目に属する動物の総称・・・ですが

Armadilloはアットマークテクノ社が発売している、いわゆるARMの組み込みLinux的なあれをあれするやつのこと。

http://armadillo.atmark-techno.com/about-armadillo

最近だと同じような製品で海外のRaspberry Piとかが安価で手に入るけど、それに比べたらArmadilloは高価だけど

工場とか業務用なんかで使えるように耐久性に優れていたり品質も高かったりする、安心と信頼の国産クオリティー。

そんなArmadillo用のカーネルとかドライバとかアプリを開発するために、クロスコンパイル環境「ATDE」が提供されている。

http://armadillo.atmark-techno.com/downloads

VMWarePlayerと上記のATDE(最近だとATDE5がメイン)を使用することで開発できるんだけど

このATDE5はDebianベースのLinux環境なので、ところどころ不便なところがあったりなかったり。

なので少しでも(俺基準で)便利に使えるように、カスタマイズした忘備録。


  • 1:GUIのエクスプローラから簡単に圧縮、解凍できるように

最近のLinuxはコマンドを打たなくても、GUI画面でファイル移動とかコピーとか実行とか出来るようになっている。

ATDE5でもNautilus(エクスプローラ)でWindowsライクに使えるんだけど、デフォルトのままだと

圧縮、解凍はGUIから行えないのでシェル(端末)から下記のようなtarコマンドを打たなければならない。

http://uguisu.skr.jp/Windows/tar.html

面倒なので、file-rollerを導入してエクスプローラの右クリックメニューから圧縮・展開(解凍)を実行できるようにする。

atmark@atde5:~$ sudo apt-get install file-roller -y

シェルを起動したら上記コマンドでfile-rollerをインストール後に再起動しよう。

エクスプローラでファイルを選択し、右クリックメニューを開くと下の方に「圧縮」か「展開」が追加されているぞい!

f:id:rideonshooting:20150629093618p:image:w360

インストール時とかに発生した不要なパッケージは削除しておこう。

atmark@atde5:~$ sudo apt-get autoremove -y


  • 2:VM起動時に共有フォルダを自動マウントする

ATDE5にはVMware Toolsが入っているので、ドラッグ&ドロップ(以下D&D)によって

ホストマシンとVMマシン間でファイル移動・コピーが出来るようになっている。

しかし、D&Dではたまにファイルコピー失敗が起こったり、手動D&Dだとコピー忘れとか色々起こりやすいので

シェルとかで自動的にホストPCのファイルを扱えるように、共有フォルダを使うことも多い。

http://manual.atmark-techno.com/armadillo-guide/armadillo-guide-1_ja-2.0.0/ch06.html#sec_configuration_shared_folder_win

一応はArmadillo公式サイトの手順通りにVMWareの設定で共有フォルダを有効化して

atmark@atde5:~$ sudo mkdir -p /media/hgfs

atmark@atde5:~$ sudo mount -t vmhgfs .host:/share /media/hgfs

コマンドを実行すれば、共有フォルダへのマウントはできる。

しかし、この手法だとATDE5を再起動するたびにマウントが解除されるので、毎回マウントするのがめんどくさい。

なので、ATDEのシステム起動時に毎回マウントが実行されるようシェルに登録する。

下記はその一例として、 /etc/rc.local に登録してみる。

rc.localをgeditで直接開くと権限の問題で保存できないので

atmark@atde5:~$ sudo gedit /etc/rc.local

コマンドでsu権限で rc.local を開いて、exitの前に下記の2行を追加→保存する。

f:id:rideonshooting:20150625201942p:image

mkdir -p /media/hgfs

mount -t vmhgfs .host:/share /media/hgfs

その後ATDEを再起動すると、共有フォルダが毎回自動でマウントされている。やったぜ


  • 3:GNOMEの上部パネルにショートカットアイテムを追加&削除

ATDE5ではデスクトップにアイテムは置けないけど、その代わりにというのか

上部にあるGNOMEのパネルにアプリやファイル・フォルダをD&Dすることでショートカットを配置出来る。

f:id:rideonshooting:20150625202930p:image

右クリックからアイコンも変更出来るので、よく使うフォルダや端末を登録しておけば快適になる。

でも・・・困ったことに作成したショートカットが削除できないよぉ。゜゜(´□`。)°゜。ワーン!!

・・・なんて困ってたら奥さん!あったよ削除方法が!でかした!

こちらのサイト様 http://linux.ikoinoba.net/index.php?UID=1319469326 に記載があるように、

Altキーを押下しながら右クリックで既存ショートカットの削除メニューが!

f:id:rideonshooting:20150625202931p:image

これで自由にショートカットを追加削除出来るぞい!


  • 4:VM起動時に自動ログインする(非推奨)

VMを起動毎に毎回ログインパスワードを入れるのが手間なら、自動ログインするようにしよう。

この手法は、本来はセキュリティ的なあれであまり推奨はされないけど、どうせATDEのデフォルトのパスワードは

ユーザ名と一緒だし、公開されているパスワードはあってもないようなもんだしね(責任転嫁

する場合は、[システム設定]→[ユーザアカウント]→[ロック解除]→パスワード入力して

[自動ログイン]をオンにする。


アットマークテクノ公式の手順にもあるんだけど、Armadilloは標準でEthernet機能を搭載している。

http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_manual_ja-1.3.0/ch14.html#sct.qt.helloworld_on_armadillo

1.上記のようにArmadillo実機でEthernetを利用出来るように設定しておく。

2.固定IPが必要な場合は /etc/network/interfaces にてネットワーク設定を行う。

3.ATDE5上のQtCreatorで対象実機のIPアドレスを設定する。

4.Qtのプロジェクトにターゲットへのデプロイを追加したり環境変数を設定する。

だいたい上の手順でアプリをATDE上からArmadilloにデプロイ&リモート実行出来る。

アプリを書き換えるために毎回SDカードを抜き差ししたり、ユーザランドを書き換える手間が省けて便利。


  • 6:VM仮想マシンの設定をチューニングして快適に動作させる:実メモリを使用

これはATDEだけでなく、VMWare全般のテクニックなんだけども

VM仮想マシンを起動していると、仮想マシンと同じフォルダにメモリサイズに指定した大きさのファイルが出来ることがある。

これはいわゆる「仮想メモリ」としてメモリが少ないPC向けに、メモリを外部に置いて使用するための機能なんだけど

最近のメモリが豊満なパソコンでは、むしろ低速なHDDにアクセスするほうが遅くて無駄無駄無駄ァ!

という感じなので、HDDの仮想メモリでなく実メモリを使用するように変更する。

仮想マシンのあるフォルダを開き、*.vmxファイルをテキストエディタで開いて

mainMem.useNamedFile= "FALSE"

の項目を追加することで低速なHDDアクセスが減り、快適に動作するようになる。

また、ビルド時にメモリを食うので、[マシン設定]でメモリの指定サイズが512MBとなっている部分を

1GB以上に設定してみると体感出来るかもしれない。


VMの参考サイト様。他のチューニング項目もあるけど、弄りすぎると危ないので他の項目は自己責任で。

http://freesoft.tvbok.com/freesoft/virtual/vmware_tuning.html

http://old.ikoinoba.net/wiki/?VMware

http://www.drk7.jp/MT/archives/001215.html

2015-05-01

ファイル共有セキュリティーレベル変更ツールで共有フォルダにアクセス出来るように

忘備録。

とあるソフトを使う場合に、ライセンス用の共有サーバにあるライセンスファイルを指定して

認証しないといけないというケースがまれによくある。

そこで、ライセンス用NASサーバのフォルダにWindows7のPCからファイルエクスプローラでアクセスしようとすると、

何故か共有フォルダへのアクセスが弾かれてしまってアクセス出来ない事象が発生した。

他のPCからはちゃんと認証成功してアクセス出来るんだけど、何故か特定PCから同じ認証のID/パスワードで入れない。

PINGは通るしIEなどで見るとサーバのWebページは見られるのに、なんでだろー?みたいな。

そこでググってみたら、Windows7のセキュリティ機能がなんか悪さしてるみたいという事が分かった。

そのサイトに記載のあったように、バッファロー様の「ファイル共有セキュリティーレベル変更ツール」を使わせていただくことに。


●ファイル共有セキュリティーレベル変更ツール Ver.1.13

http://buffalo.jp/download/driver/hd/lmclchg.html

ここから lmclchg-113.exe をダウンロードしてインストール

インストール後に促されるまま再起動して、サーバのフォルダにアクセスしてみると無事アクセス出来るようになった!

よかった。バッファロー様ありがとう!