当前位置: 首页 > news >正文

建设网站的风险创建全国文明城市总结

建设网站的风险,创建全国文明城市总结,网站联系我们模块怎么做,手机网站字体大小规范推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好#xff0c;我是佛系工程师☆恬静的小魔龙☆#xff0c;不定时更新Unity开发技巧#xff0c;觉得有用记得一键三连哦。 一、前言 最近有项目需求#xff0c;从浏览器调起来本地的exe程序… 推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好我是佛系工程师☆恬静的小魔龙☆不定时更新Unity开发技巧觉得有用记得一键三连哦。 一、前言 最近有项目需求从浏览器调起来本地的exe程序并且还要传参、传数据。 研究了一下总结出来。 流程图如下所示 二、正文 2-1、实现方法 浏览器实现拉起本地exe的方法就是向系统中添加一个注册表注册表找到指定路径下的程序拉起。 这个注册表就是类似于HTTP的私有协议本地有效可以拉起本地exe程序。 注册表如下 [HKEY_CLASSES_ROOT\virtualcourse.test] [HKEY_CLASSES_ROOT\test\DefaultIcon] F:\test\mytest,1 [HKEY_CLASSES_ROOT\test\shell] [HKEY_CLASSES_ROOT\test\shell\open] [HKEY_CLASSES_ROOT\test\shell\open\command] F:\test\mytest %1 DefaultIcon 是默认程序的icon位置 command 是记录程序的位置 注册表的结构 2-2、制作注册表程序 新建个控制台程序搭建一下UI 编辑代码 using Microsoft.Win32; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace WindowsFormsApp1 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){}private void button1_Click(object sender, EventArgs e){try{if (string.IsNullOrEmpty(txtCourseID.Text.Trim())){MessageBox.Show(课程ID不能为空);return;}string strPrimaryKey virtualcourse. txtCourseID.Text.Trim();RegistryKey key Registry.ClassesRoot;RegistryKey regPrimaryKey key.CreateSubKey(strPrimaryKey);regPrimaryKey.SetValue(, strPrimaryKey Protocol);regPrimaryKey.SetValue(URL Protocol, );RegistryKey regDefaultIconKey key.CreateSubKey(strPrimaryKey \\DefaultIcon);string strExePathName Application.StartupPath \\ Application.ProductName;regDefaultIconKey.SetValue(, strExePathName ,1);RegistryKey regshellKey key.CreateSubKey(strPrimaryKey \\shell);RegistryKey regshellopenKey key.CreateSubKey(strPrimaryKey \\shell\\open);RegistryKey regshellopencommandKey key.CreateSubKey(strPrimaryKey \\shell\\open\\command);regshellopencommandKey.SetValue(, string.Format(\{0}\ \%1\, strExePathName));key.Close();MessageBox.Show(生成注册表成功);this.btnAddReg.Enabled false;this.txtCourseID.ReadOnly true;}catch (Exception ex){MessageBox.Show(生成注册表失败 ex.Message);}}private void button2_Click(object sender, EventArgs e){try{if (string.IsNullOrEmpty(txtCourseID.Text.Trim())){MessageBox.Show(课程唯一ID不能为空);return;}string strPrimaryKey virtualcourse. txtCourseID.Text.Trim();RegistryKey delKey Registry.ClassesRoot;RegistryKey regPrimaryKey delKey.OpenSubKey(strPrimaryKey, true);//判断要删除的regPrimaryKey是否存在if (regPrimaryKey ! null){delKey.DeleteSubKeyTree(strPrimaryKey, true);}delKey.Close();MessageBox.Show(删除注册表成功);this.btnAddReg.Enabled true;this.txtCourseID.ReadOnly false;}catch (Exception ex){MessageBox.Show(删除注册表失败 ex.Message);}}} }生成解决方案 在bin→Debug目录下运行程序 以管理员的身份运行 随便写入课程ID点击生成注册表即可 PS也可以手动添加注册表就是有点麻烦在实际开发中需要用到打包工具将添加注册表的事项添加到安装过程中就可以在安装完程序后注册表也添加完成。 2-3、HTML网页调用本地exe 首先新建个.txt文件编辑后再改成.html后缀名即可代码参考 !DOCTYPE html html langzh-CN headmeta charsetUTF-8meta http-equivcontent-type contenttext/html; charsetutf-8titleweb打开本地exe/titlescript srcvue.js/script /head bodydiv idappspan请输入课程ID/spaninput typetext name id v-modelcourseId stylewidth: 400px;a :hrefhrefValue clickgetHrefValue styledisplay: inline-block;测试打开本地应用并传参/a/divscriptvar vm new Vue({el: #app,data: {courseId:,paramValue: token123456789,hrefValue:,},methods: {getHrefValue(){this.hrefValuevirtualcourse.this.courseId://this.paramValue;}},mounted() {// this.getHrefValue();},})/script /body /html将打包后的程序放到添加注册表的程序目录下因为在生成注册表的时候将这个目录记录进去了 当然也可以手动改这个路径。 2-4、生成Unity的exe程序 新建个Unity项目新建场景搭建场景 新建脚本命名为JSCallUnity.cs编辑代码 using System; using UnityEngine; using UnityEngine.UI;public class JSCallUnity : MonoBehaviour {public InputField m_Input;void Start(){// 从控制台接收参数ReadEnvironmentData();}private void ReadEnvironmentData(){//用来接收HTML发来的数据string[] CommandLineArgs Environment.GetCommandLineArgs();if (CommandLineArgs.Length 2 || CommandLineArgs[1] ){m_Input.text 没有接收到参数;Application.Quit();//启动时没有参数则退出}else{ParseInitData(CommandLineArgs[1]);}}//解析参数void ParseInitData(string data){//解析参数m_Input.text data;} }注意 主要的方法就是Environment.GetCommandLineArgs();用来接收HTML发来的命令行参数数据。 官方解释返回包含当前进程的命令行参数的字符串数组。 返回值是一个string[],当Length1的时候就是带参数在UnityEditor模式 也就是编辑器模式会有默认参数返回,Length是大于1的 拖进去 打包为exe 复制到生成注册表的程序中将命名改成生成注册表的生成的exe名字 打开HTMl文件输入生成的注册表的课程ID点击测试打开本地应用 运行结果 后面就是对数据进行处理的事情了这个就跟后端的程序沟通如何定义数据类型如何解析数据即可了这里就不展开讲了。 三、后记 本篇文章实现了从生成注册表然后用浏览器通过注册表HTTP协议拉起本地的EXE程序。 然后Unity程序中使用了Environment.GetCommandLineArgs();方法获取到HTML发过来的数据。 你的点赞就是对博主的支持有问题记得留言 博主主页有联系方式。 博主还有跟多宝藏文章等待你的发掘哦 专栏方向简介Unity3D开发小游戏小游戏开发教程分享一些使用Unity3D引擎开发的小游戏分享一些制作小游戏的教程。Unity3D从入门到进阶入门从自学Unity中获取灵感总结从零开始学习Unity的路线有C#和Unity的知识。Unity3D之UGUIUGUIUnity的UI系统UGUI全解析从UGUI的基础控件开始讲起然后将UGUI的原理UGUI的使用全面教学。Unity3D之读取数据文件读取使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。Unity3D之数据集合数据集合数组集合数组、List、字典、堆栈、链表等数据集合知识分享。Unity3D之VR/AR虚拟仿真开发虚拟仿真总结博主工作常见的虚拟仿真需求进行案例讲解。Unity3D之插件插件主要分享在Unity开发中用到的一些插件使用方法插件介绍等Unity3D之日常开发日常记录主要是博主日常开发中用到的用到的方法技巧开发思路代码分享等Unity3D之日常BUG日常记录记录在使用Unity3D编辑器开发项目过程中遇到的BUG和坑让后来人可以有些参考。
http://www.dnsts.com.cn/news/221361.html

