C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: ソフトウェアキーボード最小化


(過去ログ 101 を表示中)

[トピック内 22 記事 (1 - 20 表示)]  << 0 | 1 >>

■60184 / inTopicNo.1)  ソフトウェアキーボード最小化
  
□投稿者/ 百汰 (5回)-(2011/06/22(Wed) 15:58:16)

分類:[C#] 

2011/06/22(Wed) 15:59:13 編集(投稿者)

先ほどの質問は仕様ということで
解決に致しました。

仕様ということで考え、
画面が開かれたときに
キーボードを起動し、
画面が閉じられたときに
キーボードを閉じていました。

それを、
画面が閉じられたときに
キーボードを最小化し、
画面が開かれたときに
キーボードが最小化していたら
最大化する
というプログラムに変更することになりました。
上記の方法なら多少は起動が早くなるのでは?ということで・・・

下記が最小化しているプログラムですが
最小化されません。
どこがおかしいのでしょうか?

// ソフトウェアキーボードを最小化する(既に最小化されている場合は何もしない)
string processName = softkey;
System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcessesByName(processName);
foreach (System.Diagnostics.Process process in processes)
{
  ShowWindow(process.MainWindowHandle, SW_MINIMIZE);
}
引用返信 編集キー/
■60185 / inTopicNo.2)  Re[1]: ソフトウェアキーボード最小化
□投稿者/ 麒麟 (1回)-(2011/06/22(Wed) 16:05:25)
桃汰さん、foreachの中は通っているのでしょうか?

You're shock
引用返信 編集キー/
■60186 / inTopicNo.3)  Re[2]: ソフトウェアキーボード最小化
□投稿者/ 百汰 (6回)-(2011/06/22(Wed) 16:32:53)
No60185 (麒麟 さん) に返信
ありがとうございます。
> 桃汰さん、foreachの中は通っているのでしょうか?
はい、ブレークポイントを置いて実行してみると
foreachの中に入っています。
引用返信 編集キー/
■60199 / inTopicNo.4)  Re[3]: ソフトウェアキーボード最小化
□投稿者/ Azulean (768回)-(2011/06/22(Wed) 23:22:28)
osk.exe って管理者権限で起動される認識ですが、それによって一般ユーザー権限からはウィンドウ操作ができなくなっているということはないでしょうか?
(試していません)

たとえば、今のプログラムを管理者として実行した場合は操作できるのであれば、UAC(UIPI) による制限が効いていることになります。
引用返信 編集キー/
■60217 / inTopicNo.5)  Re[4]: ソフトウェアキーボード最小化
□投稿者/ 百汰 (7回)-(2011/06/23(Thu) 09:34:29)
No60199 (Azulean さん) に返信
ありがとうございます。
> osk.exe って管理者権限で起動される認識ですが、それによって一般ユーザー権限からはウィンドウ操作ができなくなっているということはないでしょうか?
> (試していません)
>
> たとえば、今のプログラムを管理者として実行した場合は操作できるのであれば、UAC(UIPI) による制限が効いていることになります。
UACを無効?にしたら実行できました。
ありがとうございました。
解決済み
引用返信 編集キー/
■60257 / inTopicNo.6)  Re[2]: ソフトウェアキーボード最小化
□投稿者/ 百汰 (8回)-(2011/06/24(Fri) 16:58:17)
Windows 7
Visual studio 2010
C#
WPF

先日はありがとうございました。
同様の?問題が起こりましたので
こちらで質問させていただきます。

今回は
ソフトウェアキーボードを起動するアプリケーションを別で作成し、
本アプリケーションでそのアプリケーションを呼び出して
ソフトウェアキーボードを起動しています。

// ソフトウェアキーボードを最小化する(既に最小化されている場合は何もしない)
string processName = softkey;
System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcessesByName(processName);
foreach (System.Diagnostics.Process process in processes)
{
  ShowWindow(process.MainWindowHandle, SW_MINIMIZE);
}

これを行うとforeachの中に入っていきません。


// 同名のプロセスが他に存在した場合は、既に起動していると判断する
if (System.Diagnostics.Process.GetProcessesByName(stThisProcess).Length > 1) {
  return true;
}

これを実行してみると
Lengthは0が返ってきています。

原因は何でしょうか?
お分かりになる方がいらっしゃいましたら
よろしくお願いいたします。
引用返信 編集キー/
■60260 / inTopicNo.7)  Re[3]: ソフトウェアキーボード最小化
□投稿者/ Dev (1回)-(2011/06/24(Fri) 18:37:53)
No60257 (百汰 さん) に返信

> // ソフトウェアキーボードを最小化する(既に最小化されている場合は何もしない)
> string processName = softkey;
> System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcessesByName(processName);
> foreach (System.Diagnostics.Process process in processes)
> {
>   ShowWindow(process.MainWindowHandle, SW_MINIMIZE);
> }
>
> これを行うとforeachの中に入っていきません。
>
>
> // 同名のプロセスが他に存在した場合は、既に起動していると判断する
> if (System.Diagnostics.Process.GetProcessesByName(stThisProcess).Length > 1) {
>   return true;
> }
>
> これを実行してみると
> Lengthは0が返ってきています。

