Windows」タグアーカイブ

Windows ストアアプリ (旧 Metro スタイルアプリ) でスクリーンキーボードのサイズにあわせて画面を調節する。

うー。長い。タイトルが長すぎる。
みむらです。

 

やりたいこととしては、下のような文字列だらだら書き込みまくる系のソフトを作ったとき。

01

タブレットマシンを使うときに文字入力用として、スクリーンキーボードが表示されますが、
それに併せて画面は動くし、最悪キャレット (“|” で点滅してるやつ) は
画面の下に行ってしまうことがあります。

02

(このときのキャレットはキーボードの後ろにあります。)

 

そこで何とかいい感じにして、

03

こういう状態にしよう! というおはなし。

 


対象のページの .xaml.cs ファイルに作業をしていきます:

 

1.対象ページの LoadState メソッドの部分で現在の InputPane オブジェクトに対してイベントハンドラを設定。

            InputPane.GetForCurrentView().Showing += ItemDetailPage_Showing;
            InputPane.GetForCurrentView().Hiding += ItemDetailPage_Hiding;

 

2.OccludedRect.Height から高さを取得して適宜設定させる。

        void ItemDetailPage_Hiding(InputPane sender, InputPaneVisibilityEventArgs args)
        {
            itemGrid.Margin = new Thickness(0);
            args.EnsuredFocusedElementInView = true;
        }

        private void ItemDetailPage_Showing(InputPane sender, InputPaneVisibilityEventArgs args)
        {
            itemGrid.Margin = new Thickness(0, 0, 0, args.OccludedRect.Height);
            args.EnsuredFocusedElementInView = true;
        }

(今回の場合、高さ調整したいオブジェクトを itemGrid で括ってあるような構図になっています。)


というわけでサンプル:

http://mimumimu.net/blog/wp-content/uploads/2012/08/ScreenKeyboard_AdjustSize.zip

 

・・・デスマーチ真っ盛りの深夜に記事を書いているので、

誤字脱字、表現ミスがあったら教えてください。。

Windows で へろく ってみる。

image

こんなこと言われましたが僕はめげません。
どうもみむらです。

Heroku  Cloud Application Platform

Heroku がなかなかおもしろい環境の予感がしたので、早速導入。

 

0. Heroku のアカウントを作る。

https://api.heroku.com/signup
Heroku Signup

ここから heroku のアカウントを作る。

 

1.Ruby 環境導入

RubyForge Ruby Installer for Windows ファイルリスト

ここから最新版の rubyinstaller を落としてきてインストール。

image

image

 

2. git インストール

Git – Fast Version Control System

Windows ロゴクリックして、最新版をとってきてインストール。

 

3.heroku 準備

Heroku  Dev Center  Getting Started with Heroku
ここを参照しながら。

3.1 heroku に必要なものをどっちゃりいれる。

image

gem install heroku rack bundler sinatra shotgun

3.2.SSH Key 作る。

image

Git Bash を立ち上げる。

image

$ ssh-keygen -t rsa -C "[e-mail アドレス]"
Generating public/private rsa key pair.
Enter file in which to save the key ( [環境によってここは変わる]  ): [何も打たずに Enter]
Created directory '...'
Enter passphrase (empty for no passphrase) : [パスワードを入れて Enter]
Enter same passphrase again: [同じパスワードをいれて Enter]

image

終わったらウィンドウを閉じる。

 

3.3. git 準備

image

git init
git add .
git commit -m "[コミットメッセージ (任意の文字列) ]"

image

heroku create

Enter your Heroku credentials.
Email : [heroku のログインに使用するメールアドレス]
Password : [heroku のログインに使用するパスワード]

4.おつかれさまでした


って、これだけで適当に完了。

一応サンプルコードを書いてみたり。

HerokuでSinatraを使ってHello worldする – アインシュタインの電話番号☎

ということで、ここを参考にしてみる。

とりあえず、私の環境だと動いたのでこんなところで。

Unix と Windows 世界の融合 プロ生勉強会 第10回@品川

しゃべってきました。

 

内容は、
Windows 環境が好きだ-! という人向けに、
UNIX も使いたいんだけどどうしようという内容。

Cygwin との比較をして、
速度が速いけどライブラリが足りないよ! なんてのも。

 

以前書いた記事としては、
GNU系ツールもばっちり使える、Windows の UNIX 互換環境を試してみる。
との連携記事ですね。はい。

