能否做启动别的进程的服务程序? 我现在需要做一个开机自启动(不用登陆)的服务程序,用来启动别的拥有窗体的进程,能做吗?关键是被启动的进程拥有窗体,在用户不登陆的情况下也可以启动吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也知道做成服务程序。我在onstart事件中,执行启动外部程序使用shellexecute(null,'open','f:\**.exe',nil,nil,SW_SHOWNORAML)这样的语句,用run /install安装后,在控制面板里服务就不能启动,说是内部错误是不是服务程序中启动的进程不能拥有窗体啊 我遇到过你这样的问题,利用 CreateProcess 创建进程的方式即可解决。 STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); // Start the child process. if( !CreateProcess( AppNamePath.c_str(), // No module name (use command line). NULL, // Command line. NULL, // Process handle not inheritable. NULL, // Thread handle not inheritable. FALSE, // Set handle inheritance to FALSE. 0, // No creation flags. NULL, // Use parent's environment block. NULL, // Use parent's starting directory. &si, // Pointer to STARTUPINFO structure. &pi ) // Pointer to PROCESS_INFORMATION structure. ) {// ErrorExit( "CreateProcess failed." ); } // Wait until child process exits. WaitForSingleObject( pi.hProcess, INFINITE ); // Close process and thread handles. CloseHandle( pi.hProcess ); CloseHandle( pi.hThread ); 请问线程里处理TstringList出错怎么解决? pos函数怎么查找第二个,或者多个位置呢? RichView自适应问题 一个奇怪的现象,请哥哥们解释一下!! Delphi下如何判断一个目录是不是存在? 怎样捕获ClientSocket连接到Server端时发生的错误? 写一个使用三个表的select 语句 [讨论]客户端软件数据存储的方法 Explorer.exe-应用程序错误 Image 控件的困惑 java开发应用服务器,delphi做前端的应用程序,征求解决方案! 多用户事务提交,锁表问题?
我在onstart事件中,执行启动外部程序
使用shellexecute(null,'open','f:\**.exe',nil,nil,SW_SHOWNORAML)这样的语句,用run /install安装后,在控制面板里服务就不能启动,说是内部错误
是不是服务程序中启动的进程不能拥有窗体啊
STARTUPINFO si;
PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) ); // Start the child process.
if( !CreateProcess( AppNamePath.c_str(), // No module name (use command line).
NULL, // Command line.
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&pi ) // Pointer to PROCESS_INFORMATION structure.
)
{
// ErrorExit( "CreateProcess failed." );
} // Wait until child process exits.
WaitForSingleObject( pi.hProcess, INFINITE ); // Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );