关于通过操作项或右键菜单调用子程序的几个疑问

使用问题 · 590 次浏览
臭冬瓜 创建于 2023-02-01 12:23

最近在学习自定义操作窗动作的使用,对通过操作项或者右键菜单调用子程序(如下)有几点疑问

[fa:Light_Pen]子程序|operation=sp&data=Hello&spname=testsp&num=100

一是如果用主程序调用子程序,有一个"子程序失败后是否停止动作"的选项,二是有些子程序会返回参数给主程序,而这些在通过操作箱或右键菜单中调用子程序中是如何实现的呢?

还有两个疑问:

(1)如何调用公共子程序和网络共享子程序

(2)调用子程序时,输入参数是一个变量如何表示(例如上面的num=100,值是100,如果是一个变量呢?)

臭冬瓜 最后更新于 2023/2/1

回复内容
H-D-G 2023-02-01 16:08
#1

(1)直接调用估计不行,可以把公共子程序和网络共享子程序转换为动作内子程序再调用

(2)直接用“插值”,(再次显示同一个自定义操作窗(“窗口标识”相同),会更新操作项数据)

H-D-G 最后更新于 2023-02-01 16:08
臭冬瓜 回复 H-D-G 2023-02-01 16:23 :

谢谢,关于(2)我现在是采用状态存取的方式解决的,但比较麻烦。您的方法在我使用显示(非显示并等待)时,如何重新显示同一个窗口呢?建立一个循环吗?

臭冬瓜 最后更新于 2023-02-01 16:24
H-D-G 回复 臭冬瓜 2023-02-01 16:25 :

用窗口标识

H-D-G 回复 臭冬瓜 2023-02-01 16:27 :

在你需要更新操作项时再次显示同一个自定义操作窗

臭冬瓜 回复 H-D-G 2023-02-01 16:28 :

这个我知道,我的意思是自定义操作窗的显示类型会执行完所有代码,这时如何再重新显示自定义操作窗

臭冬瓜 最后更新于 2023-02-01 16:29
H-D-G 回复 臭冬瓜 2023-02-01 16:29 :

在子程序中更新

臭冬瓜 回复 H-D-G 2023-02-01 16:30 :

问题是子程序的参数是输入参数,这时还没有改变,我不知道变量的值

H-D-G 回复 臭冬瓜 2023-02-01 16:32 :
H-D-G 回复 H-D-G 2023-02-01 16:33 :


臭冬瓜 回复 H-D-G 2023-02-01 16:34 :

谢谢,学习了

臭冬瓜 回复 H-D-G 2023-02-01 16:54 :

试了一下,好像行不通,变量在主程序中,子程序好像无法获得。看样子无法通过菜单传递变量,只能采用状态存取的方法。

臭冬瓜 最后更新于 2023-02-01 16:56
H-D-G 回复 臭冬瓜 2023-02-01 17:18 :

方便看一下你是怎么写的吗?

臭冬瓜 回复 H-D-G 2023-02-01 17:40 :

已经测试过了,用显示两次自定义操作窗的方法的确可以解决这个问题,这样就不用状态存取就可以解决了,节约资源了:D 谢谢

不过,其他几个问题可能还需要CL才能解答

臭冬瓜 最后更新于 2023-02-01 17:47
H-D-G 回复 臭冬瓜 2023-02-01 17:41 :

OK

臭冬瓜 2023-02-01 17:27
#2

当然可以,本来动作就是公开的。链接:https://getquicker.net/Sharedaction?code=44676f11-081f-44a3-941b-08dafea109f8

在自定义操作窗的右键菜单本来想写:

$$恢复窗口最佳大小|operation=sp&spname=设定窗口大小&handle={handle}&width={bestWidth}&height={bestHeight}

由于自定义操作窗还没有显示,这时并没有获得窗口句柄,运行自定义操作窗动作后,句柄才生效,所以这时传入子程序的{handle}是空值。自定义操作窗显示后,句柄就获得,但是右键菜单并没有传递新值。我现在用状态存取的方式解决,但是就想知道能用直接传参的方式解决问题不。


臭冬瓜 最后更新于 2023-02-01 17:30
H-D-G 回复 臭冬瓜 2023-02-01 17:40 :


H-D-G 最后更新于 2023-02-01 17:42
臭冬瓜 2023-02-01 17:34
#3

我想按照您说的识别窗口标识(我可以用=表示唯一的ID)的方法,在获得句柄后,再次显示自定义窗口(窗口句柄不会变化的情况)可能会解决这个问题。

回复主贴