当下,有许多优秀的程序是能够方便的从网上获得的,但是程序的作者当时解决问题时的思路可能和我们要解决问题的思路并不一样,我们并不能直接拿来使用。这时我们就要取其精华去其糟粕。本文以6S模型(气溶胶计算模型)为例,如何在自己的应用中方便调用别人的EXE来计算。

首先讲解一下6S模型,它是由Fortran语言编写的并编译生成的EXE文件,他需要多个参数输入:

1 输入卫星的几何条件(Geometrical conditions):

0-7中的数字:0.use definition(用户自定义)1.meteosat observation2.goes east observation3.goes west4.avhrr ( PM noaa ) 5.avhrr ( AM noaa )6.hrv( spot ) 7.tm( landsat )

2 根据输入对应时间,角度

3 输入大气的模型( Atmospheric model )

3 输入大气的模型( Atmospheric model )

4 输入气溶胶模型(Aerosols model)

5 输入气溶胶模型的浓度(可见度)

在集合{-1,0,>0的正值}中选一个值,我们输入v=10km

8 输入传感器的波段代号

9 输入地表状况0代表均匀1代表不均匀

10 输入RAPP 的空气校正参数

也就是说,我们在做遥感图像解析时,我们对每个像素都要输入一遍参数,才能获得6S模型在这张相片上的结果,其工作量是无法想象的,所以必须实现机器自动调用.

然而6S模型用C#等语言再重新实现一遍又过于麻烦,所以最直接的办法是我们建立一个新的程序,实现对6S,EXE的调用,自动输入数据。其实现步骤如下

using System;
using System.IO;
using System.Diagnostics;
using System.ComponentModel;
namespace Process_StandardInput_Sample
{
class StandardInputTest
{
static void Main()
{
Console.WriteLine("向目标程序中输入数据...");
// 启动 6S.exe 进程,进行重定向输入.建立一个新进程来运行目标程序。
Process myProcess = new Process();
myProcess.StartInfo.FileName = "6s.exe ";//6s.exe存放位置
//只有UseShellExecute、RedirectStandardInput进行设置才能重定向输入
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.RedirectStandardInput = true;
myProcess.Start();
//写数据流,向进程中写数据。
StreamWriter myStreamWriter = myProcess.StandardInput;
// Prompt the user for input text lines to sort.
// Write each line to the StandardInput stream of
// the sort command.
String inputText;
int numLines = 0;
FileStream fs = new FileStream("DATA.txt", FileMode.Open);//参数文件,按行排列。
StreamReader sr = new StreamReader(fs);
inputText = sr.ReadLine();
while (inputText!=null)
{
myStreamWriter.WriteLine(inputText);//程序的核心,向目标程序中写入数据。
inputText = sr.ReadLine();
numLines ++;//行数统计
}
fs.Close();
// Write a report header to the console.
if (numLines > 0)
{
Console.WriteLine(" {0} sorted text line(s) ", numLines);
Console.WriteLine("------------------------");
Console.WriteLine("按任意键结束");
Console.ReadLine();
}
else
{
Console.WriteLine(" 没有数据输入");
Console.ReadLine();
}
// End the input stream to the sort command.
// When the stream closes, the sort command
// writes the sorted text lines to the
// console.
myStreamWriter.Close();
// Wait for the sort process to write the sorted text lines.
myProcess.WaitForExit();
myProcess.Close();
}
}
}

