ラベル zeKey の投稿を表示しています。 すべての投稿を表示
ラベル zeKey の投稿を表示しています。 すべての投稿を表示

2020/09/05

ようこそ zeKey software keyboard のページへ


zeKeyとは
最初にお読みください 特徴と注意事項等

ダウンロード
ダウンロード方法

使い方
豊富な画像でわかりやすく説明します

同梱スキン
同梱スキンについて画像と簡単な説明

スキン作成ガイド
スキン作成について環境構築から丁寧に解説(更新中)

ブログ
解説ブログなのであまり関係のない記事は書きません
読みやすいように投稿日時を変更することがあります

2016/12/31

スキン整理

zeKey自体にはスキン整理機能は付いていません(外部ファイルの扱いが難しいため)
エクスプローラーで変更することになります

右クリックメニューに開くメニューがあります
変更後は再取得してください

スキン名.xaml(スキン本体)とスキン名.config(スキン設定)はセットです
リネームや移動で.configを変えなかった場合は スキン設定が初期設定に戻ります

スキン名やフォルダ名を変更したい

好きなように変更できます(_から始まる名前にするとzeKeyに表示されませんので注意)

フォルダを移動させたい

外部ファイルを使用していなければ スキンファイルを移動するだけです
同名のスキンがある時はどちらかの名前を変えてください

外部ファイルを使用している場合はスキン読み込みエラーになるので 外部ファイルも移動する必要があります
エラーにファイル名が出るので 元と同じフォルダ構成でファイルをコピーします(複数スキンで共用している場合があります 共用がなければ移動で構いません)
スキンフォルダ 
    サンプルフォルダ
        サンプル.xaml
        画像.png
となっていた場合スキンフォルダ直下におろすには
スキンフォルダ
    サンプル.xaml
    画像.png
と します

スキンフォルダ
    サンプルフォルダ
        画像フォルダ
            画像.png
        サンプル.xaml
となっている場合は
スキンフォルダ
    画像フォルダ
        画像.png
    サンプル.xaml
と なります

外部ファイル名が他のスキンで使用している外部ファイル名と被った場合 スキン内のファイル名と外部ファイル名を変えてください
スキンフォルダ
    サンプルフォルダ
        サンプル.xaml("pack://siteoforigin:,,,/Skin/画像.png")
        画像.png
        他のスキン.xaml("pack://siteoforigin:,,,/Skin/画像.png")
        画像.png
となってしまった場合
スキンフォルダ
    サンプル.xaml("pack://siteoforigin:,,,/Skin/画像1.png")
    画像1.png
    他のスキン.xaml
    画像.png
という具合です

2016/11/24

設定ファイル

設定ファイルを削除した時のデフォルト値
[]は実際には付けない []が付いているものはデフォルト値または値がない場合省略される

zeKey.config

zeKey自体の設定ファイル
SkinFolder: exeフォルダ下のSkinフォルダ フォルダ指定した場合フルパス
Startup.File: SkinFolderからの相対パス

<Setting>
  <Window>
    <Top>100</Top>
    <Left>100</Left>
    <Width>700</Width>
    <Height>600</Height>
    [<HideStart>false</HideStart>]
    [<TopMost>false</TopMost>]
    <VerticalSplitter>200</VerticalSplitter>
    <HorizontalSplitter>200</HorizontalSplitter>
  </Window>
  <SkinFolder>Skin</SkinFolder>
  <Startups>
    [<Startup>
      <File></File>
    </Startup>]
  </Startups>
  [<IgnoreSaveError>false</IgnoreSaveError>]
  [<DesktopFrame>false</DesktopFrame>]
  [<DesktopTool>false</DesktopTool>]
</Setting>

スキン名.config

各スキンの設定ファイル
メイリオ好きなのでデフォ値ですがWin10に入っていないこともある??
入ってないと游ゴになるのかどうか?よくわかりません

<Setting>
  <Position>
    <Top>100</Top>
    <Left>100</Left>
    <Width></Width>
    <Height></Height>
  </Position>
  <AutoHide>
    <IsEnabled>false</IsEnabled>
    <HideType>SlideTop</HideType>
    <OffsetX>5</OffsetX>
    <OffsetY>5</OffsetY>
    <HideAnimation>
      <Mode>Instantly</Mode>
      <Delay>1</Delay>
      <Duration>0.5</Duration>
    </HideAnimation>
    <ShowAnimation>
      <Mode>Instantly</Mode>
      <Delay>1</Delay>
      <Duration>0.5</Duration>
    </ShowAnimation>
  </AutoHide>
  <Font>
    <Family>メイリオ</Family>
    <Style>Normal</Style>
    <Weight>Normal</Weight>
    <Stretch>Normal</Stretch>
    <Size>16</Size>
  </Font>
  <Colors>
    [<Color>
      <Name></Name>
      <Code></Code>
    </Color>]
  </Colors>
</Setting>

同梱スキン - 落書き.xaml


