[C#]Unity调用window窗口
来源:互联网 发布:网络客服招聘条件 编辑:程序博客网 时间:2024/06/05 07:31
using UnityEngine;using System.Collections;using System;using System.Runtime.InteropServices;namespace XRMaker.Editor{ /// <summary> /// 参考 /// Url:http://www.cnblogs.com/U-tansuo/archive/2012/07/10/GetOpenFileName.html /// Url:https://msdn.microsoft.com/en-us/library/windows/desktop/ff468808(v=vs.85).aspx /// Url:https://msdn.microsoft.com/en-us/library/windows/desktop/bb776426(v=vs.85).aspx /// Url:http://blog.csdn.net/cwj649956781/article/details/76218218 /// </summary> public class WindowsForms { [DllImport("Comdlg32.dll", SetLastError = true, ThrowOnUnmappableChar = true, CharSet = CharSet.Auto)] private static extern bool GetOpenFileName([In, Out] FileName ofn); [DllImport("Comdlg32.dll", SetLastError = true, ThrowOnUnmappableChar = true, CharSet = CharSet.Auto)] private static extern bool GetSaveFileName([In, Out] FileName ofd); [DllImport("shell32.dll", SetLastError = true, ThrowOnUnmappableChar = true, CharSet = CharSet.Auto)] private static extern IntPtr SHBrowseForFolder([In, Out] DirName ofn); [DllImport("shell32.dll", SetLastError = true, ThrowOnUnmappableChar = true, CharSet = CharSet.Auto)] private static extern bool SHGetPathFromIDList([In] IntPtr pidl, [In, Out] char[] fileName); public static string Load(params string[] ext) { FileName i = new FileName(ext); i.title = "打开"; GetOpenFileName(i); return i.file; } public static string Save(string ext) { FileName i = new FileName(ext); i.title = "保存"; GetSaveFileName(i); return i.file; } public static string GetDir() { DirName d = new DirName(); IntPtr i = SHBrowseForFolder(d); char[] c = new char[256]; SHGetPathFromIDList(i, c); return new string(c); } [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] private class DirName { public IntPtr hwndOwner = IntPtr.Zero; public IntPtr pidlRoot = IntPtr.Zero; public String pszDisplayName = null; public String lpszTitle = null; public UInt32 ulFlags = 0; public IntPtr lpfn = IntPtr.Zero; public IntPtr lParam = IntPtr.Zero; public int iImage = 0; public DirName() { pszDisplayName = new string(new char[256]); ulFlags = 0x00000040 | 0x00000010; //BIF_NEWDIALOGSTYLE | BIF_EDITBOX; lpszTitle = "打开目录"; } } [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] private class FileName { public int structSize = 0; private IntPtr dlgOwner = IntPtr.Zero; private IntPtr instance = IntPtr.Zero; private string filter = null; private string customFilter = null; private int maxCustFilter = 0; private int filterIndex = 0; public string file { get; set; } private int maxFile = 0; public string fileTitle { get; set; } private int maxFileTitle = 0; public string initialDir { get; set; } public string title { get; set; } private int flags = 0; private short fileOffset = 0; private short fileExtension = 0; private string defExt = null; private IntPtr custData = IntPtr.Zero; private IntPtr hook = IntPtr.Zero; private string templateName = null; private IntPtr reservedPtr = IntPtr.Zero; private int reservedInt = 0; private int flagsEx = 0; public FileName(params string[] ext) { structSize = Marshal.SizeOf(this); defExt = ext[0]; string n = null; string e = null; foreach (string _e in ext) { if (_e == "*") { n += "All Files"; e += "*.*;"; } else { string _n = "." + _e + ";"; n += _n; e += "*" + _n; } } n = n.Substring(0, n.Length - 1); filter = n + "\0" + e + "\0"; file = new string(new char[256]); maxFile = file.Length; fileTitle = new string(new char[64]); maxFileTitle = fileTitle.Length; //flags = 0x00080000 | 0x00001000 | 0x00000800 | 0x00000200 | 0x00000008;//OFN_EXPLORER|OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST| OFN_ALLOWMULTISELECT|OFN_NOCHANGEDIR flags = 0x00080000 | 0x00001000 | 0x00000800 | 0x00000008; initialDir = Application.dataPath; } } }}
阅读全文
0 0
- [C#]Unity调用window窗口
- 【语言-C++】调用window自带的文件属性窗口
- window父子窗口之间的调用
- 【Unity 3D】学习笔记九:window控件(窗口)
- 制作Unity插件之-创建一个Window窗口
- 制作Unity插件之-创建一个Window窗口
- c#窗口调用C++DLL
- Window 窗口
- window 窗口
- window 窗口
- window窗口
- 调用window.close()如何不出现确认窗口?
- 实现调用window.close()关闭窗口时IE不提示
- cs调用js关闭window.open等窗口
- Unity调用系统窗口选择文件或文件路径
- Unity调用系统窗口选择文件或文件路径
- unity 调用外部摄像机(c#)
- 关于unity(c#)调用shell脚本
- 百度、腾讯和阿里内部的级别和薪资待遇是什么样的?
- 位运算(状态压缩)
- Eclipse的web工程启动tomcat出现"Server Tomcat v7.0 Server at localhost failed to start."的解决办法
- nginx在Windows系统启动不了
- 斯坦福大学深度学习公开课cs231n学习笔记(5)神经网络结构与激活函数
- [C#]Unity调用window窗口
- Deploy模块
- 输出二进制数中1的个数
- sql server,mysql,Oracle三者的区别
- Android 简单EventBus登录界面与传值(粘性事件)
- 【二】Springboot+Mybatis+Redis实现用户信息查询缓存
- 微信小程序底部选项卡/导航栏实现方法
- 21 容器deque&queue&stack深度探索(学自Boolean)
- ssm(struts2、spring、ibatis)框架使用注意事项