- PR -

Pocket PCでボタンの無効化をする

1
投票結果総投票数:1
Windows 1 100.00%
VB.NET 0 0.00%
PDA.iAniware 0 0.00%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
みきにゅう
会議室デビュー日: 2005/02/18
投稿数: 13
投稿日時: 2005-02-18 18:41
教えて頂きたい事があります。
VB.NETでPDAの開発をしておりますが、
PDAの開発は初めてなので分からないことばかりです。

今回、PocketPCにてハードウェアのボタンの無効化を
したいと思っているのですが、どうしてもうまくいきません。

実際にPocket PC SDK 2003をインストールしたのですが、
「RegisterHotKey」という関数は存在し、eVC や eVB で
使えるということは、VB.NETでも使えるのではないかと
初心者ながらに思います。

色々と調べたのですが、どうしても解決策が見つかりません。
どなたかご教授して頂けないでしょうか?

参考URL:
http://www.microsoft.com/japan/windowsmobile/pocketpc/techpapers/techguide/guide_9.asp#35
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2005-02-18 20:55
これのこと....かな?
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=24362

これだけじゃ寂しいので、おまけ。

PDAの.net(.net compact framework)の有益なフォーラムは、
上述したGod Dot Net Japan(日本語)
Open Net CF

ほかには、MSが公開しているチュートリアル
http://www.gotdotnet.com/japan/quickstart/CompactFramework/

.net compact framework FAQ
http://www.microsoft.com/japan/msdn/mobility/prodtechinfo/devtools/netcf/FAQ/default.asp

なんかもさんこうになります。

余裕があるときに、一読してみてください。
未記入
会議室デビュー日: 2004/08/17
投稿数: 10
投稿日時: 2005-02-19 00:39
余談ですが、ボタンの無効化ならRegisterHotKey()よりWH_KEYBOARD_LLの方が強力デス。
Compact Frameworkだとdelegateをコールバックに渡せないんで、C++でDLL作ったりと.NETだけではできないんですが。
#コールバックが2.0ではサポートされるといいな〜

[ メッセージ編集済み 編集者: 未記入 編集日時 2005-02-19 00:44 ]
みきにゅう
会議室デビュー日: 2005/02/18
投稿数: 13
投稿日時: 2005-02-24 12:03
かずくん様、未記入様ありがとうございます。

現在の状況を報告しますと、

http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=24362

にて、サンプルのDLLがあるので、使えないものかと思案しています。
関数にPDAのハードウェアのキーコードを渡そうと思っているのですが、
キーコードがいくつになるのか、探している状態です。

また、WH_KEYBOARD_LLを調べましたが、使い方がよく分からず
せっかくのアドバイスを有効に使えていません。

なにか状況が変わりましたら、またご報告します。
みきにゅう
会議室デビュー日: 2005/02/18
投稿数: 13
投稿日時: 2005-02-24 14:51
教えてください。

今下記のようなコードを使って、ハードウェアボタンを無効化しようとしているのですが
VB.NET(Compact Framework)から、DLL化した下記の関数を呼ぶとエラーになってしまいます。

private static extern bool UnregisterHotKey(
IntPtr hWnd, // handle to window
int id // hot key identifier
);


public bool UnregisterAll()
{
bool errors=false;
if (this.mWnd.registered_buttons.Count>0)
{
for(int i=0;i<this.mWnd.registered_buttons.Count;i++)
{
bool ret=UnregisterHotKey(mWnd.Hwnd,(int)this.mWnd.registered_buttons[i]);
if (!ret)
errors=true;
}
}
return(!errors);
}

お願いします。
みきにゅう
会議室デビュー日: 2005/02/18
投稿数: 13
投稿日時: 2005-02-24 21:20
すいません。解決いたしました。

上記URLから、DLLをダウンロードして、DLL内の関数を読んだらできました。

ご迷惑おかけしました。

そしてありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)