如果您对::FindWindow从服务应用程序失败感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于::FindWindow从服务应用程序失败的详细内容,我们还将为您解答win
如果您对:: FindWindow从服务应用程序失败感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于:: FindWindow从服务应用程序失败的详细内容,我们还将为您解答win10以服务方式启动exe的相关问题,并且为您提供关于2部分Windows应用程序:“Windows服务”+ GUI来configuration它、asp.net – 服务应用程序池“X”的进程与Windows进程激活服务遇到致命的通信错误、c# – 从Windows服务启动Windows应用程序、C# 根据弹窗标题获取窗体句柄并模拟点击按钮(FindWindow,FindWindowEx,SendMessage)的有价值信息。
本文目录一览:- :: FindWindow从服务应用程序失败(win10以服务方式启动exe)
- 2部分Windows应用程序:“Windows服务”+ GUI来configuration它
- asp.net – 服务应用程序池“X”的进程与Windows进程激活服务遇到致命的通信错误
- c# – 从Windows服务启动Windows应用程序
- C# 根据弹窗标题获取窗体句柄并模拟点击按钮(FindWindow,FindWindowEx,SendMessage)
:: FindWindow从服务应用程序失败(win10以服务方式启动exe)
从Service应用程序调用Windows API :: FindWindow函数失败。 GetLastError()也返回0(成功?)。 这是一些特权访问权限问题吗? 你认为这是devise问题,我应该使用另一个IPC方法?
意外的Tomcat关机
创buildWindows服务
Windows服务C
在Linux上运行一个.NET Core守护进程
产生不同用户的上下文过程
leppie的权利,Windows服务通常被拒绝与桌面交互。 你可以绕过在XP和早期版本,但不能在Vista和以上。 您最好将桌面和用户交互委托给GUI应用程序。 详情请参阅此文件 。
服务在会话0中运行。在XP和更早版本上,第一个登录用户也运行在会话0中,后续用户运行在会话1和更高版本中。 如果服务设置为“与桌面交互”,则可以访问在会话0中运行的任何用户窗口。但是,从Vista开始,用户从不再运行会话0。 FindWindow()只能在调用Session的上下文中工作,因为窗口不能跨越Session边界被访问。
2部分Windows应用程序:“Windows服务”+ GUI来configuration它
我正在研究一个由两部分组成的Windows应用程序:
一个代理,在后台运行。
带窗口的主要应用程序,用于启动/停止代理程序并对其进行configuration。
我所理解的是我应该为代理使用“windows服务”。
但我不知道这应该如何打包? (我可以在同一个.exe中有这两个部分?)
以及代理和主应用程序如何进行通信(我应该使用共享文件吗?我的代理是否可以使用私人文件夹?)
我基本上在寻找一些架构build议
在Windows上使用RMarkdown执行bash(Git-Bash)
试图在Python中创build一个打印计算器程序,程序输出0无限
Bower安装包EPERM重命名错误
在Windows上安装dm-types。 (Win7 x64)
确定文件夹ACL是否从.NET中的特定date开始被修改
IOError:权限被拒绝
获取另一个程序的值
如何在Windows Phone 8.1中清除caching导航caching模式
如何开发Windows 2008 64位的C#控制台应用程序?
`os.rmdir`不能在空目录下工作?
您将需要分开.exe文件,一个为服务和一个为Windows应用程序。 你可以在Visual Studio中打包这两个独立的MSI,这样做的好处是,如果你需要移动服务(无论出于什么原因),那么你也不会打包Windows应用程序并将其留在你安装服务的地方。
有不同的方式可以让他们沟通而不会大量复杂。 您可以从文本文件中读取,正如您所建议的那样,但这可能会导致锁定问题。 当我不得不做类似的事情时,我在sql创建了一个简单的数据库(或者你希望的任何品牌的数据库),然后让Windows应用程序向表中插入/更新配置选项,然后服务读取表来获取它的设置。
将代理作为服务运行可能是最好的选择。 它将在没有任何人需要登录的情况下运行,并且Windows为服务提供广泛的监视支持。 您可以使用sc命令来安装,启动和停止服务,如果您拥有适当的权限,它甚至可以支持在其他计算机上控制服务。
为了让你的GUI与它沟通,你可以看看使用WCF。 它将允许您定义与C#类的服务交互,并且可以节省您不必担心检查共享目录或查看共享文件等问题。这种方法还可以轻松地同时支持多个客户端,像共享文件夹的方法会使这个困难。
asp.net – 服务应用程序池“X”的进程与Windows进程激活服务遇到致命的通信错误
服务应用程序池“X”的进程与Windows进程激活服务发生致命的通信错误。进程ID为’5768’。数据字段包含错误号。
要么
服务应用程序池“X”的进程无法响应ping。进程ID为’1032’。
几乎总是在应用程序日志中同时有一个相应的事件:
Faulting application name: w3wp.exe,version: 7.5.7600.16385,time stamp: 0x4a5bcd2b Faulting module name: clr.dll,version: 4.0.30319.269,time stamp: 0x4ee9ae83 Exception code: 0xc00000fd Fault offset: 0x00001916 Faulting process id: 0x508 Faulting application start time: 0x01cd4d8958ecf9ad Faulting application path: C:\Windows\SysWOW64\inetsrv\w3wp.exe Faulting module path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll Report Id: 8dcc413b-b98a-11e1-8075-001c23d6d910
所以我安装了IIS Debugging Tools并设置了一个崩溃规则,指定了“一个特定的IIS Web应用程序池”,没有第一次机会异常记录,“Advanced Settings”(异常,断点,事件)下没有任何内容。
我同时使用以下命令行从Windows调试工具运行Adplus:
adplus -crash -pn w3wp.exe -NoDumpOnFirst -o c:\logs
但是,由于我附加了调试器,我在系统日志中收到了几个“警告”级消息(关于“进程服务应用程序池”X“遇到致命的通信错误”),但是我没有在应用程序日志中得到相应的错误级别事件。
我唯一可以得到的是以下(其中约有50个):
[6/18/2012 7:50:25 PM] Thread exited. Exiting thread system id - System ID: 3300. Exit code - 0x800703e9 [6/18/2012 7:50:25 PM] Thread exited. Exiting thread system id - System ID: 4992. Exit code - 0x800703e9 [6/18/2012 7:50:25 PM] Thread exited. Exiting thread system id - System ID: 5456. Exit code - 0x800703e9 [6/18/2012 7:50:25 PM] Thread exited. Exiting thread system id - System ID: 4924. Exit code - 0x800703e9
退出代码0x800703e9表示堆栈溢出某处,这是幸运的,因为一旦我可以找到它应该很容易修复。
但是,为了做到这一点,我需要更多的崩溃转储信息,以便我可以使用WinDbg打开它们,并使用“!clrstack”命令来确定我的问题。
我的问题是:我的调试工具配置不正确或我误会事件日志?似乎我们的应用程序池是回收,只要我在系统日志中看到有关“Windows进程激活服务的致命通信错误”的事件,但是当这些事件发生时,我没有从IIS调试工具或Adplus得到任何崩溃转储信息。由于某些原因,由于我附加了调试器,所以在应用程序日志中,我没有收到任何与我的系统日志警告事件相对应的“错误”事件。不知道为什么我以某种方式需要使用CLR信息获取完整的故障转储,以便我可以弄清楚我的问题在哪里。
我唯一可以想到的其他事情是Windows错误报告服务没有运行。不知道是否需要。
感谢任何帮助。
解决方法
sxe sov
请注意,您将需要使用x86版本的调试器,因为您的应用程序池配置为32位进程。
c# – 从Windows服务启动Windows应用程序
Process.Start(@"filename.exe");
在Windows 7中,我收到一个弹出窗口,说:“这台计算机上运行的程序正在尝试显示一条消息”
解决方法
http://www.codeproject.com/KB/vista-security/SubvertingVistaUAC.aspx
C# 根据弹窗标题获取窗体句柄并模拟点击按钮(FindWindow,FindWindowEx,SendMessage)

