5

.NET アプリケーションを WM5 から WM6.5 に移植しています。新しい解像度の他に、スタート メニューとタイトル バー (キャプション バー) の UI 動作が異なることに気付きました。私のアプリケーションは、ユーザーがアプリケーションを終了して認証をバイパスできないようなキオスク モードで動作する必要があります。この目的のために、WM5 ではスタート ボタンと閉じるボタンを非表示にしていました。私は次の機能を使用しています:

SHFullScreen(hWnd, SHFS_HIDESTARTICON | SHFS_HIDESIPBUTTON); 

ボタンの非表示はWM6.5でも機能しますが、別の問題があります。ユーザーは、タイトル バー (メニュー バー、キャプション バー - 適切な名前がわからない - 画面上部のバー) をタップして、Windows タスク マネージャーにアクセスできます。添付のスクリーンショットを参照 応用

次のように、ユーザーがタップしてタスク マネージャーにアクセスできる場所を丸で囲みました。 タスク マネージャーの開始

その相互作用を無効にする方法はありますか? デバイスは Motorola MC65 です。Windows Mobile 6.5 を実行しています。

したがって、最終的な回答は、以下に投稿された回答の一部です。

IntPtr tWnd = FindWindow("HHTaskBar", null);
EnableWindow(tWnd, false);

HHTaskBar を見つけて無効にするだけです。いくつかの欠点がありますが、全体的にはうまくいきます。

4

2 に答える 2

5

上部のタスクバー全体を非表示にして、フォームを最大化できます。

// the following three lines are p/invoked
IntPtr tWnd = FindWindow("HHTaskBar", null);
EnableWindow(tWnd, false);
ShowWindow(tWnd, SW_HIDE);

// maximize your form
form.Size = new Size(240, 320); // or whatever the device's screen dimensions are
form.WindowState = FormWindowState.Maximized;
于 2011-03-29T12:49:43.213 に答える
0

MSDN で次のように説明されている SHFS_HIDETASKBAR を使用して SHFullScreenメソッドを試してください。

タスク バーを z オーダーの一番下に配置します。画面全体を必要とするゲームまたはアプリケーションは、このフラグを使用する場合があることに注意してください。このフラグを使用する前に、アプリケーションのサイズが全画面表示になっていることを確認してください。そうしないと、関数が何もしなかったように見えます。

protected override void OnLoad(EventArgs e)
{
    ...

    SHFullScreen(this.Handle, SHFS_HIDETASKBAR | 
        SHFS_HIDESIPBUTTON | SHFS_HIDESTARTICON);

    base.OnLoad(e);
}

private const int SHFS_SHOWTASKBAR = 0x0001;
private const int SHFS_HIDETASKBAR = 0x0002;
private const int SHFS_SHOWSIPBUTTON = 0x0004;
private const int SHFS_HIDESIPBUTTON = 0x0008;
private const int SHFS_SHOWSTARTICON = 0x0010;
private const int SHFS_HIDESTARTICON = 0x0020;

[DllImport("aygshell")]
static extern bool SHFullScreen(IntPtr hwnd, int dwState);
于 2011-03-29T12:45:36.047 に答える