• 【转】如何让你的WinForm嵌入桌面


    如何让你的WinForm嵌入桌面

    新一篇: SyntaxHighlighter part1

    首先, 调用一些User32.dll的WinAPI函数

    internal class User32
        
    {
            
    public const int SE_SHUTDOWN_PRIVILEGE = 0x13;

            [DllImport(
    "user32.dll")]
            
    public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

            [DllImport(
    "user32.dll")]
            
    public static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

            [DllImport(
    "user32.dll")]
            
    public static extern bool SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int X, int Y, int cx, 
                
    int cy, uint uFlags);
        }

     转自: http://blog.csdn.net/leomaya/archive/2007/10/26/1845950.aspx

    然后, 在WinForm里面

            public MainForm()
            
    {
                InitializeComponent();

                
    try
                
    {
                    
    if (Environment.OSVersion.Version.Major < 6)
                    
    {
                        
    base.SendToBack();

                        IntPtr hWndNewParent 
    = User32.FindWindow("Progman"null);
                        User32.SetParent(
    base.Handle, hWndNewParent);
                    }

                    
    else
                    
    {
                        User32.SetWindowPos(
    base.Handle, 10000, User32.SE_SHUTDOWN_PRIVILEGE);
                    }

                }

                
    catch (ApplicationException exx)
                
    {
                    MessageBox.Show(
    this, exx.Message, "Pin to Desktop");
                }

            }


            
    private void MainForm_Activated(object sender, EventArgs e)
            
    {
                
    if (Environment.OSVersion.Version.Major >= 6)
                
    {
                    User32.SetWindowPos(
    base.Handle, 10000, User32.SE_SHUTDOWN_PRIVILEGE);
                }

            }


            
    private void MainForm_Paint(object sender, PaintEventArgs e)
            
    {
                
    if (Environment.OSVersion.Version.Major >= 6)
                
    {
                    User32.SetWindowPos(
    base.Handle, 10000, User32.SE_SHUTDOWN_PRIVILEGE);
                }

            }
  • 相关阅读:
    第十一周上机练习
    JAVA第十周上机练习
    JAVA第九周上机练习
    JAVA第八周作业
    JAVA第八周上机作业
    JAVA第七周作业
    Java第七周上机练习
    Java第六周作业
    JAVA第六周上机练习
    34-指针与二维数组
  • 原文地址:https://www.cnblogs.com/hetonghai/p/1207055.html
Copyright © 2020-2023  润新知