全画面スキンテスト
ブログの画像作成用に適当に作ったスキン
全画面スキンはちょっとした設定ミスでPC操作が効かなくなるため十分注意すること
スキン作成者向けオプション-デスクトップにzeKeyツールを表示する
にチェックを入れておくことを推奨
入れ忘れて操作不能になった場合 すべてキーボード操作で[Ctrl]+[Alt]+[Del]でタスクマネージャを起動しzeKeyを終了する

2016/11/23

同梱スキン - テンキー.xaml


トグルボタンでの2面切り替えサンプル
数字入力の機会があまりないので 使い勝手が良いかどうかはわかりません
キーボードのFnキーのような機能は ボタンを2つ用意して表示非表示を切り替えるのが簡単で作りやすいです

同梱スキン - コンパクト.xaml


TypeKeys指定サンプル
デザインセンスがないので残念な出来ですが キー数が少ない特別な用途向け(1列だけとか特定アプリ専用等)のベースに使えるかもしれません

同梱スキン - フルキーボード.xaml


スキン自作のためのテンプレート用
大量のコメントで行数は多いですが 改造しやすいようにできていますので自作のベースに最適です

同梱スキン - タイプライター風.xaml


テンプレートサンプル用 実用性はあまりありません
画像を1枚使っていますがスペースキーの質感用です 大した意味はありません
丸いキーはxamlだけで出来ています 見た目に関しては想像できるものは大体実現可能です
どのスキンもキーの定義部分が同じようになって冗長なんですが スタイルを使って出来る限り短くしています

同梱スキン - Keyboard.xaml


自分(T.N)用に作ったもの

2016/08/07

かな入力モード ConversionMode

以下の情報は私の環境での結果です 違う環境ではどうなっているか分かりません
Windows7 MS-IME 日本語109キーキーボード

ローマ字入力かな入力の切り替えは
          <z:LRButton.LeftTypeKeys>
            <z:TypeKeys TypeKey="LeftAlt">
              <z:TypeKeys TypeKey="OemCopy" />
            </z:TypeKeys>
          </z:LRButton.LeftTypeKeys>
で注意喚起のダイアログが出た上で トグル動作でした
この場合 入力モードは正常に取得できました

IMEオンの時かなキー
<z:LRButton TypeKey="OemCopy">
だけを押すと一時的に変えるモードなのかよくわかりませんが 何かキーを押すまで入力モードが反映されませでした

かなモードでの英数入力は 英数キー(Capsキー)ですが
<z:LRButton TypeKey="OemAttn">
でトグル動作でした
<z:LRButton TypeKey="Capital"/>
はCapsのトグル動作でした

KeyState.ConversionModeに実際値が入っています IMEオフの時は {x:Null} です

引用 (AutoHotkey)(IMEの制御をする 編) - もらかなです。
状態一覧表
0 = かな入力 半角英数
3 = かな入力 半角カナ
8 = かな入力 全角英数
9 = かな入力 全角ひらがな
11 = かな入力 全角カタカナ
16 = ローマ字入力 半角英数
19 = ローマ字入力 半角カタカナ
24 = ローマ字入力 全角英数
25 = ローマ字入力 全角ひらがな
27 = ローマ字入力 全角カタカナ

zeKeyセキュリティ対策

今のところzeKeyでは

外部アセンブリ禁止

Blend機能は惜しい気もしますが そこまで必要性は感じないし ほかのDLL読み込んでまで必要な機能が思いつかない
DLL自作出来るような人はもっといいのを作ってください

namespaceはスキン用以外読み込ませない

C#は逆コンパイルも簡単らしいので(よく知りませんが)クラス名やメンバ名がわかってもいいように namespaceを分けてxmlns:zを決め打ちすることで安全性が上がるはず
System等が欲しいなと思う時もあるんですが あまりにも広範囲すぎて危なそうなので禁止します

スキンからのアクセスをそのフォルダ以下に制限

Image等のSourceを内部で強制変換します

HyperlinkExクリックで確認ダイアログ

当然ですね

をセキュリティ対策としたいと思います

セキュリティガバガバはさすがにイヤですが ユーザーの自由度がなくなってしまっては意味が無いのでこのあたりが落し所かなと思います
もちろん大穴が見つかったら修正するつもりですが どうしようもない場合公開中止もあるかもしれません

セキュリティ対策をユーザーの責任でキャンセルを許すかどうかですが
スキン設定ファイルにユーザー固有値を含めた上で暗号化して保存する等で 十分安全を担保して実現可能だと思います がそこまで必要か悩み中です


悪意のあるスキンを使ってしまった というのは
例えば ランチャーソフト向けに(ランチャーソフトとは無関係の悪意がある人が)便利設定と偽って設定ファイルとPC破壊バッチファイルをセットで公開し それを使ってしまったのと大差ないというのは言いすぎでしょうか?
それとも ブラウザのバグを突いてHPを開いただけでPCがクラッシュするような状況に近いのでしょうか?
前者はさすがに使ったユーザーの責任 後者はソフト側にも責任(法的には損害賠償などは無理でしょうが)があるような感じがしますが スキンファイルの扱いは前者寄りだと思うのですがどうでしょう?

無責任な言い方かもしれませんが 十二分に注意喚起して それ以上はユーザー責任で使ってもらうしかないかなと思います