Example #1
0
    // プロセスを閉じる。ちょっとバグがあるので、外からアクセスできないように
    protected void Close()
    {
        HmNodeIPCClient.UnregisterChannnel(IP);

        try
        {
            var fileProcMap = HmNodeIPCServerListManager.GetExistProcessList();

            // HmNodeProxyプロセスを列挙する
            foreach (System.Diagnostics.Process proc in System.Diagnostics.Process.GetProcessesByName("HmNodeProxy"))
            {
                // テキスト内にあるプロセスに対して…
                foreach (var pm in fileProcMap)
                {
                    // 実際に走っているプロセスのIDと一致したら…
                    if (pm.IP == IP && pm.processID == proc.Id)
                    {
                        // ウィンドウが無い場合にそなえてネイティブレベルでWM_CLOSEを送る
                        proc.SendMessageCloseWindow();

                        // 閉じるプロセスだけは除去
                        fileProcMap = fileProcMap.FindAll((m) => { return(m.processID != pm.processID); });

                        // 1つ除去したリストで書き込み
                        HmNodeIPCServerListManager.WriteProcesMap(fileProcMap);

                        // こちらは、IsVisibleでないと機能しない。
                        // proc.CloseMainWindow();
                        break;
                    }
                }
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
Example #2
0
 public HmNodeRemoteObject.ResponseData GetLastResponse()
 {
     return(HmNodeIPCClient.GetLastResponse(IP));
 }
Example #3
0
 public HmNodeRemoteObject.ResponseData GetResponse(System.Collections.Specialized.NameValueCollection param)
 {
     return(HmNodeIPCClient.GetResponse(IP, param));
 }