带有脚本调用功能的记事本软件CalcNotepad的下载和使用

CalcNotepad是我开发的一款具有计算功能的记事本工具。其界面由如下4部分构成:

  • 菜单栏
  • 文本区
  • 结果区
  • 状态栏

 

首先介绍一下菜单系统

【文件菜单】里面的命令与Windows内置记事本的命令相似,但是当另存为为文件时,可以选择编码

【编辑菜单】

其中,查找和替换支持正则表达式。

  

【格式菜单】可以设置字体格式和文本区的背景格式,这些设置保存于注册表中,下次启动会记忆。

【计算菜单】用于设置语言,本工具支持VBScript和JavaScript语法。

在文本区中选择一部分代码,然后按下【F8】可以把表达式的值计算出来,并且显示在左下角。

注意:F8只把选择了的文本作为计算根据,和它周围的文字无关。但是F5是以全部文本作为计算根据的。

例如,书写一个不带参数的Function,函数名称可以任意起。按下【F5】,会计算所有代码,弹出对话框中显示变量c的值。

然后左下角会给出该函数的返回值Test,应该是36

  如果计算菜单中勾选的是JavaScript,就需要书写JS代码了。

如下计算100除以7的余数,左下角显示结果。

  

同样,也可以从一个不带参数的function开始运行。

下面的程序Area是带参数函数,ABC是不带参数的,因此首先调用ABC函数。计算结果为90。

 【帮助菜单】可以设置txt扩展名的默认程序,如果设置为本工具,那么双击TXT文件,会默认以本工具打开。

 【状态栏】分为3部分,分别显示的是当前文件的编码、文件的完整路径、光标所处的位置。

如图所示,光标显示处于“战斗”两个字之间,因此是12行5列。并且斗字是整个文件的第202个字,一共选中了28个字。

  多国语言版

 英文

  

2020/05/04 更新

从各方面考虑,把已有的VBScript、JavaScript计算功能去掉了,现在换成了脚本调用功能。可以调用任何exe文件及其对应的脚本。

基本用法:

解压缩后,会看到CalcNotepad.exe这个主文件。其余文件都是示例代码文件,作为学习参考用。

点击【调用】、【设置】

打开设置对话框。该对话框包括4项设置:

当前工作目录:需要输入一个文件夹的路径,设置了此项后,在命令行参数中就可以使用相对路径。

例如"Sample_BAT.bat"就等价于"E:aidu playerSample_BAT.bat"

可执行文件:此项是必须输入。

命令行参数:可选。

标准输入参数:可选。

Sample_BAT.bat脚本用于计算5个数字之和,内容如下:

@echo off
set /p c=c:
echo;
set /p d=d:
echo;
set /p e=e:
echo;
set /a result=%1+%2+%c%+%d%+%e%
echo %result%
exit

设置完毕后,按下ESC关闭设置对话框,在CalcNotepad界面中按下【F5】,即可在底部看到计算结果是15。

 调用cmd.exe时,要求命令行参数中必须有 /c

例如:

 我用十来种语言编写了5个数字之和的示例代码,其中变量a、b来自于命令行参数,变量c、d、e来自于标准输入。

VBS版

Sample_VBS.vbs代码如下

Main
Sub Main()
    Dim a,b,c,d,e
    a=WScript.Arguments(0)
    b=WScript.Arguments(1)    
    c=WScript.StdIn.ReadLine
    WScript.StdOut.WriteLine c
    d=WScript.StdIn.ReadLine
    WScript.StdOut.WriteLine d
    e=WScript.StdIn.ReadLine
    WScript.StdOut.WriteLine e
    WScript.StdOut.WriteLine CInt(a)+CInt(b)+CInt(c)+CInt(d)+CInt(e)
End Sub

VBS脚本使用系统文件夹的cscript.exe来解释执行,设置画面为:

 PowerShell版

Sample_Powershell.ps1代码如下:

$a=$args[0]
$b=$args[1]
$c=Read-Host("c")
$d=Read-Host("d")
$e=Read-Host("e")
Write-Host $a,$b,$c,$d,$e,`n
Write-Host $([System.Int32]$a+[System.Int32]$b+[System.Int32]$c+[System.Int32]$d+[System.Int32]$e)

Powershell的参数较多。命令行参数的内容为

-NoLogo -ExecutionPolicy RemoteSigned -File Sample_Powershell.ps1 1 2

 另外,也支持调用PowerShell的单行命令。例如:

 注意是 -Command,而不是 -File。

运行结果为:

如果参数中有错误,或者运行出错,本工具会输出为StandardError。

假设不小心写成了GetProcess

 是不是有点爱上了PS呢。

Python版

Sample_Python.py内容如下

import sys
a = sys.argv[1]
b = sys.argv[2]
c=input("c:
")
d=input("d:
")
e=input("e:
")
print(a,b,c,d,e)
print(int(a)+int(b)+int(c)+int(d)+int(e))

设置画面为:

 打印结果同样是15。

如果你想自己做一个支持命令行参数和标准输入的可执行文件,可以试一下C#或VB.NET,示例代码如下。

C#

using System;

static class Module1
{
    public static void Main(string[] args)
    {
        var a, b, c, d, e;
        a = args[0];
        b = args[1];
        c = Console.ReadLine();
        d = Console.ReadLine();
        e = Console.ReadLine();
        Console.WriteLine(System.Convert.ToInt32(a) + System.Convert.ToInt32(b) + System.Convert.ToInt32(c) + System.Convert.ToInt32(d) + System.Convert.ToInt32(e));
    }
}

VB.NET

Module Module1

    Sub Main(args As String())
        Dim a, b, c, d, e
        a = args(0)
        b = args(1)
        c = Console.ReadLine()
        d = Console.ReadLine()
        e = Console.ReadLine()
        Console.WriteLine(CInt(a) + CInt(b) + CInt(c) + CInt(d) + CInt(e))
    End Sub

End Module

最后,本工具还支持XML、带有VBScript和JavaScript的HTML网页的预览功能。

首先在工具中打开Sample_JavaScript.html这个示例文件,然后点击菜单“WebBrowser”

 弹出的浏览器中,可以看到网页上的两个按钮。

关闭浏览器,在CalcNotepad中继续编辑网页或Script,再次启动浏览器,这样就可以调试了。

XML也是这样的做法,大家自己试一下。

其他重要提示

  • 文本区按下{Tab}输入制表位
  • 文本区中双击鼠标可以选中整行
  • 查找到最后一处弹出的MsgBox对话框,3秒后自动消失
  • 支持文件拖放,可以从文件夹中拖放一个TXT文件到文本区,快速打开
  • 左手按住Ctrl,右手滚动鼠标滚轮,可以改变字体大小

 下载地址:https://share.weiyun.com/5dpcNqx

原文地址:https://www.cnblogs.com/ryueifu-VBA/p/12722280.html