一个远程启动windows c++程序引发的技术决策现象
还是因为那个8点半前要启动近百套报盘程序的问题,差不多两周前表示自己会抽空给解决掉,一次性启动,直到昨天才差不多能够抽点时间出来开始想怎么解决的问题。
这个问题的复杂点在于除了启动exe外,还需要鼠标点击界面上的登录并输入用户名密码,然后选择通道进行启动,一个程序可能会有多个通道。其次,它是用vc ++写的,但是笔者并没有c++的开发经验,所以即使拿到直接的dll也没有用。
所以,一开始考虑通过windows远程桌面登录,并在登录的时候自动启动程序,于是baidu/bing了下,确实有,类似如下:
https://zhidao.baidu.com/question/215168970.html
https://zhidao.baidu.com/question/215168970.html?qbl=relate_question_0&word=%D4%B6%B3%CC%D7%C0%C3%E6%D4%CB%D0%D0%D6%B8%B6%A8%B3%CC%D0%F2
于是发现,到windows 10的时候,这个程序的tab选项消失了,于是msdn继续搜,可知rdp本身就是一个配置文件而已,具体就不详细说了,有需要的可参考如下:
https://social.technet.microsoft.com/Forums/en-US/8498aa46-309b-47f2-9f31-fa66c3c905f0/program-tab-missing-from-windows-10-remote-desktop-connection-and-the-history-brought-from-windows-8?forum=win10itprovirt
反正各种改,包括改组策略里面的值(组策略实时生效http://blog.sina.com.cn/s/blog_44e5d6d10100znkk.html),等等各种测试,差不多折腾了1个小时左右,发现通过rdp登录自动启动exe方式不怎么靠谱和稳定、而且windows 7 64位之后和之前相差的太多,果断换方案,在目标服务器上丢一个代理,远程通过http进行控制。
于是随即就改了方案,通过java加载配置文件中的exe路径去启动,然后报盘程序在被启动之后主动socket连接到监控程序,监控程序接下去反向控制所有的报盘程序。差不多一个下午,服务端就整个框架和大部分代码结构就完成了。
从这个问题引申出的(包括昨天下午我们公司在讨论有些客户测试出来的安全性问题时)一个重要现象在于,很多中小型公司或者部门,通常解决问题的方式是打地鼠式或者说头痛医头、脚痛医脚、拿来就用(跟大公司里面的刚好是两个极端),在真正行动前并没有花一些时间去思考一下真正的问题源头和当前采用方案的不稳定性而不是稳定性在哪里,结果导致很多问题持续几个月都没有解决干净、而是每次出现靠人工去检查和修复错误的数据。这些问题,程序员修复的时候似乎都是打地鼠,有一个洞那就堵上,洞什么原因出现的反而不去关心,更不要说根治,或许这跟公司的领导层背景有一定的关系,因为根治一个问题通常需要一次性花费比堵漏洞多10倍的精力,并且其副作用很可能是以后就清闲了,而在绝大部分公司清闲的程序员被认为是不努力的。
一个远程启动windows c++程序引发的技术决策现象的更多相关文章
- 一个优秀windows C++程序员的知识体系
思考一个优秀windows C++ 程序员该有哪些知识,可最终发现什么知识都不能少, 看下图: 除了上面知识,程序员还要不断学习, 保持对新知识的热情. 转自http://www.cppblog.co ...
- 一个优秀windows C++程序员的知识体系[转]
转自:一个优秀windows C++程序员的知识体系 思考一个优秀windows C++ 程序员该有哪些知识,可最终发现什么知识都不能少, 看下图: 除了上面知识,程序员还要不断学习, 保持对新知识的 ...
- 转:一个优秀windows C++程序员的知识体系
转自:http://www.cppblog.com/weiym/archive/2012/06/10/178287.html.根据自身的经历,觉得作者总结的很好. 思考一个优秀windows C++ ...
- 一个优秀windows C++ 程序员该有哪些知识
- 运用JavaScript构建你的第一个Metro式应用程序(on Windows 8)(一)
原文 http://blog.csdn.net/zhangxin09/article/details/6784547 作者:Chris Sells 译: sp42 原文 包括 HTML.CSS 和 ...
- 利用JSP编程技术实现一个简单的购物车程序
实验二 JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...
- 使用Visual Studio 2008创建你的第一个Windows Mobile程序介绍
使用Visual Studio 2008创建你的第一个Windows Mobile程序介绍 Windows MobileMobileWindowsMicrosoftWinForm 介绍 Microso ...
- Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)
Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer Advanced Installer :Free for 30 da ...
- 我的第一个 Windows 窗口程序(1)
一般来说,构建一个 Windows 程序可以分为如下几个步骤: 定义窗口类(WNDCLASS) 注册窗口类(RegisterClass) 创建窗口(CreateWindow) 更新显示窗口(Updat ...
随机推荐
- ububtu16.04下安装protobuf
重新下载protobuf,我下载的时最新的protobuf-all-3.5.1.tar.gz protobuf网址:https://github.com/google/protobuf/relea ...
- cordova 加载HTML 资源的次序
ionic 开发的app再启动的时候不会很快,因为cordova 会加载html,css, js这些文件,读取这些文件内的代码之后,js代码才能和Native建立桥接. 这是一个初始化运行时环境的操作 ...
- createrepo local http yum
https://www.jianshu.com/p/59ca879584a1 repodata作为软件的仓库,其目录下有四个必要文件:filelists.xml.[gz],other.xml.[g ...
- 5 Tips for Building a Winning DevOps Culture
对于企业来说,前途未卜的改变往往很难发生,就像航海一样,重复的往往是久经验证的安全航线,这点在DevOps文化的构建上同样如此.近日,CA Technologies的高级策略师Peter Waterh ...
- sql中select into和insert into的区别
select into主要是作用于没有新建表,在复制数据的时候新建 insert into主要作用于已经新建了一个表,直接把要复制的数据复制到新建好的表中
- 2018/03/14 每日一个Linux命令 之 ln
ln 链接命令 -- 类似Windows的快捷方式,实际等于建立了一个文件同步的链接,我想,MAC上面复制一个文件到另一个路径,特别快,它可能就是建立了一个链接. -- 在通俗点讲,就是你创建链接之后 ...
- 【python-opencv】几何变换
"""几何变换-缩放""" img = cv.imread(r'pictures\family.jpg') ""&quo ...
- 【python基础】python程序打包成.exe运行时会弹出黑框
用python调用.bat或者.exe文件时,一般调用 方式如下: os.system("C:\Windows\System32\osk.exe") 对吧,这样就会因为调用了系统s ...
- fork 了别人的仓库后,如何将自己的代码和原仓库保持一致
fork 了别人的仓库后,如何将自己的代码和原仓库保持一致 git remote add upstream http:// git fetch upstream
- python 基础 内置函数
内置参数 print(all([5,-1,5])) # 非0都是真 true print(all([0,-1,5])) # false print(any([1,0,5])) # 有一个数据为真,就为 ...