C# WndProc方法(windows消息传递)在模拟我的应用程序时未获取数据

C# WndProc方法(windows消息传递)在模拟我的应用程序时未获取数据,c#,windows,desktop-application,messaging,C#,Windows,Desktop Application,Messaging,我正在重写C中的WndProc方法来获取从VB.net应用程序发送的数据。我正确地接收数据,但问题是当我最小化我的应用程序时,我无法接收数据,当我再次最大化应用程序时,它工作正常。线程暂停/启动之类的问题 我搜索了一些解决方案。有些人说set属性“ShowInTaskbar=false”。 有人说,处理程序的问题并没有被创建 但我没有找到更好的解决办法 你有什么办法解决这个问题吗 以下是我的C代码: [DllImport("user32.dll", CharSet = CharSet.Auto)

我正在重写C中的WndProc方法来获取从VB.net应用程序发送的数据。我正确地接收数据,但问题是当我最小化我的应用程序时,我无法接收数据,当我再次最大化应用程序时,它工作正常。线程暂停/启动之类的问题

我搜索了一些解决方案。有些人说set属性“ShowInTaskbar=false”。 有人说,处理程序的问题并没有被创建

但我没有找到更好的解决办法

你有什么办法解决这个问题吗

以下是我的C代码:

[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern int SendMessage(IntPtr hwnd, int Msg, int wParam, int lParam);
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
    case 0x401:
        if(x==0)
            BuildString.ReceivedString(m.LParam);
        break;

    default:
        base.WndProc(ref m);
        break;
}
}

您好,mins,您提供的链接表明,在最小化应用程序或避免最小化时关闭应用程序。但这并不是解决方案。使用SendMessage实现进程互操作是一种非常脆弱的方法。最大的问题是,你没有好的方法去发现它没有完成工作。尤其是在Winforms中,ShowInTaskbar并不是唯一导致Handle属性更改的属性。您可以通过重写OnHandleCreated并在其上设置断点来调试它。不要这样做,使用一个名为pipe或WCF的套接字。谢谢Hans,我已经在VB.net中构建了客户端驱动程序应用程序,并提供了发送数据的机制。我正在开发一个C应用程序,它将这些数据呈现给我的应用程序,所以我不得不使用这个概念。你有什么解决办法吗?请告诉我。感谢您的评论。我给了您一个调试提示,我建议您使用它来消除可能的故障模式。如果你不发布MCVE,那么你需要找到一个通灵师免费提供建议的网站。