Ich habe ein Dienstprogramm zur Bildschirmaufnahme, auf dem ich einen Bereich auf dem Desktop kleben kann. Ich habe dies getan ist eine ziemlich einfache Art und Weise, ich habe eine Form, die die gleiche Größe wie der Bildschirm ist, auf dem ich einen Screenshot des Desktops in Graustufen verwandelt. Wenn der Benutzer die linke Maustaste gedrückt hält, kann er einen Bereich auf dem Formular auswählen. Das Rechteck, das der Benutzer zeichnet, ist mit TransparentColor gefüllt. Sobald der Benutzer seine Maus hochhebt, bleibt das transparente Rechteck an seinem Platz und der tatsächliche Desktop ist sichtbar. Hier kommt mein Problem: Auf meinem Dev-PC kann ich tatsächlich durch dieses transparente Rechteck klicken und navigieren usw. Während auf meinem anderen PC das Formular reagiert, klickt Mausklick auf das eigentliche transparente Rechteck.Click-through auf dem Desktop auf einem transparenten Formular
Ich benutze .NET 4.0 in C#, irgendwelche Ideen, wie ich es auf allen Fällen auf den Desktop klicken kann ??
Vielen Dank und sehr geschätzt :)
Anstatt einen Timer zu verwenden, warum nutzen Sie nicht die OnMouseEnter/OnMouseDown-Ereignisse für jedes Steuerelement in Ihrem Formular? – Jason
Fügen Sie die fehlenden Werte für die Konstanten hinzu. –
Hier sind einige nützliche Links: http://stackoverflow.com/questions/1524035/topmost-form-clicking-through-possible, http://pinvoke.net/default.aspx/Constants.GWL%20-%20GetWindowLong, http://pinvoke.net/default.aspx/Constants.Window%20styles – Xantix