hallöchen,
wie in einem anderen thread geschrieben, baue ich ein tool, dass die zwischenablage ausliest und wenn ein bild vorhanden ist, wird dieses gespeichert.
nun will ich das, das auf einem server eine anwendung läuft, diese sendet ein flag an den client. der client wertet dieses flag aus und weiß, das er nun in die zwischenablage schauen soll und wenn ein bild drin liegt, soll er dieses an den server zurückschicken, der das bild bzw. die daten dann in eine datei abspeichert.
das versenden des flags habe ich über sockets realisiert und das zurücksenden der bilddaten soll auf selben wegen funktionieren.
jetzt habe ich aber das problem, das wenn der server das flag an den client sendet und ich darauf hin meine funktion (CheckClipboard()) aufrufe, die die zwischenablage durchsucht, bekomme ich keine daten, da die zwischenablage leer zu sein scheint, obwohl definitiv bilddaten drin liegen und ich diese auch in einem anderen programm einfügen kann.
Clipboard.ContainsImage() gibt mir in dem fall
false zurück
rufe ich meine funktion direkt über einen button auf, funktionierts. nur über die funktion der sockets gehts scheinbar nicht.
hier der link zu dem tutorial das ich für die socket kommunikation verwende:
Tutorial
der direktlink zu den sources für den server und den client:
Sources
meine relevanten stellen sind die folgenden (der rest steht in den sources):
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| public void OnDataReceived(IAsyncResult asyn) { try { SocketPacket theSockId = (SocketPacket)asyn.AsyncState; int iRx = theSockId.thisSocket.EndReceive(asyn); CheckClipboard(); WaitForData(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void CheckClipboard() { if (Clipboard.ContainsImage()) MessageBox.Show("bildchen, juhu!!!"); else MessageBox.Show("keine bilder :("); } |
kann mir jemand sagen wieso ich hier keine daten aus der zwischenablage bekomme?
danke