http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 2453|回复: 1

[其他] 各位大神帮看看这修改电脑名称的代码

[复制链接]
发表于 2016-2-16 13:02:56 | 显示全部楼层 |阅读模式
我想用软件修改电脑名称后不需要重启电脑就能生效,在网上找到了一段代码套上修改后右键“计算机”属性看到的名称确实变了,但是实际它还没有生效,在cmd里运行"ipconfig /all"的时候还是显示旧的电脑名称,下面附上代码,希望各位大神帮看看。

[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
using System.Runtime.InteropServices;

namespace 修改电脑名称
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        // SendMessageTimeout tools
        [Flags]
        public enum SendMessageTimeoutFlags : uint
        {
            SMTO_NORMAL = 0x0000,
            SMTO_BLOCK = 0x0001,
            SMTO_ABORTIFHUNG = 0x0002,
            SMTO_NOTIMEOUTIFNOTHUNG = 0x0008
        }
        const int WM_SETTINGCHANGE = 0x001A;
        const int HWND_BROADCAST = 0xffff;

        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
        public static extern IntPtr SendMessageTimeout(
           IntPtr windowHandle,
           uint Msg,
           IntPtr wParam,
           string lParam,
           SendMessageTimeoutFlags flags,
           uint timeout,
           out IntPtr result
           );

        public static void NotifyOS1()
        {
            IntPtr result1;
            //修改后发送一个消息给系统 
            //调用
            SendMessageTimeout(
                                 new IntPtr(HWND_BROADCAST),
                                 WM_SETTINGCHANGE,
                                 IntPtr.Zero,
                                 "Environment",
                                 SendMessageTimeoutFlags.SMTO_ABORTIFHUNG,
                                 200,
                                 out result1);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            RegistryKey myRKCN = Registry.LocalMachine.OpenSubKey("SYSTEM\\ControlSet001\\Services\\Tcpip\\Parameters");
            foreach (string myCpName in myRKCN.GetValueNames())
            {
                if (myCpName == "NV Hostname")
                {
                    this.textBox1.Text = myRKCN.GetValue(myCpName).ToString();
                    NotifyOS1();
                }
                else
                {
                    continue;
                }
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            RegistryKey myRKCN = Registry.LocalMachine.OpenSubKey("SYSTEM\\ControlSet001\\Services\\Tcpip\\Parameters", true);
            foreach (string site in myRKCN.GetValueNames())
            {
                if (site == "NV Hostname")
                {
                    myRKCN.DeleteValue(site, false);
                    myRKCN.SetValue("NV Hostname", this.textBox1.Text);
                }
                else
                {
                    continue;
                }
            }
            MessageBox.Show("修改成功");
        }


    }
}



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2016-2-16 13:19:29 | 显示全部楼层
我只是路过打酱油的。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-2 21:29

© 2014-2021

快速回复 返回顶部 返回列表