相关文章:

  • 企业网站怎么制作流程泰兴市城乡住房建设局网站
  • 网站域名在哪买网站建设大概费用
  • 企业网站建设制作多少钱自助建站自媒体
  • 包头网站建设公司哪家好访问网站有音乐背景怎么做
  • 网站不备案会怎么样怎么做自己的网站自建一个页面
  • 南海区住房和城乡建设部网站怎么做招聘有哪些网站
  • 网文网站排名阿里云个人网站备案做淘客
  • 网站当电话线软件工程师招聘简章
  • 页面好看的教育类网站模板下载代做电子商务网站作业
  • 网站配色方法职教集团网站建设方案
  • 百度推广与做网站推广的区别免费网站怎么建
  • 百度网站地图生成器阜阳网站建设价格
  • 微信网站搭建wordpress 会员 返佣
  • 商城网站建设预算要多少钱柳市网站推广
  • 企业网站seo网址网站开发我嵌入式开发
  • 平顶山建站公司桂林最近发生的重大新闻
  • 网站建设费用兴田德润团队做哪种网站流量上的快
  • 建免费的网站吗设计师逛的网站
  • 网站建设及维护招聘浙江省电子商务网站建设
  • 网站数据库设置权限模仿图库网站开发
  • 移动网站开发培训百度文库账号登录入口
  • 网站建设 搜狐号网站access数据怎么做
  • 柳州正规网站制作公司哪家好宽带收费价格
  • 保定哪家做网站专业汕头网络推广哪里找
  • 哪个网站可以做危险化学品供求代码解决wordpress不能发邮件
  • 企业营销网站案例汽车类网站设计规划
  • 做网站用源码学动漫设计好就业吗
  • 网站源码com大全做接口自动化是网站登录加密
  • php项目网站建设方案书个人备案的公司网站
  • 永嘉高端网站建设效果深圳做营销网站的公司哪家好