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

做网站要注意些什么百度一下 你就知道首页官网

做网站要注意些什么,百度一下 你就知道首页官网,上海普陀网站建设,网站制作推荐新鸿儒参考资料 秀丸マクロ.net秀丸マクロ 入門秀丸エディタ マクロ言語ヘルプ目次 目录 一. 简介1.1 宏的语法1.2 宏的运行1.3 基本语法 二. 案例2.1 案例12.2 案例22.3 案例32.4 案例4 三. 调用自定义的.dll库 一. 简介 1.1 宏的语法 ⏹秀丸的宏文件以.mac结尾,秀丸的…

参考资料

  1. 秀丸マクロ.net
  2. 秀丸マクロ 入門
  3. 秀丸エディタ マクロ言語ヘルプ目次

目录

  • 一. 简介
    • 1.1 宏的语法
    • 1.2 宏的运行
    • 1.3 基本语法
  • 二. 案例
    • 2.1 案例1
    • 2.2 案例2
    • 2.3 案例3
    • 2.4 案例4
  • 三. 调用自定义的`.dll`库


一. 简介

1.1 宏的语法

⏹秀丸的宏文件以.mac结尾,秀丸的宏共有两种语法,具体语法细节官网都有介绍。

  • 秀丸提供的特有语法
  • javascript语法,支持ES6语法👍
  • 支持调用外部的脚本(如.dat.ps1)
  • 支持加载.dll

1.2 宏的运行

⏹如下图所示,可在【マクロ】菜单中,登录宏和执行宏

在这里插入图片描述

⏹宏登录完成之后,可如下图所示给对应的宏分配快捷键

在这里插入图片描述

⏹还可以将宏添加到【テンプレート】模板所在的文件夹,通过设置模板的快捷键快速调用

在这里插入图片描述

⏹然后就可以通过【テンプレート】模板的快捷键调用宏了,好处就是会显示宏的名称一览。

在这里插入图片描述

1.3 基本语法

⏹以下是一个基本的宏,用于将指定的信息插入到当前的文本中

  • insert:用于将内容插入到文本中
  • insertreturn:插入一个换行符
  • endmacro:结束宏
insert "你好\n";
insert "今天的日期是: " + date + " " + time;
insertreturn;
endmacro;

😪一般来说,除了重度使用用户之外,专门为了一个文本编辑器去学习专门的宏语言很划不来。。。
好在秀丸的宏支持javascript宏,本文将通过几个小案例的方式介绍javascript宏的基本用法。


二. 案例

2.1 案例1

  • hidemaruversion
    • 当宏中使用了非同期函数的使用,如果不通过hidemaruversion来指定版本的话,会弹出一个提示框
    • 非必须,不使用的话,宏也可正常运行
  • jsmode "WebView2"
    • 指定jsmodeWebView2,可以开启ES6的javascript语法
    • 在底层上相同于调用了Chromium版的Microsoft Edge
    • jsmode可省略,省略的情况下只能使用ES6之前的旧语法
  • js{ ... }
    • 用于书写js代码的区域
    • js代码块内部可通过秀丸的函数来读取外部定义的变量
  • hidemaruGlobal
    • 秀丸的全局变量,可省略
    • 为了区别js原生函数和秀丸函数,感觉带着更好一些
  • insert:将指定内容插入到当前的文本中
hidemaruversion "9.25.13";
jsmode "WebView2";// JS代码块
js{const name = "枫叶红";const url = 'https://api.github.com/users/fengyehong123';const info = `こんにちは ${name}今日の天気がいいです。\n`.replaceAll("\t", "");// 将变量插入到文本中hidemaruGlobal.insert(info);// 在js脚本中直接调用非同期函数,发送fetch请求(async (url) => {let response = await fetch(url, {method: 'get'});// 将获取到的内容添加到文本中const text = await response.text();// 将访问api获取到的内容添加到页面上hidemaruGlobal.insert(text);})(url);
}

2.2 案例2

  • debuginfo(2):用来将console.log()打印的内容显示在【アウトプット】框中,方便调试
  • hidemaru.getVar( ):在js代码块内部获取js代码块外部定义的变量
  • hidemaru.setVar( ):在js代码块内部修改js代码块外部定义的变量
  • message():将指定的内容通过弹窗的方式显示在文本上
debuginfo(2);
jsmode "WebView2";// js代码块外定义的变量
$name = "贾飞天";// JS代码块
js{// 获取js代码块之外的定义的变量const name = hidemaru.getVar( "$name" );const info = `你好,我的名字是: ${name}`;// 弹窗框函数hidemaruGlobal.message(info);// 将内容打印到【アウトプット】框中,方便调试console.log(info);// 在js代码块内部, 修改在js代码块之外定义的变量hidemaru.setVar("$name", info);
}// 弹出框显示
message $name;

2.3 案例3

  • browsefile:打开指定的文件夹
    • 参数1:初期文件夹的路径,若不指定的话,默认使用当前宏所在的文件夹
    • 参数2:文件的后缀
  • loadTextFile():读取指定的文本文件
  • saveTextFile():保存文件到本地的指定路径
  • input():弹出输入框
  • menu:菜单效果
    • \x01后面跟着的菜单名,会自动变为子菜单
    • 单独使用 x01 的话,会被解释为分割线
