Я работаю с клиентским/серверным приложением на C#. Мой сервер. Захватите текущие курсоры мыши и отправьте их клиенту, чтобы курсор cleint также отслеживал соответственно. Я могу обнаружить курсоры Windows и сериализовать их по двоичному форматированию. он работает нормально, но проблема заключается в том, что существует множество курсоров, которые невозможно обнаружить как курсоры mspaint, поэтому я должен взять обработчик и создать курсор и его x точки доступа и добавить их в arraylist и сериализовать его по сети, но после 10 до 15 минут это исключает «Ошибка HRESULT E_FAIL была возвращена из вызова COM Compeonet» , и cleint выбрасывает исключение из «Исключение, вызванное мишенью вызова» Может ли кто-нибудь подскажет мне, что происходит неправильно или лучше сделать как этот Некоторые код здесьСериализация курсоров мыши по сети
IntPtr curInfo = GetCurrentCursor();
Cursor cur;
Icon ic;
byte cursor = 0;
if (curInfo != null && curInfo.ToInt32() != 0)
{
cur = CheckForCusrors(curInfo);
try
{
if (!isLinuxClient)
{
if (cur == null)
{
PlatformInvokeUSER32.GetIconInfo(curInfo, out temp);
ic = Icon.FromHandle(curInfo);
//bitmap = ic.ToBitmap();
ArrayList ar = new ArrayList();
ar.Add(ic);
ar.Add(temp.xHotspot);
ar.Add(temp.yHotspot);
b.Serialize(stm, ar);
}
else
{
ArrayList ar = new ArrayList();
ar.Add(cur);
b.Serialize(stm, ar);
}
}
public Cursor CheckForCusrors(IntPtr hCur)
{
if (hCur == Cursors.AppStarting.Handle)
return Cursors.AppStarting;
else if (hCur == Cursors.Arrow.Handle)
return Cursors.Arrow;
.
.
.
else if (hCur == Cursors.PanWest.Handle)
return Cursors.PanWest;
return null;
}
`