修改windows窗口的标题名称,就是修改下图的东西:
第一种:
using UnityEngine; using System; using System.Runtime.InteropServices; public class SetWindowText : MonoBehaviour { #region WIN32API delegate bool EnumWindowsCallBack(IntPtr hwnd, IntPtr lParam); [DllImport("user32", CharSet = CharSet.Unicode)] static extern bool SetWindowTextW(IntPtr hwnd, string title); [DllImport("user32")] static extern int EnumWindows(EnumWindowsCallBack lpEnumFunc, IntPtr lParam); [DllImport("user32")] static extern uint GetWindowThreadProcessId(IntPtr hWnd, ref IntPtr lpdwProcessId); #endregion IntPtr myWindowHandle; public void Start() { IntPtr handle = (IntPtr)System.Diagnostics.Process.GetCurrentProcess().Id; //获取进程ID EnumWindows(new EnumWindowsCallBack(EnumWindCallback), handle); //枚举查找本窗口 SetWindowTextW(myWindowHandle, "测试代码"); //设置窗口标题 } bool EnumWindCallback(IntPtr hwnd, IntPtr lParam) { IntPtr pid = IntPtr.Zero; GetWindowThreadProcessId(hwnd, ref pid); if (pid == lParam) //判断当前窗口是否属于本进程 { myWindowHandle = hwnd; return false; } return true; } }
第二种:
using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Text; using UnityEngine; public class NewBehaviourScript : MonoBehaviour { //Import the following. [DllImport("user32.dll", EntryPoint = "SetWindowTextW", CharSet = CharSet.Unicode)] public static extern bool SetWindowTextW(System.IntPtr hwnd, System.String lpString); [DllImport("user32.dll", EntryPoint = "FindWindow")] public static extern System.IntPtr FindWindow(System.String className, System.String windowName); public void Change() { //Get the window handle. var windowPtr = FindWindow(null, "WindowTitleChange");//打包时的ProductName,找到名字是WindowTitleChange的窗口
//Set the title text using the window handle. SetWindowTextW(windowPtr, "测试代码"); } }
原文地址:https://www.cnblogs.com/Peng18233754457/p/9816576.html
时间: 2024-10-13 23:05:19