1

Windows XP では、次のコードを使用して [スタート] ボタンを無効にすることができました。

hTray = FindWindow (TEXT("Shell_TrayWnd"), NULL);
if (hTray)
{
    hStartButton = FindWindowEx(hTray, NULL, TEXT("Button"), NULL);
    if (hStartButton) ShowWindow(hStartButton, FALSE);
}

パブリック アクセス コンピューター構成の場合、Windows 7 でこれを実行できる必要があります。[スタート] ボタンは (非表示にするだけでなく) 無効にする必要があり、タスク バーの残りの部分は引き続き表示され、使用できる必要があります。スタートボタンと一緒にタスクバーを非表示にすることはオプションではありません。フルスクリーンで実行することはオプションではありません。"Start Killer" を使用しても、実際には [スタート] ボタンが無効になるわけではなく、非表示になるだけなので機能しません (ユーザーは引き続きホットキーを使用して [スタート] メニューを表示できます)。

FindWindowEx0xC017 を 3 番目のパラメーターとして使用し、そのウィンドウを無効にしようとする方法を既に試しました。うまくいきません。この方法は、タスクバー全体が最初に無効になっている場合にのみ機能します。必要なのは、上記で再現したコードが XP で行っているように、[スタート] メニューのみを無効にする方法です。

どんな助けでも大歓迎です。

4

3 に答える 3

2

Windows 7 の「正しい」バージョンは次のとおりです。

HWND hStartBtn = FindWindowEx(NULL, NULL, MAKEINTATOM(0xC017), TEXT("Start"));
if (hStartBtn != NULL)
{
    ShowWindow(hStartBtn, FALSE);
}

ただし、これはボタンを無効にするだけです。つまり、マウスカーソルをその上に置いても、グローやその他の効果は得られません。タスクバーのボタン領域をクリックしてメニューを開くこともできます。どうやら、クリック ハンドラーは、別の [スタート] ボタンの一部としてではなく、タスクバー ウィンドウ自体に実装されているようです。そのため、最初にタスクバー全体を無効にする必要があり、その結果、オンラインで見つけたほとんどのソリューションがまさにそれを行うのです.

ただし、「Start Killer」アプリケーションには、スタートメニューをトリガーする最も一般的なホットキー、つまりCtrl+キーEscとキーを無効にする機能が追加されたようWindowsです。これらのオプションは、ソフトウェアを起動し、タスクバーのアイコンを右クリックして、メニューから [オプション] を選択すると表示されます。このナレッジベースの記事で説明されているように、レジストリを編集して Windows キーを無効にすることもできます。これと同じ機能をコードで自分で実装したい場合、唯一の解決策は、原因となるキー押下イベントをトラップして破棄する低レベルのキーボード フックです。

このような文書化されていないハッキングは、新しいバージョンの Windows を壊すために与えられます。レイモンド・チェンがくすくす笑って、「そう言ったでしょ」などと言うだろうと想像します。Windows インターフェイスをハッキングするのはばかげた仕事です。または、質問で何度か言うように、「オプションではありません」。

于 2011-02-09T03:38:16.650 に答える
0

ここにリストされている使用可能なグループ ポリシーのいずれかを使用します。

スタートボタンを無効にする理由については言及していません。選択した解決策 (つまり、「スタート ボタンを無効にする」) を私たちに伝える代わりに、ユーザーに何をしてほしくないのかを正確に考えれば、はるかに優れた解決策を思いつくかもしれません。

たとえば、ユーザーが特定の設定を変更できないようにしたい場合は、スタート ボタンではなく、それをブロックしてください。または、インストールされているすべてのアプリを表示したくない場合は、スタート ボタンの代わりにこれらのアプリを非表示にします。または...

(ここで私の要点を理解していただければ幸いです)。

于 2011-02-09T15:44:02.727 に答える
0

無効にする必要があるスタート メニューについて特に何かありますか? ポリシー設定またはその他のさまざまなファイル権限を介して同じことができる場合があります。

于 2011-02-09T05:13:07.123 に答える