我如何通过telnet启动winforms应用程序?

时间:2009-06-10 20:48:42

标签: .net windows winforms telnet

我在客户端计算机上有一个Windows窗体应用程序。我试图通过telnet登录,关闭它,更新一些文件,然后重新启动它。

在客户端计算机上使用cmd并输入MyApp.exe非常适合启动它。但是,如果我在telnet窗口中执行此操作,则会发生奇怪的事情:应用程序在进程列表中启动,但它的表单都没有打开,也没有任何log4net日志记录完成。

发生了什么,我该如何解决这个问题?

编辑:所有基于表单的Windows应用程序似乎都是如此。自己尝试一下:telnet localhost =>记事本。它弹出用户界面而不是ui!

另外,我在所有这些机器上安装了RAdmin?从我所看到的它已经不存在的自动化设施,但也许有一些可以帮助我的东西?

5 个答案:

答案 0 :(得分:1)

编辑:在我原来的回答中,我误解了你的问题,我以为你说你重新启动了机器。

话虽如此,我仍然可能尝试采取不同的方法。您可以在MyApp.exe中设置某种类型的自动更新服务。一种简单的方法是设置一个Web服务,MyApp.exe可以轮询该服务以查看新版本何时可用。然后,您需要使用更新程序来执行更新工作。

答案 1 :(得分:1)

我认为正在发生的事情是您的应用程序正在私有桌面上启动,然后在您关闭telnet会话后立即退出。我不知道如何让它在“当前/活动”桌面窗口启动,但要在注销telnet后继续运行,请尝试使用“start”命令运行。

答案 2 :(得分:1)

您可以尝试使用VNCRobot,而不是使用telnet。我相信VNCRobot作为用户运行,应该共享同一个桌面。

免责声明:我从未使用过VNCRobot,我只是觉得值得一提。

答案 3 :(得分:1)

在Windows XP上,我通过使用Windows任务计划程序找到了解决此限制的方法。对于Windows 7,默认情况下不安装telnet。

我首先必须通过合并以下注册表设置,将本地帐户的网络访问:共享和安全模型更改为“经典 - 本地用户自行身份验证”:

Windows注册表编辑器版本5.00 [HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \控制\ LSA] “ForceGuest将”= DWORD:00000000

我将它放在远程FTP服务器上的文件中,并使用FTP命令获取它。

将其与regedit / s file.reg

合并

然后我创建了一个运行一次的任务: SchTasks / Create / SC ONCE / RU“user”/ RP pass / TN“StartApp”/ TR“\”C:\ Windows \ NotePad.exe \“”/ ST 00:00:00

手动启动时间表: Schtasks / run / tn“StartApp”

删除了时间表: schtasks / delete / F / tn“StartAPP”

这很有效。疯了吧!太痛苦了!

答案 4 :(得分:0)

如果您可以在这些计算机上运行PowerShell,您可以使用它来查找正在运行的进程并将其终止。该..

Get-Process

.. Cmdlet将向您显示正在运行的进程,您可以通过此列表编写foreach的逻辑并直接在PowerShell中将您的应用程序与regex匹配,我不知道Ruby但理论上您可以使用它来执行相同的调用powershell命令:

powershell.exe -command Get-Process

杀死一个进程:

Stop-Process <processId>
Stop-Process -processname <processName>

不太确定如何通过telnet启动GUI进程,我的设备上没有telnet设置。

也许你可以做类似的事情:http://www.peterprovost.org/blog/post/Powershell-Sudo-(sort-of)-for-Vista-UAC.aspx

将动词设置为“runas”就像在该地址的示例中一样,将调用UAC,这样做我无法杀死新进程,但是如果我设置的话我会杀掉它:

$psi.Verb = "open"

此外,您还可以设置这些属性:

Verb                    : open
Arguments               :
CreateNoWindow          : False
EnvironmentVariables    : {processor_revision, processor_level, logonserver, systemroot...}
RedirectStandardInput   : False
RedirectStandardOutput  : False
RedirectStandardError   : False
StandardErrorEncoding   :
StandardOutputEncoding  :
UseShellExecute         : True
Verbs                   : {open, runas, runasuser}
UserName                :
Password                :
Domain                  :
LoadUserProfile         : False
FileName                : notepad.exe
WorkingDirectory        :
ErrorDialog             : False
ErrorDialogParentHandle : 0
WindowStyle             : Normal
相关问题