zoukankan      html  css  js  c++  java
  • 【转】如何让你的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 数组
    【转】Centos 设置IP地址的几种方式
    【转】CentOS 使用yum命令安装出现错误提示”could not retrieve mirrorlist http://mirrorlist.centos.org ***”
    【转】CentOS图形界面的开启与关闭
    【转】linux Centos 6.5 安装桌面环境GNOME
    VirtualBox 更改主机和虚拟机之间的鼠标切换热键
    【转】Virtualbox虚拟机配置安装CentOS 6.5图文教程
    0622 python 基础05
    0617 python 基础04
    0610 python 基础03
  • 原文地址:https://www.cnblogs.com/hetonghai/p/1207055.html
Copyright © 2011-2022 走看看