あと、GnuWin32 については、
Windows で GNU Tools を使う。 GnuWin32
とかとか。

あと、プレゼン中は runas コマンドを知らないという失態をしていたので、
sudo ほしいー! とか言ってましたが、
Windows の sudo / su は runas で!
これ見てください。

・・・でも、んー・・。んー・・。su さんほしい(ぁ

 

プレゼン資料:

プレゼンの動画:



その他、動画中に上がっていた質問を2つ。

1.X で動作するアプリケーションの画像あげてよ!

image

手頃に思いついたのが xterm ということで、 xterm の画像をあげておきます。
xeye などを動かせればよかったのですが、ちょっと動かなかったので、入れ直して再実験してみます。

 

2.ハルマゲドンコマンド動かしたらどうなるの

image

起動できなくなりましたとさ。

 

そんなわけで、であであー!

Windows で フォルダをドライブにする。

同じくメモ書き程度に。

特定のフォルダをドライブにする場合。
subst コマンドを使います。

古いアプリケーションで、スペースの入ったパスが使えない場合や、
そもそも長いパスをどうにかしたい場合に、mklink に並んで有用です。

 

作成:

subst ドライブ: パス

 

削除:

subst /d ドライブ:

 

例として、コマンドプロンプトのカレントディレクトリを Zドライブ に割り当てたい場合。

Windows Vista 以降であれば、フォルダを Shift キーを押しながら右クリックすると
「コマンド ウィンドウをここで開く」というメニューが追加されるので、それで行う場合を想定して。

追加:

subst z: .

削除:

subst /d z:

 

C:\Users\Test\Desktop\Hello を X ドライブにする場合。

追加:

subst x: C:\Users\Test\Desktop\Hello

削除:

subst /d x:

Windows の sudo / su は runas

2014/12/11 update:
本記事の方法より、良い方法が見つかりましたので、次の記事を参照されることをおすすめします:

Windows で sudo なことをする – みむらの手記手帳


 

覚え書き程度に。

linux や unix の su コマンドや sudo コマンドに該当するコマンドとして、
Windows には runas コマンドが存在します。

ヘルプ:

RUNAS 使用法:

RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ]
        /user:<ユーザー名> プログラム

RUNAS [ [/noprofile | /profile] [/env] [/savecred] ]
        /smartcard [/user:<ユーザー名>] プログラム

RUNAS /trustlevel:<信頼レベル> プログラム

   /noprofile        ユーザーのプロファイルを読み込まないように指定します。
                     この結果、アプリケーションをより速く読み込むことができま
                     すが、一部のアプリケーションが正しく動作しない可能性があ
                     ります。
   /profile          ユーザーのプロファイルを読み込むように指定します。
                     これは既定値です。
   /env              ユーザーの環境ではなく、現在の環境を使用する場合に使います
   /netonly          指定された資格情報をリモート アクセスのみで使用する場合に
                     使います。
   /savecred         ユーザーが以前に保存した資格情報を使います。
                     このオプションは Windows 7 Home Edition または Windows 7 Starter Edition では使用できません
                     Edition では利用できないので無視されます。
   /smartcard        資格情報がスマート カードから提供される場合に使います。

   /user             <ユーザー名> の形式は、"ユーザー@ドメイン" または
                     "ドメイン\ユーザー" です
   /showtrustlevels  /trustlevel に対して引数として使用できるレベルを表示し
                     ます。
   /trustlevel       <レベル> は /showtrustlevels に列挙されているレベルの
                     いずれかです。
   プログラム        実行可能なコマンドラインです。下の例を参照してください。

例:
> runas /noprofile /user:mymachine\administrator cmd
> runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc"
> runas /env /user:user@domain.microsoft.com "notepad \"my file.txt\""

注意:  要求されたときのみ、ユーザーのパスワードを入力してください。
注意:  /profile は /netonly と互換性がありません。
注意:  /savecred は /smartcard と互換性がありません。

 

ということで、要は任意のユーザ権限で動かせます。

 

使い方。

runas /user:administrator cmd

これで、 administrator で cmd (コマンドプロンプト) が立ち上がります。

 

同様に、TEST というユーザで calc (電卓) を立ち上げたいときは、

runas /user:TEST calc

というような要領で。

 

要は、

runas /user:(USERNAME) (COMMAND)

というところ。ひとまずメモまで。