Windows Service 要注意的几点
来源:互联网 发布:淘宝充话费没法退款 编辑:程序博客网 时间:2024/05/16 01:34
http://msdn.microsoft.com/en-us/library/bb540475(v=VS.85).aspx
1.程序类型:Win32 Console Application
2.几个主要的函数类型
VOID WINAPI SvcCtrlHandler( DWORD );
VOID WINAPI SvcMain( DWORD, LPTSTR * );
void __cdecl _tmain(int argc, TCHAR *argv[])
如果函数据类型不对,有可能在你停止service时随机收到0x00000000指令读取0x00000000地址非法的错误。
3. service 的安装类型
SC_HANDLE schService= CreateService(
schSCManager, // SCManager database
pszSvcName, // name of service
pszDisplayName, // service name to display
SERVICE_ALL_ACCESS, // desired access
SERVICE_WIN32_OWN_PROCESS|SERVICE_INTERACTIVE_PROCESS, // service type
SERVICE_AUTO_START, // start type
SERVICE_ERROR_IGNORE, // error control type
pszPathName, // service's binary
NULL, // no load ordering group
NULL, // no tag identifier
NULL, // no dependencies
NULL, // LocalSystem account
NULL); // no password
如果要和系统有键盘消息则需要SERVICE_INTERACTIVE_PROCESS。
像发送Ctrl+Alt+Del消息
keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),0,0);
keybd_event(VK_MENU,MapVirtualKey(VK_MENU,0),0,0);
keybd_event(VK_DELETE,MapVirtualKey(VK_DELETE,0),0,0);
keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),KEYEVENTF_KEYUP,0);
keybd_event(VK_MENU,MapVirtualKey(VK_MENU,0),KEYEVENTF_KEYUP,0);
keybd_event(VK_DELETE,MapVirtualKey(VK_DELETE,0),KEYEVENTF_KEYUP,0);
4.如何调试service.
Service 是一个exe程序。当启动时可以在taskmgr中看到。StartServiceCtrlDispatcher函数将会阻塞,直到用户在services.msc中停止service.
调试方法如下:
在services.msc中启动service, 然后attach到这个进程上进行调试。
- Windows Service 要注意的几点
- Android中使用Service的几点注意
- 将Service用做后台下载需要注意的几点
- 初次接触Windows Mobile开发需要注意的几点
- Windows下安装ubuntu双系统的几点注意
- windows下开发python需要注意的几点
- 编写PPT要注意的几点
- 上传网站要注意的几点
- 找工作时要注意的几点
- 淘宝客 要注意的几点
- htmlt你要注意的几点
- 安装nginx要注意的几点
- C语言要注意的几点
- 今后要注意的几点
- array的几点注意
- 索引的几点注意
- ACL的几点注意
- 注意virtual的几点!
- SDK编写简单的随机数生成器
- 怎样写 Linux LCD 驱动程序
- 为什么SaveDialog不能弹出来?
- 数据库中变量
- 黑马程序员—C#基础回顾
- Windows Service 要注意的几点
- 如何成为“10倍效率”开发者
- 如何学好C++语言
- 人际关系必知的55个绝招
- Vs2005 "正在更新 IntelliSense"无法通过的解决办法
- WinCE Kernel调试要注意的一个问题
- TWaver HTML5 + Node.js + express + socket.io + redis(二)
- 由AlertDialog想到的PhoneWindow, Dialog的覆盖问题
- 如何开展项目团队建设