xtd 0.2.0
process_start_info.h
Go to the documentation of this file.
1 #pragma once
5 #include <map>
6 #include <memory>
7 #include <string>
8 #include <vector>
9 #include "../core_export.h"
10 #include "../object.h"
11 #include "../security/secure_string.h"
12 #include "process_window_style.h"
13 
15 namespace xtd {
17  namespace diagnostics {
37  class core_export_ process_start_info final : public xtd::object {
38  public:
40 
45  process_start_info() = default;
46 
51  explicit process_start_info(const xtd::ustring& file_name);
52 
58  process_start_info(const xtd::ustring& file_name, const xtd::ustring& arguments);
59 
62  process_start_info& operator =(const process_start_info&) = default;
65 
67 
71  const xtd::ustring& arguments() const noexcept;
75  process_start_info& arguments(const xtd::ustring& value) noexcept;
76 
80  bool create_no_window() const noexcept;
85  process_start_info& create_no_window(bool value) noexcept;
86 
89  const xtd::ustring& domain() const noexcept;
93  process_start_info& domain(const xtd::ustring& value) noexcept;
94 
99  const std::map<xtd::ustring, xtd::ustring>& environment() const noexcept;
104  std::map<xtd::ustring, xtd::ustring>& environment() noexcept;
105 
109  const std::map<xtd::ustring, xtd::ustring>& environment_variables() const noexcept;
113  std::map<xtd::ustring, xtd::ustring>& environment_variables() noexcept;
114 
118  bool error_dialog() const noexcept;
123  process_start_info& error_dialog(bool value) noexcept;
124 
128  intptr error_dialog_parent_handle() const noexcept;
133  process_start_info& error_dialog_parent_handle(intptr value) noexcept;
134 
139  const xtd::ustring& file_name() const noexcept;
145  process_start_info& file_name(const xtd::ustring& value) noexcept;
147  process_start_info& file_name(const char* value) noexcept;
149 
154  bool load_user_profile() const noexcept;
160  process_start_info& load_user_profile(bool value) noexcept;
161 
169  const xtd::security::secure_string& password() const noexcept;
178  process_start_info& password(const xtd::security::secure_string& value) noexcept;
179 
182  xtd::ustring password_in_clear_text() const noexcept;
186  process_start_info& password_in_clear_text(const xtd::ustring& value) noexcept;
187 
295  bool redirect_standard_error() const noexcept;
404  process_start_info& redirect_standard_error(bool value) noexcept;
405 
468  bool redirect_standard_input() const noexcept;
532  process_start_info& redirect_standard_input(bool value) noexcept;
533 
656  bool redirect_standard_output() const noexcept;
780  process_start_info& redirect_standard_output(bool value) noexcept;
781 
787  const xtd::ustring& user_name() const noexcept;
794  process_start_info& user_name(const xtd::ustring& value) noexcept;
795 
804  bool use_shell_execute() const noexcept;
814  process_start_info& use_shell_execute(bool value) noexcept;
815 
820  xtd::ustring verb() const noexcept;
826  process_start_info& verb(const xtd::ustring& value) noexcept;
827 
832  std::vector<xtd::ustring> verbs() const;
833 
837  xtd::diagnostics::process_window_style window_style() const noexcept;
842  process_start_info& window_style(xtd::diagnostics::process_window_style value) noexcept;
843 
852  const xtd::ustring& working_directory() const noexcept;
862  process_start_info& working_directory(const xtd::ustring& value) noexcept;
864 
865  private:
866  xtd::ustring file_name_;
867  xtd::ustring arguments_;
868  bool create_no_window_ = false;
869  xtd::ustring domain_;
870  bool error_dialog_ = false;
871  intptr error_dialog_parent_handle_ = 0;
872  std::map<xtd::ustring, xtd::ustring> environment_variables_;
873  bool load_user_profile_ = false;
875  bool redirect_standard_error_ = false;
876  bool redirect_standard_input_ = false;
877  bool redirect_standard_output_ = false;
878  xtd::ustring user_name_;
879  bool use_shell_execute_ = true;
880  xtd::ustring verb_;
882  xtd::ustring working_directory_;
883  };
884  }
885 }
intmax_t intptr
Represent a pointer or a handle.
Definition: types.h:151
The xtd namespace contains all fundamental classes to access Hardware, Os, System, and more.
Definition: system_report.h:17
Contains xtd::diagnostics::process_window_style enum class.
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:46
Specifies that the process has no special scheduling needs.
process_window_style
Specified how a new window should appear when the system starts a process.
Definition: process_window_style.h:22
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes...
Definition: object.h:32
Represents text that should be kept confidential, such as by deleting it from computer memory when no...
Definition: secure_string.h:20
The environment class.
Definition: environment.h:71
Specifies a set of values that are used when you start a process.
Definition: process_start_info.h:37