Hirdetés
Új hozzászólás Aktív témák
-
Sziasztok.
Van két C# winformom akik szeretném ha üzzennének egymásnak egyszerű stringekkel: AApp BApp
Mind a kettőnél ez a kód:
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, ref COPYDATASTRUCT lParam);
private const int WM_COPYDATA = 0x4A;
[StructLayout(LayoutKind.Sequential)]
struct COPYDATASTRUCT
{
public int dwData;
public int cbData;
public int lpData;
}private void sendMessage(string message, string param)
{
string sepaChar = ";";
message = message + sepaChar + param;
COPYDATASTRUCT cds;
cds.dwData = 0;
cds.lpData = (int)Marshal.StringToHGlobalAnsi(message);
cds.cbData = message.Length;
Process currentProcess = Process.GetCurrentProcess();
Process[] processCollection = Process.GetProcesses();
foreach (Process p in processCollection)
{
if (p.ProcessName == "AApp/BApp")
{
SendMessage(p.MainWindowHandle, (int)WM_COPYDATA, 0, ref cds);
AddDebugText("> OUT MSG: \t" + message);
}
}
}
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_COPYDATA:
COPYDATASTRUCT CD = (COPYDATASTRUCT)m.GetLParam(typeof(COPYDATASTRUCT));
byte[] B = new byte[CD.cbData];
IntPtr lpData = new IntPtr(CD.lpData);
Marshal.Copy(lpData, B, 0, CD.cbData);
string strData = Encoding.Default.GetString(B);
MessageProcessor(strData);
break;
}
base.WndProc(ref m);
}
Szóval úgy tűnik működik. Hogyha a B program indul előbb akkor szépen megvan a kérdés/válasz. Viszont fordított esetben már B programhoz nem érkezik meg a válasz.Mit rontok el?
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Könyvajánló
- Honor Magic V5 - méret a kamera mögött
- Építő/felújító topik
- Újabb videón a Mafia: The Old Country
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- The Division 2 (PC, XO, PS4)
- Hálózati / IP kamera
- Tőzsde és gazdaság
- exHWSW - Értünk mindenhez IS
- sziku69: Fűzzük össze a szavakat :)
- További aktív témák...
- Homepod Mini /// Újszerű // Számla + Garancia
- Wacom Cintiq DTK-2260 digitális rajztábla
- LG 27UP850NP-W - 27" IPS LED - 3840x2160 4K - DisplayHDR 400 - USB Type-C - AMD FreeSync
- Apple iPhone 16 Pro Max - Desert Titanium - Újszerű, Karcmentes,256GB
- Eladó karcmentes Xiaomi Redmi Note 10 5G 4/128GB / 12 hó jótállással
Állásajánlatok
Cég: FOTC
Város: Budapest