在程序的开始using System.Diagnostics
然后在初始化函数的上方定义private static System.Diagnostics.Process p
2.在Button的双击事件中,添加如下代码:
if (p == null){
p = new System.Diagnostics.Process()
p.StartInfo.FileName = 应用程序者启局名字.exe
p.Start()}else{
if (p.HasExited) //是否正在运行{
p.Start()}}
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal}
3.若想关闭主程序的同时也关闭调用的程旁哗序,需要在退出程序的按钮事件中添加如下代码:
Process[] pProcess
pProcess = Process.GetProcesses()
if (pProcess[i].ProcessName == 应用程序名字) //任务管理器应用程序的名{
ENVI——完整的遥感图像处理平台ENVI(The Environment for Visualizing Images)是美国Exelis Visual Information Solutions公司的旗舰产品。
它是由遥感领域的科学家采用交互式数据语言IDL(Interactive Data Language)开发的一套功能强大的遥感图像处理软件。
它是快速、便捷、准确地从影像中提取信息的首屈一指的软件解决方案。
今天,众多的影像分析师和科学家选择ENVI来从遥感影像中提取信息。ENVI已经广泛应用于科研、环境保护、气象、石油矿产勘探、农业、林业、医学、国防&安全、地球科学、公用设施管理、遥感工程、水利首让、海洋、测绘勘察和城市与区域规划等领域。
所以说ENVI和IDL有着密不可分的关系,ENVI只是用IDL开发出来的一套遥感图像处理平台,它不完全覆盖遥感处理的方方面面,当然已经很全了。如果你还需要根据自己的需要开发相应的功能或者图像处理过程的话,那么IDL就是必不可少的,很多开发都是基于ENVI现有的功能来拓展的,所以安装ENVI的时候会同时装上IDL以便于后期使用方便,当然,如果你是初级用户,你完全可以只打开envi而不用理睬IDL就好。但是对于多数中高级用户来说,IDL则是必不可少的。
IDL支持面向对象的编程, 但是并不完整, 不支持对成嫌宏纤员的可见性的设定.可以通过定义单独文件的方式来定义IDL类, 比较容易管理, 定义的方式是:
pro <芹仿ClassName>__define
struct = {<className>, ...}
end
文件名是:<ClassName>__define.pro
在这个文件中, 还可以添加类成员函数的定义, 如:
pro <className>::hello
...
end
IDL不区分大小写, 所以类名/函绝袭数名/关键字等均可以不受大小写的限制
IDL对类提供一些专门的成员函数, 完成专用的任务. 比如: INIT为构造函数, CLEANUP为析构函数(在对象被释放时调用, 比如OBJ_DESTROY函数). 但是这些函数不能在外部被调用, 但是可以在函数内部看到, 主要是为了手工调用, 以实现父类的初始化函数被调用(IDL不会自动调用父类的INIT函数)
INIT函数可以带参数, 可以在调用OBJ_NEW生成对象时传入.
OBJ_NEW函数的调用形式如下:
Result = OBJ_NEW( [ObjectClassName [, Arg1......Argn]] )
IDL的函数和过程参数可以不完整, 比如函数A定义了5个参数, 可以用0-5个参数来调用. 对调用的参数情况可以用N_PARAMS和N_ELEMENTS来判断, 前者可以得到实际的调用参数的个数, 后者可以判断某个参数是否有值
sub Test::INIT, caption
print, N_PARAMS() 返回参与调用的参数个数
print, N_ELEMENTS(caption) 返回1为有值, 返回2为未定义
...
end
可以定义多个同名函数, 但只有最晚定义的那个有效, 前面的会被隐藏
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)