对控制台EXE程序的自动运行问题——以6S模型6s.exe为例相关推荐

  1. 如何通过域服务器推送安装文件,域环境推送exe程序并自动安装教程域环境推送exe程序并自动安装教程.pdf...

    域环境推送exe程序并自动安装教程域环境推送exe程序并自动安装教程 域环境推送exe 程序并自动安装教程 一.思路 微软可以通过组策略对域中的计算机实现对 MSI 格式的软件程序实现派发后自动运行, ...

  2. 计算机自动执行的条件是,电脑中winsat.exe进程总会自动运行的解决方法

    一位用户在使用电脑过程中,发现有个WinSAT.exe进程总会自动运行,随之导致电脑卡顿.CPU占用变高.那么,这个winsat.exe进程是什么?我们该如何关闭呢?接下来,就随系统城小编一起来学习一 ...

  3. java开机自动运行,怎么用java实现程序开机自动运行

    当前位置:我的异常网» J2SE » 怎么用java实现程序开机自动运行 怎么用java实现程序开机自动运行 www.myexceptions.net  网友分享于:2013-02-17  浏览:69 ...

  4. MFC实现程序开机自动运行

    话说,最近在搞windows编程(地球人都知道啦!哪个地球人?哈哈!)-- 在做一个备忘录这样的小工具,希望它能够每次开机自动启动,真正做到备忘的功能(汗,我就怕自己忘记打开)~ 废话少说,入正题!! ...

  5. 关于os.popen函数打开exe程序无法正确运行的问题。

    都说野生的动物好,但是放在程序猿身上,我觉得更是一种无奈.没有人指引,没有人教导,有的只是一颗探索,学习的心.这颗心让我们披荆斩棘.最终看到我们想要的成果.从一句简单的print('hello wor ...

  6. Android APP开机启动,安卓APP开发自启动,安卓启动后APP自动启动 Android让程序开机自动运行APP

    让APP在安卓系统启动自动运行可以带来以下几个好处: 用户方便:当用户打开设备时,自动启动所需的APP可以让用户更方便地使用设备,不必手动打开APP. 提高用户黏性:自动启动APP可以让用户更快地开始 ...

  7. Keil MDK下载程序不自动运行的问题解决方法

    我们在新建一个工程的时候,有时候往往会忘记一些细节的设置(因为你并不常用啊,属于一次性消费,啊啊),导致一些莫名其妙的似曾相识的问题出现. 今天就遇到一个问题,建立了一个工程,下载下去,程序无法运行, ...

  8. html5程序自动登录,Jtro的技术分享:网页调起unity的exe程序并自动登录

    思路是这样:通过一个额外的exe文件来实现登录,并保存一个token文件,然后在unity的项目提交数据的时候读取这个token向服务器发送数据. 下面是具体的方法: s 这个需要用到WPF来编写,首 ...

  9. C# 让程序开机自动运行的方法

    public static void StartRun(){string strName = Application.ExecutablePath;string strnewName = strNam ...

最新文章

  1. Eclipse启动时报错
  2. golang strings Replace 字符串替换
  3. Hibernate第一次课(1)
  4. CodeForces - 1000C Covered Points Count(差分+思维)
  5. 条款33:避免遮掩继承而来的名称
  6. java任务分支和合并_合并/分支战略
  7. shell生成随机文件名
  8. 最新!兰州大学发布对上海市的新冠肺炎疫情预测!
  9. 优达学城深度学习之一——Anaconda
  10. 16进制、10进制(n进制)转换为二进制
  11. IOS解惑(1)之@property(nonatomic,getter=isOn) BOOL on;中的getter解惑
  12. ToString截取字符串的用法
  13. ORACLE11G 字符集更改(这里更改为AL32UTF8)
  14. 搞笑--亚阳影视官方的keyword里写“破解版”
  15. java开源商城系统|代码哥如何用java小程序直播商城搭建直播带货平台技术解决方案
  16. 【教程下载】QGIS的安装及中文配置教程.pdf
  17. 真心实用!Python 办公自动化之 PDF 的详细操作(全)
  18. 关于1931CIE——XYZ色坐标图转换到RGB色坐标关系
  19. 感性电路电流计算_电路分析基础(10)-电路以及信号的功率和能量
  20. 高光谱遥感图像处理与信息提取综述

热门文章

  1. 【数据结构与算法】之深入解析“情侣牵手”的求解思路与算法示例
  2. Linux sar命令实战
  3. 什么运动耳机好用,六款运动耳机值得推荐
  4. 联想G40-30进入PE鼠标键盘失灵解决方法
  5. “ 作业帮 “ (Servlet)
  6. 什么吃掉了你的执行力?在浮躁中求解
  7. surface book 3 结束休眠之后风扇狂转
  8. ESP32快速实现3.2英寸TFT LCD中jpeg图像(ILI9341)
  9. 【线性代数】P1 行列式基本概念
  10. 10种令人吃惊的方式你的日常生活中正在收集数据的大数据野兽