主題から、今までのブログ記事とは、違いますが…
備忘録として、これからは自分の仕事(C#プログラミング)にて、躓いたところとか、ネット検索でなかなか
出てこなかった部分を書いていこうと思います。
まあ、平日にパチンコ行けなくなったのでその変わりの話題として更新していきます~。
とりあえずブログ村バナーは貼りますが(笑)
にほんブログ村まず、WinDows8のタブレット型PCの場合、標準でソフトキーボード(TabTip)と
オンスクリーンキーボード(osk)があります。いままでのWindowsにもあるのは、
OSKのほうです。現状、私はWinXPのVisualStudio2008にてデバッグしているので、当然
ソフトキーボードの取り扱いはわかりませんでした。
そこでネットで調べてみると、
上記がどうも、ソフトキーボードの格納場所らしいのでProcess.Start()で実行してやれば
ソフトキーボードが起動しました!
System.Diagnostics.Process hProc = System.Diagnostics.Process.Start(C:\Program Files\Common Files\microsoft shared\ink\TabTip.exe)
そして、ソフトキーボードがいらなくなれば,いらなくなったところでhproc.Kill()とすればいい・・・・
はずなんですが!なぜか、プロセスがキルされずに、残ってしまうんですよね~。で、Killしたあとにタスクマネージャみてもばっちり残ってます。
これを回避するために、現在実行中のプロセスをすべて取得して、その中に「TabTip.exe」があれば
それをKillする、という方法に変更しました!なぜなら、プロセスの終了からはちゃんと消去できてましたからね。
//ローカルコンピュータ上で実行されているすべてのプロセスを取得System.Diagnostics.Process[] ps =
System.Diagnostics.Process.GetProcesses();
foreach (System.Diagnostics.Process p in ps)
{
if(p.ProcessName=="TabTip")
{p.Kill()}
}
これで、現在実行しているプロセスをすべて取得してその中に「TabTip」があればそれをKillして終了
することができます。
実はこれでもまだ不満が・・・・・。
フォームを最大表示した状態でTabTipを起動すると、自動でTabTipが表示された分、フォームが縮小するのですがTabTipをKillしたときに、元の大きさにもどらないんですよね。
空白の部分をタッチすれば、もとに戻るのですがやっぱり自動で戻ってほしいですよね!
そこで、色々試してみたんですが一個うまくいったので、紹介します。
それは、現在のフォームを一度隠してすぐに表示させることです。
this.Hide();
this.Show();
これで、OK!TabTipを終了してすぐに上記のメソッドを実行すれば表示が復帰します。
他にも方法があるのかもしれませんが、自分のための備忘録としてなので、まあ、いいでしょう。
他にも、色々あるので平日はこんなまじめな記事をアップしていこうと思います。
記事の参考にしたURLです・・・
.Net Tipsできたら、応援ぽちお願いします。
にほんブログ村
テーマ:プログラミング -
ジャンル:コンピュータ
【スポンサード リンク】