1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-21 17:28:00 +02:00
Beef/BeefLibs/corlib/src/Diagnostics/ProcessStartInfo.bf

108 lines
3 KiB
Beef
Raw Normal View History

2019-08-23 11:56:54 -07:00
using System.Text;
using System.Collections;
2019-08-23 11:56:54 -07:00
namespace System.Diagnostics
{
class ProcessStartInfo
{
bool mUseShellExecute = true;
bool mRedirectStandardInput = false;
bool mRedirectStandardOutput = false;
bool mRedirectStandardError = false;
bool mCreateNoWindow = false;
public bool ErrorDialog;
//public Windows.Handle ErrorDialogParentHandle;
//public ProcessWindowStyle WindowStyle;
String mFileName = new String() ~ delete _;
String mArguments = new String() ~ delete _;
String mDirectory = new String() ~ delete _;
String mVerb = new String("Open") ~ delete _;
2019-08-23 11:56:54 -07:00
public Dictionary<String, String> mEnvironmentVariables ~ DeleteDictionaryAndKeysAndValues!(_);
2019-08-23 11:56:54 -07:00
public bool UseShellExecute { get { return mUseShellExecute; } set { mUseShellExecute = value; } };
public bool RedirectStandardInput { get { return mRedirectStandardInput; } set { mRedirectStandardInput = value; } };
public bool RedirectStandardOutput { get { return mRedirectStandardOutput; } set { mRedirectStandardOutput = value; } };
public bool RedirectStandardError { get { return mRedirectStandardError; } set { mRedirectStandardError = value; } };
public bool CreateNoWindow { get { return mCreateNoWindow; } set { mCreateNoWindow = value; } };
Encoding StandardOutputEncoding;
Encoding StandardErrorEncoding;
2019-08-23 11:56:54 -07:00
//public bool redirectStandardInput { get { return redirectStandardInput; } set { redirectStandardInput = value; } };
//public bool redirectStandardInput { get { return redirectStandardInput; } set { redirectStandardInput = value; } };
public void GetFileName(String outFileName)
{
if (mFileName != null)
outFileName.Append(mFileName);
}
2020-10-15 10:44:29 -07:00
public void SetFileNameAndArguments(StringView string)
{
if (string.StartsWith('"'))
{
int endPos = string.IndexOf('"', 1);
if (endPos != -1)
{
SetFileName(.(string, 1, endPos - 1));
SetArguments(.(string, endPos + 2));
return;
}
}
int spacePos = string.IndexOf(' ');
if (spacePos != -1)
{
SetFileName(.(string, 0, spacePos));
SetArguments(.(string, spacePos + 1));
return;
}
SetFileName(string);
}
2019-08-23 11:56:54 -07:00
public void SetFileName(StringView fileName)
{
mFileName.Set(fileName);
}
public void SetWorkingDirectory(StringView fileName)
{
mDirectory.Set(fileName);
}
public void SetArguments(StringView arguments)
{
mArguments.Set(arguments);
}
public void SetVerb(StringView verb)
{
mVerb.Set(verb);
}
public void AddEnvironmentVariable(StringView key, StringView value)
{
if (mEnvironmentVariables == null)
{
mEnvironmentVariables = new Dictionary<String, String>();
Environment.GetEnvironmentVariables(mEnvironmentVariables);
}
Environment.SetEnvironmentVariable(mEnvironmentVariables, key, value);
}
public this()
{
//Debug.WriteLine("ProcStartInfo {0} Verb: {1} Tick: {2}", this, mVerb, (int32)Platform.BfpSystem_TickCount());
}
public this(Process process)
{
}
}
}