process.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #pragma once
  2. #include "sol/sol.hpp"
  3. namespace module
  4. {
  5. /// <summary>
  6. /// 进程
  7. /// </summary>
  8. class process{
  9. public:
  10. /// <summary>
  11. /// 创建
  12. /// </summary>
  13. /// <param name="filepath"></param>
  14. /// <param name="working_directory"></param>
  15. /// <param name="args"></param>
  16. /// <param name="wait_close"></param>
  17. /// <param name="show_window"></param>
  18. /// <returns>0=失败 否则为PID</returns>
  19. static size_t create(const std::string & filepath, const std::string & working_directory,sol::table args, bool wait_close, bool show_window);
  20. /// <summary>
  21. /// 关闭
  22. /// </summary>
  23. /// <param name="pid"></param>
  24. /// <returns></returns>
  25. static bool destory(size_t pid);
  26. /// <summary>
  27. /// 进程列表
  28. /// </summary>
  29. /// <param name="s"></param>
  30. /// <returns></returns>
  31. static sol::table list(sol::this_state s);
  32. /// <summary>
  33. /// 是否存在
  34. /// </summary>
  35. /// <param name="filepath"></param>
  36. /// <returns></returns>
  37. static size_t exist(const std::string& filepath);
  38. static bool exist_pid(size_t pid);
  39. /// <summary>
  40. /// 取PID路径
  41. /// </summary>
  42. /// <param name="pid"></param>
  43. /// <returns></returns>
  44. static std::string getpath(size_t pid);
  45. static void regist(sol::state* lua);
  46. };
  47. }