c # fangen Zwischenablage ändert, wird nicht funktionieren, wenn Formular Tray minimiert

StackOverflow https://stackoverflow.com/questions/2489281

  •  21-09-2019
  •  | 
  •  

Frage

ich habe ein Problem, den "Catch Zwischenablage Event Code" auf diesem Link gefunden werden:

Zwischenablage Ereignis C #

funktioniert der Code groß nur, wenn die Form bleibt im Vordergrund, aber nicht minimiert Fach: Wenn Sie einen NotifyIcon hinzufügen und das Formular auf Behälter und die ShowInTaskBar auf false drehen (so dass Sie nur ein Symbol haben im Fach ), ändert sich mehr das Programm werde nicht jede Zwischenablage fangen ... auch wenn Sie das Formular zurück zu maximieren, es wird nicht wieder arbeiten ... Sie das Programm neu starten ..

Jede Idee, wie dieses Problem zu lösen!? Wie kann ich Zwischenablage Veränderungen fangen, auch wenn die Form in das Fach minimiert wird!?

Jede Hilfe ist wirklich zu schätzen ...

Danke

War es hilfreich?

Lösung

Es sollte, wenn minimiert arbeiten - wirklich minimiert obwohl, oder versteckt. Wenn Ihre Implementierung von „minimiert“ invovles das Fenster zu zerstören, dann ist das Handle ist ungültig. Und die Zwischenablage Kette ist nun gebrochen für das, was in der Zwischenablage Ereignissen Downstream zuzuhörte ...

Werfen Sie einige Debug-Code in dort this.Handle als String (ex: "123456") angezeigt werden soll. Setzen Sie den Anruf zu SetClipboardViewer in einem Click-Ereignisse auf dem Formular. Klicken Sie darauf, sehen Sie die Nummer. Minimieren, wiederherstellen. Klicken Sie erneut auf. Haben Sie die gleiche Nummer haben? Du solltest. Wenn nicht, dann liegt das Problem. Die Zwischenablage Ereignisse müssen zu einem Fenster gehen, dass Aufenthalte um. Es kann ein ausgeblendetes Fenster im Hintergrund sein.

- Chris

Andere Tipps

Wie auch immer, könnte man eine andere Form haben, die versteckt ist, und dass die Windows-Nachrichten verwenden zu fangen. Nie schließen / neu erstellen das Fenster. Es öffnet sich beim Start, bleibt offen, aber unsichtbar. Dies funktioniert.

Chris

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top