これはソフトウェアキーボードを起動するアプリケーションのコードでしょうか、
本アプリケーションのコードでしょうか?
実行ユーザの権限はどうなっているでしょうか?
引用返信 編集キー/
■60264 / inTopicNo.8)  Re[3]: ソフトウェアキーボード最小化
□投稿者/ Azulean (771回)-(2011/06/24(Fri) 22:45:50)
No60257 (百汰 さん) に返信
> // 同名のプロセスが他に存在した場合は、既に起動していると判断する
(略)
> これを実行してみると
> Lengthは0が返ってきています。

上述の文章から foreach に入らないのは当然では?

Length が 0 になるということはそのプロセスが見つからないということです。
原因は何ともいいかねますが、GetProcessByName で指定している引数が正しいか、変なやり方で起動していたりしないか、そもそも、使っているソフトのプロセス名が想定と違っていないかなど確認してください。

あなた自身が確認しないと、正直、第三者にはわかりません。
引用返信 編集キー/
■60265 / inTopicNo.9)  Re[4]: ソフトウェアキーボード最小化
□投稿者/ 逆運の覇者 (17回)-(2011/06/24(Fri) 23:07:17)
まだるっこしいですねー。
とりあえず、

int n=0;
string pName = "";
foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses()) {
    n++;
    pName += p.ProcessName + "\r\n";
}
MessageBox.Show("プロセス数:" + n.ToString() + "\r\n" + pName);


これを実行してみて、プロセスを拾えるかどうか確認してください。
そして、表示されるプロセス名に百汰さんがGetProcessByName()で指定したプロセス名が
あるかどうか、確認してください。

プロセスが拾えているにもかかわらず、目当てのプロセス名がないということは、
プロセス名が違っていただけだったということです。

引用返信 編集キー/
■60296 / inTopicNo.10)  Re[4]: ソフトウェアキーボード最小化
□投稿者/ たっくん (3回)-(2011/06/27(Mon) 12:17:02)
2011/06/27(Mon) 13:06:48 編集(投稿者)

                              
引用返信 編集キー/
■60299 / inTopicNo.11)  Re[4]: ソフトウェアキーボード最小化
□投稿者/ 百汰 (9回)-(2011/06/27(Mon) 13:08:03)
No60260 (Dev さん) に返信
> これはソフトウェアキーボードを起動するアプリケーションのコードでしょうか、
これはキーボードの最小化を行うコードです。
> 本アプリケーションのコードでしょうか?
本アプリケーションのコードです。
> 実行ユーザの権限はどうなっているでしょうか?
管理者権限ではありません。
引用返信 編集キー/
■60300 / inTopicNo.12)  Re[4]: ソフトウェアキーボード最小化
□投稿者/ 百汰 (10回)-(2011/06/27(Mon) 13:09:25)
No60264 (Azulean さん) に返信
> 上述の文章から foreach に入らないのは当然では?
>
> Length が 0 になるということはそのプロセスが見つからないということです。
> 原因は何ともいいかねますが、GetProcessByName で指定している引数が正しいか、変なやり方で起動していたりしないか、そもそも、使っているソフトのプロセス名が想定と違っていないかなど確認してください。
>
> あなた自身が確認しないと、正直、第三者にはわかりません。

すみません。確認してみます。
引用返信 編集キー/
■60305 / inTopicNo.13)  Re[5]: ソフトウェアキーボード最小化
□投稿者/ 百汰 (11回)-(2011/06/27(Mon) 14:40:58)
No60265 (逆運の覇者 さん) に返信
> まだるっこしいですねー。
> とりあえず、
>
> int n=0;
> string pName = "";
> foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses()) {
> n++;
> pName += p.ProcessName + "\r\n";
> }
> MessageBox.Show("プロセス数:" + n.ToString() + "\r\n" + pName);
>
>
> これを実行してみて、プロセスを拾えるかどうか確認してください。
> そして、表示されるプロセス名に百汰さんがGetProcessByName()で指定したプロセス名が
> あるかどうか、確認してください。
>
> プロセスが拾えているにもかかわらず、目当てのプロセス名がないということは、
> プロセス名が違っていただけだったということです。

ありがとうございます。
目当てのプロセス名がなかったので
プロセス名が間違っているのだと思います。
確認してみます。

ソフトウェアキーボードは起動しているのに
最小化が出来ないというのは
どこのプロセス名が間違っているのでしょうか?
引用返信 編集キー/
■60326 / inTopicNo.14)  Re[6]: ソフトウェアキーボード最小化
□投稿者/ Azulean (774回)-(2011/06/27(Mon) 22:32:56)
質問文を編集で消さないでください。
やりとりが見えませんので流れが把握できなくなります。

No60305 (百汰 さん) に返信
> 目当てのプロセス名がなかったので
> プロセス名が間違っているのだと思います。
> 確認してみます。

