• 带有脚本调用功能的记事本软件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

  • 相关阅读:
    poj1877
    poj2163
    API hook 单步调试
    用VC++编写勾子程序(转)
    不使用DLL创建全局系统钩子
    接触DLL编写并实现线程注入和全局钩子
    根据RGB计算亮度
    !!!光线对视频识别技术的影响
    消息钩子函数入门篇
    “蓝脑”计划:人造大脑的可能性 文化·探索 CCTV_com
  • 原文地址:https://www.cnblogs.com/ryueifu-VBA/p/12722280.html
Copyright © 2020-2023  润新知