今天想在web form的一个button里调用一个exe, 试了好半天, 没搞出来. 最后还是通过调用window service, 让windows service来调用我的exe.
来说说我今天的历程
1 以前看过别人写的调exe的代码, 不就是Process.start嘛, 于是搬到button事件里. click button, 没反应, 啥都没有.
后来看看进程管理器, 居然在. 奇怪了 怎么没有显示在桌面上呢.
2 想了半天, 点点Process的几个重载, 还不少, 看到有个重载需要用户名和密码的. 于是以为是不是因为ASP.NET启动exe的权限不够 导致没有出现在桌面上.
写上去, 发现不得了, 报了个win32的错. 于是google下, msdn下. 解决方案还不少, 好像都没有用的, 难道是忽悠我?
3 在第二点上纠缠了半天, 在一个论坛上找到个提议. 通过ASP.NET来启动windows 服务, 由服务来调用exe. 恩,貌似有点道理, 于是上网又google下怎么写windows 服务
好了,跑起来了,还是没有显示在桌面上。 再次google, 原来要先点local system account, 然后勾选在log on tab里的 "allow service to interact with desktop".
呵呵, 这招果然奏效. 目的是达到了, 不过感觉有点猥琐.
4 我想请问各位大侠, asp.net 是否可以直接调exe 并且让这个exe显示在桌面上? 还有怎么让我这个调用的exe运行账户不是ASPNET?
谢谢