ソフトウェアキーボードを起動している状態で”目当てのプロセス名”とされているのが見つからないのであれば、”目当てのプロセス名”と思っているものが実は違うか、プロセス名がとれない状況・条件だと言うことでしょう。


> ソフトウェアキーボードは起動しているのに
> 最小化が出来ないというのは
> どこのプロセス名が間違っているのでしょうか?

最小化はとりあえず放置して、Process クラスのインスタンスを取得することを目指しては?
”目当てのプロセス名”が見つからなかった以上、それが間違っているか、取り出せない状況なのでしょうから、まずはその最初の問題の解決に注力すべきです。

とりあえず、タスクマネージャのプロセスタブで osk が出てこないなら、osk じゃないのでしょう、そのソフトウェアキーボードは。
(単に「Tablet PC 入力パネル」と取り違えていないですよね)
引用返信 編集キー/
■60335 / inTopicNo.15)  Re[7]: ソフトウェアキーボード最小化
□投稿者/ 百汰 (12回)-(2011/06/28(Tue) 13:26:25)
No60326 (Azulean さん) に返信
> 質問文を編集で消さないでください。
> やりとりが見えませんので流れが把握できなくなります。
すみません。

> ■No60305 (百汰 さん) に返信
>>目当てのプロセス名がなかったので
>>プロセス名が間違っているのだと思います。
>>確認してみます。
>
> ソフトウェアキーボードを起動している状態で”目当てのプロセス名”とされているのが見つからないのであれば、”目当てのプロセス名”と思っているものが実は違うか、プロセス名がとれない状況・条件だと言うことでしょう。
>
>
>>ソフトウェアキーボードは起動しているのに
>>最小化が出来ないというのは
>>どこのプロセス名が間違っているのでしょうか?
>
> 最小化はとりあえず放置して、Process クラスのインスタンスを取得することを目指しては?
> ”目当てのプロセス名”が見つからなかった以上、それが間違っているか、取り出せない状況なのでしょうから、まずはその最初の問題の解決に注力すべきです。
>
> とりあえず、タスクマネージャのプロセスタブで osk が出てこないなら、osk じゃないのでしょう、そのソフトウェアキーボードは。
> (単に「Tablet PC 入力パネル」と取り違えていないですよね)

目当てのプロセス名というのは osk のことだったのですか?
自分で作った別アプリのことかと思っていたのですが・・・
引用返信 編集キー/
■60336 / inTopicNo.16)  Re[5]: ソフトウェアキーボード最小化
□投稿者/ テキベアー (1回)-(2011/06/28(Tue) 13:38:11)
えっ?
ソフトウェアキーボードを最小化しようとして、ソフトウェアキーボードのプロセスを取得しようとしたら
取得できないのはなぜ、という質問じゃないの?

自分の質問をよく読み返してください。
誰もあなたの作った別アプリのプロセスが取得できないことに対して回答しようとしている人はいませんよ。
前の質問の流れで、みんなソフトウェアキーボードのプロセスのことだと思うのは当然のことです。
引用返信 編集キー/
■60338 / inTopicNo.17)  Re[6]: ソフトウェアキーボード最小化
□投稿者/ しぃ (20回)-(2011/06/28(Tue) 13:39:45)
2011/06/28(Tue) 13:40:12 編集(投稿者)

        
引用返信 編集キー/
■60339 / inTopicNo.18)  Re[6]: ソフトウェアキーボード最小化
□投稿者/ 百汰 (13回)-(2011/06/28(Tue) 13:40:30)
No60336 (テキベアー さん) に返信
> えっ?
> ソフトウェアキーボードを最小化しようとして、ソフトウェアキーボードのプロセスを取得しようとしたら
> 取得できないのはなぜ、という質問じゃないの?
>
> 自分の質問をよく読み返してください。
> 誰もあなたの作った別アプリのプロセスが取得できないことに対して回答しようとしている人はいませんよ。
> 前の質問の流れで、みんなソフトウェアキーボードのプロセスのことだと思うのは当然のことです。

すみませんでした。
引用返信 編集キー/
■60340 / inTopicNo.19)  Re[7]: ソフトウェアキーボード最小化
□投稿者/ テキベアー (2回)-(2011/06/28(Tue) 13:41:16)
No60338 (しぃ さん) に返信

それともう一つ。
名前をちょくちょく変更するのはやめてください。
引用返信 編集キー/
■60341 / inTopicNo.20)  Re[8]: ソフトウェアキーボード最小化
 
□投稿者/ 百汰 (14回)-(2011/06/28(Tue) 13:52:17)
No60340 (テキベアー さん) に返信
> ■No60338 (しぃ さん) に返信
>
> それともう一つ。
> 名前をちょくちょく変更するのはやめてください。
違う質問を同じ名前で投稿すると
自分でわからなくなってしまうので
名前を分けています。
今後気をつけます。

申し訳ありませんでした。
引用返信 編集キー/

次の20件>
トピック内ページ移動 / << 0 | 1 >>

管理者用

- Child Tree -