2010-11-27 7 views
1

Ich versuche, eine Schaltfläche in einer anderen Anwendungdeaktivieren oder Ausblenden-Schaltfläche in einer anderen Anwendung

ich die HNDL der Taste erhalten deaktivieren oder zu verbergen, aber wenn ich SendMessage

[DllImport("user32.dll", SetLastError = true)] 
public static extern bool SendMessage(IntPtr hWnd, uint Msg, int wParam, 
    bool lParam); 

bool x = SendMessage(hndl, TB_HIDEBUTTON, 0, false); 

nenne es passiert nichts und x immer gibt false zurück. Ich habe auch versucht TB_DELETEBUTTON

+0

Um nur etwas hier zu erwähnen. Wenn das Programm keine API ausdrückt, um diese Schaltfläche zu deaktivieren oder zu verstecken, ist es generell eine sehr schlechte Idee, sich damit zu befassen. Wenn Sie Glück haben, wird das Programm gut funktionieren, aber wenn Sie Pech haben, könnte es zum Absturz kommen ... oder noch schlimmer. –

Antwort

3

Sie senden die falsche Nachricht. Rufen Sie die Schaltfläche auf und rufen Sie EnableWindow(hndl, FALSE); stattdessen (oder wenn Sie es ausblenden möchten, versuchen Sie ShowWindow(hndl, SW_HIDE);).

+0

vielen Dank OJ es funktioniert schon vielen Dank – bahgat

+1

Was haben Sie getan, damit es funktioniert? Wenn mein Vorschlag richtig ist, können Sie dann bitte die Antwort akzeptieren? –

0

TB_HIDEBUTTON ist eine Fenstermeldung, mit der die Schaltfläche in einer Symbolleiste ausgeblendet wird. Wenn Sie dies tun möchten, ist etwas mit Ihrem Code nicht in Ordnung, Sie müssen die Schaltfläche identifier als dritten Parameter von SendMessage angeben, gehen Sie zu link text als Referenz.

Verwandte Themen