任务:将下面弹窗自动关闭
/// <summary>
/// 找到窗口
/// </summary>
/// <param name="lpClassName">窗口类名(例:Button)</param>
/// <param name="lpWindowName">窗口标题</param>
/// <returns></returns>
[DllImport("user32.dll", EntryPoint = "FindWindow")]
private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);
/// <summary>
/// 找到窗口
/// </summary>
/// <param name="hwndParent">父窗口句柄(如果为空,则为桌面窗口)</param>
/// <param name="hwndChildAfter">子窗口句柄(从该子窗口之后查找)</param>
/// <param name="lpszClass">窗口类名(例:Button</param>
/// <param name="lpszWindow">窗口标题</param>
/// <returns></returns>
[DllImport("user32.dll", EntryPoint = "FindWindowEx")]
private extern static IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
/// <summary>
/// 发送消息
/// </summary>
/// <param name="hwnd">消息接受窗口句柄</param>
/// <param name="wMsg">消息</param>
/// <param name="wParam">指定附加的消息特定信息</param>
/// <param name="lParam">指定附加的消息特定信息</param>
/// <returns></returns>
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
private static extern int SendMessage(IntPtr hwnd, uint wMsg, int wParam, int lParam);
//窗口发送给按钮控件的消息,让按钮执行点击操作,可以模拟按钮点击
private const int BM_CLICK = 0xF5;
通过窗体标题,循环查找该窗体,然后找到确定按钮,通过句柄发送点击消息,主动关闭弹窗
private void Form1_Load(object sender, EventArgs e)
{
Task task = new Task(() =>
{
while (true)
{
//测试警告框
IntPtr maindHwnd = FindWindow(null, "提示");//主窗口标题
if (maindHwnd != IntPtr.Zero)
{
IntPtr childHwnd = FindWindowEx(maindHwnd, IntPtr.Zero, null, "确定");//按钮控件标题
if (childHwnd != IntPtr.Zero)
{
SendMessage(childHwnd, BM_CLICK, 0, 0);
}
}
}
});
task.Start();
}
参考:
https://www.cnblogs.com/easypass/p/4067484.html
https://www.cnblogs.com/tary2017/articles/8031782.html
今天关于:: FindWindow从服务应用程序失败和win10以服务方式启动exe的分享就到这里,希望大家有所收获,若想了解更多关于2部分Windows应用程序:“Windows服务”+ GUI来configuration它、asp.net – 服务应用程序池“X”的进程与Windows进程激活服务遇到致命的通信错误、c# – 从Windows服务启动Windows应用程序、C# 根据弹窗标题获取窗体句柄并模拟点击按钮(FindWindow,FindWindowEx,SendMessage)等相关知识,可以在本站进行查询。
本文标签: