WinUI3 FindWindow() продолжает возвращать 0x0000000000000000C#

Место общения программистов C#
Ответить
Anonymous
 WinUI3 FindWindow() продолжает возвращать 0x0000000000000000

Сообщение Anonymous »

Я создаю два приложения, используя winui3C# в качестве приложения-отправителя и приложения-получателя.
В приложении-отправителе я использовал findwindow() и send message() при событии нажатия кнопки.
В приложении-получателе я хочу чтобы показать уведомление, когда приложение-отправитель отправляет сообщение.
Проблема в том, что результат Findwindow(): «0x0000000000000000».
Есть идеи, что мне осталось сделать в этом? Спасибо.
Вот мой код отправителя
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

[DllImport("user32.dll")]
public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);

private const uint WM_USER = 0x0400; // Custom message range for user-defined messages
private const int WM_MY_MESSAGE = (int)(WM_USER + 1); // Custom message identifier

private async void SendMessageButton_Click(object sender, Microsoft.UI.Xaml.RoutedEventArgs e)
{
try
{
// Find the window handle of the receiver app
IntPtr hWnd = FindWindow(null, "com.receiver"); //namespace of receiver app

if (hWnd != IntPtr.Zero)
{
// Send a message to the receiver app
SendMessage(hWnd, (uint)WM_MY_MESSAGE, IntPtr.Zero, IntPtr.Zero);
await ShowMessageDialog("Message sent to the receiver app.");
}
else
{
await ShowMessageDialog("Receiver app window not found.");
}
}
catch (Exception ex)
{
await ShowMessageDialog("An error occurred: " + ex.Message);
}
}

мой приемник:
private const int WM_MY_MESSAGE = 0x0400 + 1; // Custom message identifier
public MainPage()
{
this.InitializeComponent();
RegisterWindowMessage();
}
private void RegisterWindowMessage()
{
// Register the custom window message
RegisterWindowMessage("WM_MY_MESSAGE");
}

[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern int RegisterWindowMessage(string lpString);

private void Dispatcher_AcceleratorKeyActivated(CoreDispatcher sender, AcceleratorKeyEventArgs args)
{
// Handle the custom window message
if (args.KeyStatus.RepeatCount == WM_MY_MESSAGE)
{
ShowNotification("Message received from sender app.");
}
}

private async void ShowNotification(string message)
{
var dialog = new MessageDialog(message);
await dialog.ShowAsync();
}


Подробнее здесь: https://stackoverflow.com/questions/783 ... 0000000000
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»