debuginfo(2);
jsmode "WebView2";js{const filePath = hidemaruGlobal.browsefile("","*.txt");console.log(filePath);// 加载指定路径下的文,并按照换行符分隔为数组const lineList = hidemaru.loadTextFile("C:\\Users\\Admin\\Desktop\\用户凭据.txt").split("\n");for (const line of lineList) {console.log(line);}// 将指定的内容保存到桌面上hidemaru.saveTextFile("C:\\Users\\Admin\\Desktop\\测试内容.txt", "テキスト内容", "utf8" );// 输入函数const address = hidemaruGlobal.input("请输入地址", "默认地址");hidemaruGlobal.message(address);// 如果想要使用子菜单的话,\x01后面跟着的菜单名,会自动变为子菜单const result = hidemaruGlobal.menu("\x01サブメニューA","項目A-1","項目A-2",// 单独使用 "" 表示子菜单的结束"","\x01サブメニューB","項目B-1","項目B-2","",// 单独使用 "\x01" 的话,会被解释为分割线"\x01","項目C","項目D");hidemaruGlobal.message(result);
}

2.4 案例4

  • runProcess:开启新的进程执行外部程序
    • .stdOut:获取输出对象
    • onReadAll:通过非同期的方式获取执行结果,代码不会被阻塞,要获取结果的话,只能在回调函数中来获取
  • runsync:同期的方式执行外部程序,程序执行到此处的话会阻塞
    • 无法获取执行的返回值
    • 返回值是false的话表示执行调用失败;false之外的话表示程序调用成功
debuginfo(2);
jsmode "WebView2";js{// 在秀丸的宏中调用其他程序const processInfo = hidemaru.runProcess("powershell C:\\Users\\Admin\\Desktop\\新建文件夹\\05-获取本机已保存的所有wifi密码.ps1", ".", "stdio", "utf8" );// 获取标准输出对象const stdOut = processInfo.stdOut;// 通过非同期的方式获取执行结果stdOut.onReadAll(function(out) {console.log(out);});// 同期执行powershellconst result = hidemaruGlobal.runsync("powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -WindowStyle Hidden -File C:\\Users\\Admin\\Desktop\\新建文件夹\\05-获取本机已保存的所有wifi密码.ps1");console.log("------------------------");console.log(result);console.log("------------------------");
}

三. 调用自定义的.dll

⏹通过Visual Studio创建一个类库的工程

在这里插入图片描述

⏹准备编译为.dll依赖库的源码

  • 外部使用的方法需要写在接口里,然后用类来实现接口
  • 该代码需要编译为.dll文件之后,才能供秀丸使用
using System;
using System.Runtime.InteropServices;namespace MarcoTest
{// 定义外部使用的接口public interface IInfo{String GetInfo(string param);}// 下面这两项是必须的[ComVisible(true)][ClassInterface(ClassInterfaceType.None)]public class InfoUtil : IInfo{public String GetInfo(string param){return "Hello world! " + param + " 你好, 世界!";}}
}

⏹注意:不能使用 WebView2 的JS,否则 createobject 无法正常使用

  • createobject( ):用来创建对象
  • currentmacrodirectory():表示当前宏脚本所在的文件夹
  • @"\ClassLibrary2.dll", "MarcoTest.InfoUtil":指定.dll依赖库,依赖库里面的命名空间和类名

💥更加详细的解释,请参考 ⇒ 秀丸マクロ.net

debuginfo(2);js{// 通过.dll库创建对象var obj = createobject(currentmacrodirectory() + @"\ClassLibrary2.dll", "MarcoTest.InfoUtil");// dll库里面的方法var result = obj.GetInfo("uiuiui");message(result);
}

⏹执行效果如下所示

在这里插入图片描述

http://www.dtcms.com/wzjs/461204.html

相关文章:

  • 抚顺清原网站建设招聘seo数据是什么
  • django开发的公司网站seo怎么赚钱
  • 3维网站制作技术独立站谷歌seo
  • 优秀企业网站欣赏店名设计软文代写文案
  • wordpress模型优化公司网站
  • 中江建设局网站seo的实现方式
  • 如何使用wordpress制作网站网络营销的定义是什么
  • 安陆做网站公司京东seo搜索优化
  • 无锡做网站费用seoul什么意思
  • 大型网站开发什么书籍好新闻稿代写
  • 想在网站里添加超链接怎么做百度注册
  • asp怎么做网站适配国产最好的a级suv
  • 营销型网站建设平台提高搜索引擎排名
  • 武汉微网站怎么营销自己的产品
  • 动漫网站开发毕业设计重庆网站关键词排名
  • 网站被k 申诉优化大师网页版
  • 现在国外还有新冠疫情吗网站推广优化是什么意思
  • 中型网站开发语言热门关键词查询
  • 天涯论坛发帖推广网站排名优化+o+m
  • 用什么java软件做网站网站宣传费用
  • 云南做网站哪家好如何开一个自己的网站
  • 潍坊关键词优化服务电商seo优化是什么意思
  • 德州商城网站建设游戏推广是什么工作
  • 岚山建设网站网络营销策略优化
  • 上海网站建设口碑最好的公司搜索引擎收录入口
  • 西安网站建设托管网站广告接入
  • 中国医院考试网站模板下载企业seo推广的绝密诀窍曝光
  • 网站建设公司响应式网站模板下载在线seo推广软件
  • 怎样推广平台百度seo排名培训优化
  • 三只松鼠的网站建设进行seo网站建设