[紧急] 如何更换JMP中的热键朋友你好:
最近我遇到了一个关于 JMP 热键的棘手问题。 而我原本是想简单介绍一下,但它对我来说太重要了。 我有权让你知道整个事情,而不是片段。
背景:
目前我负责全部门的JMP(JMP16)和Python报表自动化,所以我建立了一个报表自动化系统(这个系统在我的电脑上,我不是公司的IT人员,所以我没有服务器与用户交互,只是根据我的兴趣开发了这个系统,并且我从中学到了很多)基于电子邮件,它可以自动接收带有特定邮件主题的电子邮件,然后触发邮件规则通过VBA将邮件项对象传递给Python,然后Python脚本将根据邮件项对象的附件自动生成JMP报告并自动回复之前的邮件附有报告的邮件。
问题:
众所周知,如果我们添加“//!”进入JSL的第一行,然后我们只需双击JSL文件,JSL就会自动运行,但我们可以按CTRL来中断它,然后JSL就会弹出。如前所述,该系统运行在我的PC上,因此当用户向我发送特定主题的邮件时,会出现两种情况:
- -情况1(良好):如果我在JMP JSL运行的整个过程中不按CTRL,一切都会好起来的。
- -情况2(NG):如果我在JMP JSL运行的整个过程中按CTRL,JSL就会弹出,很多图不会生成,也意味着FAIL。
故障排除:
- 我检查了 JMP 首选项中的热键,我不知道是我遗漏了它还是它实际上不存在于首选项中
- 向JMP工作人员寻求帮助,但找不到替换此热键的方法
- 我怀疑JMP开发者并没有开放本次修改的接口。
需要帮助:
需要将 CTRL 替换为其他不常用的按钮来中断 JSL。
我期待您的回复,提前非常感谢。
自动化和脚本编写视窗回复:[紧急] 如何更换 JMP 中的热键Craige,再次感谢您的帮助和回复回复:[紧急] 如何更换 JMP 中的热键早上好! 克雷格,谢谢你的帮助。 对于这个问题,今天早上我已经有了想法,解决起来应该就可以了。
用Python写一些代码,让Python调用JSL和JSL运行时CTRL不能使用,等JMP相关的部分完成后,再让CTRL可以使用。 通常,生成一个 JMP 报告(10000 行数据,100x JMP 图)只需要 20 秒,这意味着 CTRL 无法使用将持续 20 秒,这不是问题。回复:[紧急] 如何更换 JMP 中的热键可能不会。 控制键不像热键那样处理;它不通过任何菜单界面。
您可能可以做的是使用自动化接口(pdf) 从 VB 控制 JMP。 我不确定是否有人曾经使用过 Python 的自动化;使用 pywin32 或许可以,但 10 分钟的努力还不够......
回复:[紧急] 如何更换 JMP 中的热键感谢您的快速回复,您真是一个了不起的人,谢谢。 其实前几天和我聊的JMP工作人员也提供了这个方法来解决这个问题,我尝试了这个方法,发现每次这样调用JSL时都会启动一个新的JMP进程,这是令人无法接受的占用大量内存并且达不到我的预期,所以我放弃了这种方式。 回到最初的问题,是否可以用其他按钮代替CTRL?回复:[紧急] 如何更换 JMP 中的热键抱歉,这似乎还使用控制键来禁止脚本运行。
考虑此事...
回复:[紧急] 如何更换 JMP 中的热键更改 python 代码以使用指定 .jsl 文件的命令行参数启动 JMP,而不是使用 //! 启动 .jsl 文件。在开始时。

JMP似乎不在路径中,所以我从图标中抓取了可执行文件+路径。
回复:[紧急] 如何更换 JMP 中的热键克雷格,感谢您的回复和好意!
首先,我想向您展示两个简单的 JSL 示例:
没有//!
//Save this JSL to desktop, and double click the JSL, you will find it will pop out, //but directly generate a new datatable, unless you manually click run button
newtable();
和//!
//!
newtable();
//Save this JSL to desktop, and double click the JSL, you will find it will directly //generate a new data table.
与的优点//!不需要单击运行按钮来运行 JSL,因此我将这种方式作为报表自动化系统的一部分。
第二,我想再简单说一下这个系统的流程。
- 用户向我发送特定主题的邮件
- Mail 将通过 VBA 将邮件项对象传递给 Python
- Python 将运行并调用 JSL //!生成 JMP 图并执行其他操作
- Python生成报告并以报告附件回复邮件。
理想情况下,这个系统应该是完美的,因为整个过程是完全自动化的,但关键是这个系统运行在我的电脑上,如果有人向我发送带有特定主题的邮件,系统将被激活并执行上述过程,并且如果我在工作的同时按下CTRL+C/V来做一些工作,它会直接中断JSL的运行,所以当我工作的同时有人给我发邮件时确实存在很大的风险,因此我想知道如何用其他按钮替换 CTRL 来中断 JSL 。 至少到目前为止我认为解决这个问题的唯一方法是在评估整个过程后更换它
回复:[紧急] 如何更换 JMP 中的热键// the home window must not be open; I don't know how to access it,
// choose the pref for the jmp starter instead. You could manually
// minimize the home window instead. this only sets the pref, does
// not close the home window
// set preference(Initial JMP Window( "JMP Starter" ));
wait(1); // make sure windows open before minimizing them
windows = getwindowlist(); // does not get the home window
foreach({w},windows,show(w<<GETWINDOWTITLE></GETWINDOWTITLE>
您可能需要从中创建一个用户函数,并在每次打开新的分析窗口时调用它。 或者您可以在不打开窗口的情况下运行分析。
回复:[紧急] 如何更换 JMP 中的热键我认为您是在问有关中断 JMP 的退出键。 您是否尝试过最小化所有 JMP 窗口? 我认为这可能会将键盘焦点留在其他地方,因此 JMP 不会收到击键(也许桌面会收到它。)我认为 JMP 有最小化窗口功能。