调用WinAPi SendMessageSendMessage(hWnd,WM_CLOSE,0,0);

解决方案 »

  1.   

    都获取到句柄了. 调用Sdk 的close form 有没有?
    c# 互操作 win 中的 dll
      

  2.   


    已经试过了,程序报错,原因是未定义WM_CLOSE,再求正解。
      

  3.   

    已解决,好东西分享给大家。 [csharp] 
        01.    public static class NativeConst 
        02.    { 
        03.        public const int WM_CREATE                  = 0x0001; 
        04.        public const int WM_DESTROY                 = 0x0002; 
        05.        public const int WM_MOVE                    = 0x0003;  
        06.        public const int WM_SIZE                    = 0x0005; 
        07.        public const int WM_ACTIVATE                = 0x0006; 
        08.        public const int WM_SETFOCUS                = 0x0007; 
        09.        public const int WM_KILLFOCUS               = 0x0008; 
        10.        public const int WM_ENABLE                  = 0x000A; 
        11.        public const int WM_SETREDRAW               = 0x000B; 
        12.        public const int WM_SETTEXT                 = 0x000C; 
        13.        public const int WM_GETTEXT                 = 0x000D; 
        14.        public const int WM_GETTEXTLENGTH           = 0x000E; 
        15.        public const int WM_PAINT                   = 0x000F; 
        16.        public const int WM_CLOSE                   = 0x0010; 
        17.        public const int WM_QUERYENDSESSION         = 0x0011; 
        18.        public const int WM_QUIT                    = 0x0012; 
        19.        public const int WM_QUERYOPEN               = 0x0013; 
        20.        public const int WM_ERASEBKGND              = 0x0014; 
        21.        public const int WM_SYSCOLORCHANGE          = 0x0015; 
        22.        public const int WM_ENDSESSION              = 0x0016; 
        23.        public const int WM_SHOWWINDOW              = 0x0018; 
        24.        public const int WM_ACTIVATEAPP             = 0x001C; 
        25.        public const int WM_FONTCHANGE              = 0x001D; 
        26.        public const int WM_TIMECHANGE              = 0x001E; 
        27.        public const int WM_CANCELMODE              = 0x001F; 
        28.        public const int WM_SETCURSOR               = 0x0020; 
        29.        public const int WM_MOUSEACTIVATE           = 0x0021; 
        30.        public const int WM_CHILDACTIVATE           = 0x0022; 
        31.        public const int WM_QUEUESYNC               = 0x0023; 
        32.        public const int WM_GETMINMAXINFO           = 0x0024; 
        33.        public const int WM_PAINTICON               = 0x0026; 
        34.        public const int WM_ICONERASEBKGND          = 0x0027; 
        35.        public const int WM_NEXTDLGCTL              = 0x0028; 
        36.        public const int WM_SPOOLERSTATUS           = 0x002A; 
        37.        public const int WM_DRAWITEM                = 0x002B; 
        38.        public const int WM_MEASUREITEM             = 0x002C; 
        39.        public const int WM_VKEYTOITEM              = 0x002E; 
        40.        public const int WM_CHARTOITEM              = 0x002F; 
        41.        public const int WM_SETFONT                 = 0x0030; 
        42.        public const int WM_GETFONT                 = 0x0031; 
        43.        public const int WM_SETHOTKEY               = 0x0032; 
        44.        public const int WM_GETHOTKEY               = 0x0033; 
        45.        public const int WM_QUERYDRAGICON           = 0x0037; 
        46.        public const int WM_COMPAREITEM             = 0x0039; 
        47.        public const int WM_COMPACTING              = 0x0041; 
        48.        public const int WM_WINDOWPOSCHANGING       = 0x0046; 
        49.        public const int WM_WINDOWPOSCHANGED        = 0x0047; 
        50.        public const int WM_POWER                   = 0x0048; 
        51.        public const int WM_COPYDATA                = 0x004A; 
        52.        public const int WM_CANCELJOURNA            = 0x004B; 
        53.        public const int WM_NOTIFY                  = 0x004E; 
        54.        public const int WM_INPUTLANGCHANGEREQUEST  = 0x0050; 
        55.        public const int WM_INPUTLANGCHANGE         = 0x0051; 
        56.        public const int WM_TCARD                   = 0x0052; 
        57.        public const int WM_HELP                    = 0x0053; 
        58.        public const int WM_USERCHANGED             = 0x0054; 
        59.        public const int WM_NOTIFYFORMAT            = 0x0055; 
        60.        public const int WM_CONTEXTMENU             = 0x007B; 
        61.        public const int WM_STYLECHANGING           = 0x007C; 
        62.        public const int WM_STYLECHANGED            = 0x007D; 
        63.        public const int WM_DISPLAYCHANGE           = 0x007E; 
        64.        public const int WM_GETICON                 = 0x007F; 
        65.        public const int WM_SETICON                 = 0x0080; 
        66.        public const int WM_NCCREATE                = 0x0081; 
        67.        public const int WM_NCDESTROY               = 0x0082; 
        68.        public const int WM_NCCALCSIZE              = 0x0083; 
        69.        public const int WM_NCHITTEST               = 0x0084; 
        70.        public const int WM_NCPAINT                 = 0x0085; 
        71.        public const int WM_NCACTIVATE              = 0x0086; 
        72.        public const int WM_GETDLGCODE              = 0x0087; 
        73.        public const int WM_NCMOUSEMOVE             = 0x00A0; 
        74.        public const int WM_NCLBUTTONDOWN           = 0x00A1; 
        75.        public const int WM_NCLBUTTONUP             = 0x00A2; 
        76.        public const int WM_NCLBUTTONDBLCLK         = 0x00A3; 
        77.        public const int WM_NCRBUTTONDOWN           = 0x00A4; 
        78.        public const int WM_NCRBUTTONUP             = 0x00A5; 
        79.        public const int WM_NCRBUTTONDBLCLK         = 0x00A6; 
        80.        public const int WM_NCMBUTTONDOWN           = 0x00A7; 
        81.        public const int WM_NCMBUTTONUP             = 0x00A8; 
        82.        public const int WM_NCMBUTTONDBLCLK         = 0x00A9; 
        83.        public const int WM_KEYFIRST                = 0x0100; 
        84.        public const int WM_KEYUP                   = 0x0101; 
        85.        public const int WM_CHAR                    = 0x0102; 
        86.        public const int WM_DEADCHAR                = 0x0103; 
        87.        public const int WM_SYSKEYDOWN              = 0x0104; 
        88.        public const int WM_SYSKEYUP                = 0x0105; 
        89.        public const int WM_SYSCHAR                 = 0x0106; 
        90.        public const int WM_SYSDEADCHAR             = 0x0107; 
        91.        public const int WM_INITDIALOG              = 0x0110; 
        92.        public const int WM_COMMAND                 = 0x0111; 
        93.        public const int WM_SYSCOMMAND              = 0x0112; 
        94.        public const int WM_TIMER                   = 0x0113; 
        95.        public const int WM_HSCROLL                 = 0x0114; 
        96.        public const int WM_VSCROLL                 = 0x0115; 
        97.        public const int WM_INITMENU                = 0x0116; 
        98.        public const int WM_INITMENUPOPUP           = 0x0117; 
        99.        public const int WM_MENUSELECT              = 0x011F; 
        100.        public const int WM_MENUCHAR                = 0x0120; 
        101.        public const int WM_ENTERIDLE               = 0x0121; 
        102.        public const int WM_CTLCOLORMSGBOX          = 0x0132; 
        103.        public const int WM_CTLCOLOREDIT            = 0x0133; 
        104.        public const int WM_CTLCOLORLISTBOX         = 0x0134; 
        105.        public const int WM_CTLCOLORBTN             = 0x0135; 
        106.        public const int WM_CTLCOLORDLG             = 0x0136; 
        107.        public const int WM_CTLCOLORSCROLLBAR       = 0x0137; 
        108.        public const int WM_CTLCOLORSTATIC          = 0x0138; 
        109.        public const int WM_SHARED_MENU             = 0x01E2; 
      

  4.   


        110.        public const int WM_MOUSEFIRST              = 0x0200; 
        111.        public const int WM_MOUSEMOVE               = 0x0200; 
        112.        public const int WM_LBUTTONDOWN             = 0x0201; 
        113.        public const int WM_LBUTTONUP               = 0x0202; 
        114.        public const int WM_LBUTTONDBLCLK           = 0x0203; 
        115.        public const int WM_RBUTTONDOWN             = 0x0204; 
        116.        public const int WM_RBUTTONUP               = 0x0205; 
        117.        public const int WM_RBUTTONDBLCLK           = 0x0206; 
        118.        public const int WM_MBUTTONDOWN             = 0x0207; 
        119.        public const int WM_MBUTTONUP               = 0x0208; 
        120.        public const int WM_MBUTTONDBLCLK           = 0x0209; 
        121.        public const int WM_MOUSEWHEEL              = 0x020A; 
        122.        public const int WM_PRINT                   = 0x0317; 
        123. 
        124. 
        125.        public const int HC_ACTION                  = 0; 
        126.        public const int WH_CALLWNDPROC             = 4; 
        127.        public const int GWL_WNDPROC                = -4; 
        128. 
        129. 
        130.        public const int GW_HWNDFIRST               = 0; 
        131.        public const int GW_HWNDLAST                = 1; 
        132.        public const int GW_HWNDNEXT                = 2; 
        133.        public const int GW_HWNDPREV                = 3; 
        134.        public const int GW_OWNER                   = 4; 
        135.        public const int GW_CHILD                   = 5; 
        136. 
        137. 
        138.        public const int SC_RESTORE                 = 0xF120; //还原    
        139.        public const int SC_MOVE                    = 0xF010; //移动    
        140.        public const int SC_SIZE                    = 0xF000; //大小    
        141.        public const int SC_MINIMIZE                = 0xF020; //最小化    
        142.        public const int SC_MAXIMIZE                = 0xF030; //最大化    
        143.        public const int SC_CLOSE                   = 0xF060; //关闭   
        144. 
        145. 
        146.        //WM_NCHITTEST消息处理返回值  
        147.        public const int HTERROR                    = -2; 
        148.        public const int HTTRANSPARENT              = -1; 
        149.        public const int HTNOWHERE                  = 0; 
        150.        public const int HTCLIENT                   = 1; 
        151.        public const int HTCAPTION                  = 2; 
        152.        public const int HTSYSMENU                  = 3; 
        153.        public const int HTGROWBOX                  = 4; 
        154.        public const int HTSIZE                     = HTGROWBOX; 
        155.        public const int HTMENU                     = 5; 
        156.        public const int HTHSCROLL                  = 6; 
        157.        public const int HTVSCROLL                  = 7; 
        158.        public const int HTMINBUTTON                = 8; 
        159.        public const int HTMAXBUTTON                = 9; 
        160.        public const int HTLEFT                     = 10; 
        161.        public const int HTRIGHT                    = 11; 
        162.        public const int HTTOP                      = 12; 
        163.        public const int HTTOPLEFT                  = 13; 
        164.        public const int HTTOPRIGHT                 = 14; 
        165.        public const int HTBOTTOM                   = 15; 
        166.        public const int HTBOTTOMLEFT               = 16; 
        167.        public const int HTBOTTOMRIGHT              = 17; 
        168.        public const int HTBORDER                   = 18; 
        169.        public const int HTREDUCE                   = HTMINBUTTON; 
        170.        public const int HTZOOM                     = HTMAXBUTTON; 
        171.        public const int HTSIZEFIRST                = HTLEFT; 
        172.        public const int HTSIZELAST                 = HTBOTTOMRIGHT; 
        173.        public const int HTOBJECT                   = 19; 
        174.        public const int HTCLOSE                    = 20; 
        175.        public const int HTHELP                     = 21; 
        176. 
        177. 
        178.        public const int WS_MAXIMIZEBOX             = 0x10000; 
        179.        public const int WS_MINIMIZEBOX             = 0x20000; 
        180.        public const int WS_SIZEBOX                 = 0x40000; 
        181.        public const int WS_SYSMENU                 = 0x80000; 
        182. 
        183. 
        184.        public const int MF_REMOVE                  = 0x1000; 
        185. 
        186. 
        187.        /// <summary>  
        188.        /// 贴图选项:将源矩形区域直接拷贝到目标矩形区域  
        189.        /// </summary>  
        190.        public const int ROP_SRCCOPY                = 0x00CC0020; 
        191.    } 
      

  5.   


    已经试过了,程序报错,原因是未定义WM_CLOSE,再求正解。 WM_CLOSE = 0x0010; 妹子要懂的百度
    C#没有这种API的常量值,要自己定义。
      

  6.   

    PostMessage WM_CLOSE 就可以了。不知道你的“好东西”好在哪里。
      

  7.   

    我只是想把windows的一些消息定义分享给大家   应该会有人觉得有用
      

  8.   

    16.        public const int WM_CLOSE                   = 0x0010;