相关文章推荐
坚强的啄木鸟  ·  Unity 之 ...·  2 周前    · 
风流的松树  ·  Unity ...·  2 周前    · 
另类的开水瓶  ·  c# unity3d ...·  2 周前    · 
仗义的山羊  ·  modbus ...·  3 月前    · 
时尚的豌豆  ·  Qt:QTreeWidget拖拽item到Q ...·  8 月前    · 

做展厅项目或者其它定制化桌面程序,经常需要设置开机自启动,且把无关的窗口最小化。

本人试过在开机自启的时候写txt脚本让某程序最小化,结果不太如意。

一怒之下,直接用Unity自己写个小插件实现这个小功能。

经测试,可实现根据某个窗口名称隐藏该窗口,但不适用窗口名称带中文的。可根据系统进程名称最小化窗口。

代码如下:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;
using WindowsHandler;
public class WindowMin : MonoBehaviour
    [DllImport("user32.dll")]
    public static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);
    [DllImport("user32.dll", EntryPoint = "FindWindow")]
    private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);
    [DllImport("user32.dll")]
    static extern IntPtr GetForegroundWindow();
    // Start is called before the first frame update
    void Start()
        //以下为根据窗口名称隐藏窗口
        IReadOnlyList<WindowInfo> list=WindowEnumerator.FindAll();
        string mm="";
         Tools.WriteTxt(Application.streamingAssetsPath+"/2.txt",mm);
        for (int i = 0; i < list.Count; i++)
            mm+="\n"+list[i].Title;
            Debug.Log(list[i].Title);
        Tools.WriteTxt(Application.streamingAssetsPath+"/2.txt",mm);
        return;
        //以下根据进程隐藏窗口
        string str = Tools.LoadString(Application.streamingAssetsPath + "/1.txt");
        //User32API.GetHandleByProcessName(str);
        IntPtr a=FindWindow(null,str);
        if(a!=IntPtr.Zero){
             Application.Quit();
        ShowWindow(a, 2);
       // ShowWindow(GetForegroundWindow(), 2);
        StartCoroutine(AA());
    IEnumerator AA(){
        yield return new WaitForSeconds(1);
         Application.Quit();
    // Update is called once per frame
    void Update()

将代码随便挂在某个物体上,然后打包,在StreamingAssets文件夹的txt里面填入窗口名称或进程名称,运行即可。

相关工程链接及打包文件地址:https://download.csdn.net/download/qq_33155437/85444324

System.Drawing.dll System.Windows.Forms.dll System.Deployment.dll(运用基于.Net4.x的dll打包时,需要用到该dll,否则会报错) 代码如下: using System; using System.Runtime.InteropSe... 先新建一个Weapon,在里面存放各种武器,武器由Anchor和States构成,Anchor里存放设计(外观)以及一些Resources,States保存武器的状态,Hip表示默认状态,Ads表示瞄准状态。 先来看一下Weapon脚本。 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Weapon : MonoBehaviour #region Variables
自己总结出来的unity3d发布窗口设置,可以指定位置,大小,窗口式样(边框,标题,按钮,滚动条,隐藏,激活,置顶,置底等)。 下载之后直接把脚本挂物体上就可使用。 如果有不明白的请打开脚本,脚本里面的注释已经写得很清楚了。
??第三款:Texture Web View (Android) ??第四款:Mobile Web View (Android, iOS) ??第五款:ULiteWebView Unity ??第六款:3D WebView for Windows and macOS ??第七款:3D WebView for Android ??第八款:3D WebVi
选自过去1~2周 自己所看到外文内容:https://twitter.com/unity3d 和各种其他博客来源吧 早就有了,抱歉才发! 1、 Unity Transform 性能优化摘要 https://qiita.com/sator_imaging/items/ff5811885f515a0a4998 由于我有机会在逐帧的基础上处理大量的Transform ,我想总结一下...
——SetActive 优点:方便快捷 缺点:SetActive(false)的物体上面挂载的脚本也不运行了,而很多时候我们需要那个脚本运行。这样就不能使用SetActive(true)或者SetActive(false)。如果把自己的引用给另外一个脚本来对自己SetActive(true)或者SetActive(false),又会造成多余的耦合,并不符合OOP设计理念 using System.Runtime.InteropServices; using System.Diagnostics; using Debug = UnityEngine.Debug; public class MainScriptfull : MonoBehaviour //通过非托管方式导入dll。这里是导入user32.dll。 [DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr hwnd, int nCmdShow); [DllImport("user32.dl. using System.Collections.Generic; using UnityEngine; using System.Runtime.InteropServices; using System; public class WindowMaxMin : MonoBehaviour [DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr h.
前段时间做Windows程序,由一个H5开发的书架调起Unity开发的场景漫游,这之间需要进行窗口的全屏显示和最小化。这里使用引入User32.dll的方法,再调用ShowWindow方法控制程序窗口大小。方法如下: [DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr hwnd, int n...
获取原理:unity 所有窗口界面都继承自编辑器UnityEditor程序集下的EditorWindow。而所有的编辑器窗口都在UnityEditor程序集里定义,所以,我们通过反射获取UnityEditor程序集获取所有窗口就可以了。 直接上代码: using System; using System.Collections; using System.Collections.Generi...