windows service后台服务怎样用qt实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows service后台服务怎样用qt实现相关的知识,希望对你有一定的参考价值。

参考技术A 1. bool QApplication::winEventFilter ( MSG * ) 消息程序每接受消息调用函数想处理Qt处理窗口消息msg请重新实现函数 1. bool MainWindow::winEvent(MSG* pMsg) 2. 3. if ( pMsg->message == WM_COPYDATA ) 4. 5. COPYDATASTRUCT* pCopyDataStruct; 6. POSTERS_REC_STRUCT* pRec; 7. unsigned char* odapMsgPtr[MAX_POSTERS_SIZE]; 8. QString str; 9. pCopyDataStruct = (COPYDATASTRUCT*) pMsg->lParam; 10. switch (pCopyDataStruct->dwData) 11. 12. case VALID_REC1 : 13. case VALID_REC2 : 14. 15. (void)memcpy(odapMsgPtr, pCopyDataStruct->lpData, pCopyDataStruct->cbData); 16. if (odapMsgPtr != NULL) 17. 18. pRec = (POSTERS_REC_STRUCT *)odapMsgPtr; 19. class_data1 = pRec->var1; 20. class_data2 = pRec->var2; 21. 22. 23. 24. return true; 25. 26. else 27. return false; 28. 29. Some Code on the web gives another example 30. #ifdef HAVE_WIN32_API 31. virtual bool winEventFilter(MSG * msg) 32. SPW_InputEvent sbEvent; 33. if (SPW_TranslateEventWin32(msg, &sbEvent)) 34. QWidget * focus = this->focusWidget(); 35. if (!focus) focus = this->activeWindow(); 36. if (focus) 37. QCustomEvent qevent((QEvent::Type)SoQtInternal::SPACEBALL_EVENT, 38. (void *)&sbEvent); 39. QApplication::sendEvent(focus, &qevent); 40. 41. 42. #if (QT_VERSION >= 0x040000) 43. long result = 0; 44. return QApplication::winEventFilter(msg, &result); 45. #else 46. return QApplication::winEventFilter(msg); 47. #endif The QSystemTrayIcon class provides an icon for an application in the system tray.
Modern operating systems usually provide a special area on the desktop, called the system tray or notification area, where long-running applications can display icons and short messages. 1. /* translates a Win32 event to a SPW_InputEvent. */ 2. int SPW_TranslateEventWin32(MSG * msg, SPW_InputEvent * sbEvent) 3. 4. SiSpwEvent spwEvent; 5. SiGetEventData eventdata; 6. if (Spw_DeviceHandle != SI_NO_HANDLE) 7. SiGetEventWinInit (&eventdata, msg->message, msg->wParam, msg->lParam); 8. if (SiGetEvent (Spw_DeviceHandle, 0, &eventdata, &spwEvent) == SI_IS_EVENT) 9. int i; 10. switch(spwEvent.type) 11. case SI_MOTION_EVENT: 12. sbEvent->type = SPW_InputMotionEvent; 13. for(i=0; isData[i] = (short)spwEvent.u.spwData.mData[i]; 15. 16. break; 17. case SI_BUTTON_EVENT: 18. sbEvent->type = SPW_InputButtonPressEvent; 19. sbEvent->buttonState.pressed = (SiButtonPressed(&spwEvent) != SI_NO_BUTTON); 20. sbEvent->buttonState.released = (SiButtonReleased(&spwEvent) != SI_NO_BUTTON); 21. break; 22. 23. return TRUE; 24. 25. 26. return FALSE; 27. 结:QT源码解析Qt处理Windows消息内容介绍完希望本文帮助源:网络
S

rediswindows 怎样关闭redis

安装redis之后
在命令行窗口中输入 redis-server redis.windows.conf 启动redis
关闭命令行窗口就是关闭 redis。
---
redis作为windows服务启动方式
redis-server --service-install redis.windows.conf
启动服务:redis-server --service-start
停止服务:redis-server --service-stop

以上是关于windows service后台服务怎样用qt实现的主要内容,如果未能解决你的问题,请参考以下文章

系统服务项Background Intelligent Transfer Service怎样禁用

Android中怎么启动关闭Service及功能解释

Windows系统:redis后台运行配置

Android基础 Service全解析----看不见的Activity

怀疑 Windows 流氓软件后台偷偷读文件,教你如何实锤

windows redis 后台运行