Author: sserapion
Date: Wed Oct 15 02:42:35 2008
New Revision: 36757
URL:
http://svn.reactos.org/svn/reactos?rev=36757&view=rev
Log:
-Commit WIP.
-Used Pipe code from rosdbg. Kudos to gschneider for the great code.
-Good bye horrible polling, temporary file deletion and weird live scrolling code!!!
Added:
trunk/tools/Qemu GUI/NamedPipe.cs (with props)
trunk/tools/Qemu GUI/PipeClient.cs (with props)
Modified:
trunk/tools/Qemu GUI/AssemblyInfo.cs
trunk/tools/Qemu GUI/Data.cs
trunk/tools/Qemu GUI/DebugForm.cs
trunk/tools/Qemu GUI/ErrorForm.cs
trunk/tools/Qemu GUI/MainForm.cs
trunk/tools/Qemu GUI/Properties/Resources.Designer.cs
trunk/tools/Qemu GUI/Properties/Resources.resx
trunk/tools/Qemu GUI/Properties/app.manifest
trunk/tools/Qemu GUI/QEmuGUI.csproj
trunk/tools/Qemu GUI/Qemu GUI.sln
trunk/tools/Qemu GUI/Runner.cs
Modified: trunk/tools/Qemu GUI/AssemblyInfo.cs
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/Qemu%20GUI/AssemblyInfo.cs?r…
==============================================================================
--- trunk/tools/Qemu GUI/AssemblyInfo.cs [iso-8859-1] (original)
+++ trunk/tools/Qemu GUI/AssemblyInfo.cs [iso-8859-1] Wed Oct 15 02:42:35 2008
@@ -1,5 +1,6 @@
using System.Reflection;
using System.Runtime.CompilerServices;
+using System.Resources;
//
// General Information about an assembly is controlled through the following
@@ -56,3 +57,4 @@
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]
[assembly: AssemblyKeyName("")]
+[assembly: NeutralResourcesLanguageAttribute("en")]
Modified: trunk/tools/Qemu GUI/Data.cs
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/Qemu%20GUI/Data.cs?rev=36757…
==============================================================================
--- trunk/tools/Qemu GUI/Data.cs [iso-8859-1] (original)
+++ trunk/tools/Qemu GUI/Data.cs [iso-8859-1] Wed Oct 15 02:42:35 2008
@@ -446,8 +446,8 @@
}
else if (this.SerialPort.SRedirect)
{
- /* fix me: use pipes!!!!!! */
- buffer = "-serial file:\"" + this.SerialPort.FileName +
"\" ";
+ //if (this.SerialPort.FileName.Length > 0)
+ buffer = "-serial pipe:\"com_1\" ";
}
Modified: trunk/tools/Qemu GUI/DebugForm.cs
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/Qemu%20GUI/DebugForm.cs?rev=…
==============================================================================
--- trunk/tools/Qemu GUI/DebugForm.cs [iso-8859-1] (original)
+++ trunk/tools/Qemu GUI/DebugForm.cs [iso-8859-1] Wed Oct 15 02:42:35 2008
@@ -1,18 +1,13 @@
using System;
using System.IO;
using System.Diagnostics;
-using System.Threading;
+using System.ComponentModel;
using System.Windows.Forms;
namespace Qemu_GUI
{
public partial class DebugForm : Form
{
- string talker;
- Process proc;
- ThreadStart start;
- Thread worker;
-
public DebugForm()
{
InitializeComponent();
@@ -22,96 +17,55 @@
{
this.Close();
}
- public void Listen(Process p, string Talker)
+ public void Listen()
{
- if (p.HasExited)
- return;
+ this.Show();
- proc = p;
- talker = Talker;
+ BackgroundWorker work = new BackgroundWorker();
+ work.DoWork += new DoWorkEventHandler(work_DoWork);
+ work.RunWorkerAsync();
+ }
- start = new ThreadStart(ThreadProc);
- worker = new Thread(start);
- worker.Priority = ThreadPriority.Normal;
- this.Show();//show the dialog
- worker.Start();
+ void work_DoWork(object sender, DoWorkEventArgs e)
+ {
+ NamedPipe pipe = new NamedPipe();
+
+ //it might take a while for qemu to launch and wait for a pipe
+ System.Threading.Thread.Sleep(1000);
+
+ pipe.CreateClientPipe("com_1");
+
+ pipe.PipeReceiveEvent += new PipeReceiveEventHandler(PipeRecievedHandler);
+ pipe.PipeErrorEvent += new PipeErrorEventHandler(PipeErrorHandler);
+
+ pipe.ReadLoop();
}
- private void ThreadProc()
+
+ private void PipeErrorHandler(object sender, PipeErrorEventArgs args)
{
- FileStream log = null;
- txtDebug.Text = "";
- string buffer = "";
- string temp = "";
+ ErrorForm err = new ErrorForm();
+ err.txtError.Text += "PipeErrorHandler:" + Environment.NewLine;
+ err.txtError.Text += args.ErrorDesc;
+ err.Show();
+ }
- /* fix me: writting to a form from a diferent thread, unsafe. */
- try
+ private void PipeRecievedHandler(object sender, PipeReceiveEventArgs args)
+ {
+ WriteString(args.Received);
+ }
+
+
+ private delegate void WriteStringDelegate(string text);
+ public void WriteString(string text)
+ {
+ if (txtDebug.InvokeRequired)
+ txtDebug.Invoke(new WriteStringDelegate(WriteString), text);
+ else
{
- log = new FileStream(talker, FileMode.OpenOrCreate, FileAccess.Read,
FileShare.ReadWrite);
- while (!proc.HasExited)
- {
- int data = log.ReadByte();
- if (data != -1)
- {
- worker.Priority = ThreadPriority.Normal;
- buffer += Convert.ToChar(data);
-
- if (buffer.Contains("\n"))
- {
- temp = txtDebug.Text + buffer;
- txtDebug.Text = "";
- txtDebug.SelectedText = temp;
- buffer = "";
- }
- }
- else
- worker.Priority = ThreadPriority.Lowest;
- //Thread.Sleep(50);//wait a 1/4 of a second for more data
- }
-
- temp = txtDebug.Text + buffer;
- txtDebug.Text = "";
- txtDebug.SelectedText = temp;
- log.Close();
- DeleteTalker();
- //txtDebug.Text += "QEMU GUI: Exited listener!" +
Environment.NewLine;
+ txtDebug.AppendText(text);
+ txtDebug.ScrollToCaret();
}
- catch (Exception e)
- {
- /* fix me: writting to a form from a diferent thread, unsafe. */
- try
- {
- log.Close();
- txtDebug.Text += "QEMU GUI: Exited listener on exception!"
+ Environment.NewLine;
- txtDebug.Text += e.Message;
- }
- catch
- {}
- }
- log.Close();
- DeleteTalker();
}
- private void DeleteTalker()
- {
- /* sometimes it takes a while for qemu to free the handle to the file */
-
- while (File.Exists(talker))
- {
- if (proc.HasExited)
- {
- worker.Priority = ThreadPriority.Lowest;
-
- try
- {
- File.Delete(talker);
- if (!File.Exists(talker))
- break;
- }
- catch
- { }
- }
- }
- //MessageBox.Show("Temp File deleted!");
- }
private void tsbuttonCopy_Click(object sender, EventArgs e)
{
@@ -138,7 +92,7 @@
{
error = new ErrorForm();
error.txtError.Text = "Exception while trying to save
file!" + Environment.NewLine;
- error.txtError.Text += ex.Message;
+ error.txtError.Text = ex.Message ;
error.Show();
}
log.Close();
Modified: trunk/tools/Qemu GUI/ErrorForm.cs
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/Qemu%20GUI/ErrorForm.cs?rev=…
==============================================================================
--- trunk/tools/Qemu GUI/ErrorForm.cs [iso-8859-1] (original)
+++ trunk/tools/Qemu GUI/ErrorForm.cs [iso-8859-1] Wed Oct 15 02:42:35 2008
@@ -22,4 +22,4 @@
Clipboard.SetText(temp);
}
}
-}
+}
Modified: trunk/tools/Qemu GUI/MainForm.cs
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/Qemu%20GUI/MainForm.cs?rev=3…
==============================================================================
--- trunk/tools/Qemu GUI/MainForm.cs [iso-8859-1] (original)
+++ trunk/tools/Qemu GUI/MainForm.cs [iso-8859-1] Wed Oct 15 02:42:35 2008
@@ -2,7 +2,6 @@
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
-using System.Threading;
using System.Diagnostics;
using System.IO;
using System.Xml.Serialization;
@@ -614,7 +613,7 @@
runner = new Runner(data);
if (runner.MountImage() == true)
{
- Thread.Sleep(500);
+ System.Threading.Thread.Sleep(500);
Process p = new Process();
p.StartInfo.FileName = "explorer";
Added: trunk/tools/Qemu GUI/NamedPipe.cs
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/Qemu%20GUI/NamedPipe.cs?rev=…
==============================================================================
--- trunk/tools/Qemu GUI/NamedPipe.cs (added)
+++ trunk/tools/Qemu GUI/NamedPipe.cs [iso-8859-1] Wed Oct 15 02:42:35 2008
@@ -1,0 +1,206 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.IO;
+using System.IO.Pipes;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading;
+
+namespace Qemu_GUI
+{
+ public enum ConnectionMode
+ {
+ MODE_CLIENT = 0x00000000,
+ MODE_SERVER = 0x00000001,
+ MODE_AUTO = 0x00000002
+ }
+
+ public class NamedPipe : Pipe
+ {
+ public const int PIPE_SIZE = 1024;
+
+ private PipeStream ioStream; /* stream for io operations */
+ private String wCommand; /* buffer of a single command line */
+ private List<String> cmdList; /*list of commands pending to be written */
+
+ public event PipeReceiveEventHandler PipeReceiveEvent;
+ public event PipeErrorEventHandler PipeErrorEvent;
+
+ private static ManualResetEvent newWriteData = new ManualResetEvent(false);
+
+ public NamedPipe()
+ {
+ cmdList = new List<string>();
+ }
+
+ public bool CreateServerPipe(string name)
+ {
+ /* create a pipe and wait for a client */
+ NamedPipeServerStream sStream = new NamedPipeServerStream(name,
PipeDirection.InOut, 1,
+ PipeTransmissionMode.Byte, PipeOptions.Asynchronous, PIPE_SIZE,
PIPE_SIZE);
+ sStream.WaitForConnection();
+
+ if (sStream.IsConnected)
+ {
+ ioStream = sStream;
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ public bool CreateClientPipe(string name)
+ {
+ /* try to connect as a client */
+ /* (QEMU -serial pipe or VMware in pipe server mode) */
+ try
+ {
+ NamedPipeClientStream cStream = new NamedPipeClientStream(".",
name, PipeDirection.InOut, PipeOptions.Asynchronous);
+ cStream.Connect(100);
+
+ if (cStream.IsConnected)
+ {
+ ioStream = cStream;
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ catch (Exception)
+ {
+ return false;
+ }
+ }
+
+ public bool CreatePipe(string name, ConnectionMode mode)
+ {
+ if (name == "" || name == null)
+ {
+ return false;
+ }
+ switch (mode)
+ {
+ case ConnectionMode.MODE_AUTO:
+ //check if pipe exists, if not create server pipe, wait certain time,
check if pipe...
+ //TODO: server-client lookup should time out
+ while (true)
+ {
+ if (CreateClientPipe(name))
+ {
+ break;
+ }
+ if (CreateServerPipe(name))
+ {
+ break;
+ }
+ }
+ return true;
+
+ case ConnectionMode.MODE_CLIENT:
+ while (!CreateClientPipe(name)) ;
+
+ /* pipe open, everything fine */
+ return true;
+
+ case ConnectionMode.MODE_SERVER:
+ if (CreateServerPipe(name))
+ {
+ /* wait for a client*/
+
+ return true;
+ }
+ break;
+ }
+ return false;
+ }
+
+ public void Close()
+ {
+ if (ioStream != null)
+ ioStream.Close();
+ }
+
+ public void WriteLoop()
+ {
+ try
+ {
+ while (true)
+ {
+ if (cmdList.Count > 0)
+ {
+ byte[] wBuf = new byte[cmdList[0].Length];
+ UTF8Encoding.UTF8.GetBytes(cmdList[0], 0, cmdList[0].Length,
wBuf, 0);
+
+ ioStream.Write(wBuf, 0, cmdList[0].Length);
+
+ /* remove written data from commandlist */
+ cmdList.RemoveAt(0);
+ }
+ else if (cmdList.Count == 0)
+ {
+ /* wait until new data is signaled */
+ newWriteData.Reset();
+ newWriteData.WaitOne();
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ if (PipeErrorEvent != null)
+ PipeErrorEvent.Invoke(this, new PipeErrorEventArgs(e.Message));
+ }
+
+ }
+
+ public void ReadLoop()
+ {
+ byte[] buf = new byte[PIPE_SIZE];
+ int read = 0;
+
+ try
+ {
+ while (true)
+ {
+ read = ioStream.Read(buf, 0, PIPE_SIZE);
+ if (read > 0)
+ {
+ if (PipeReceiveEvent != null)
+ PipeReceiveEvent.Invoke(this, new
PipeReceiveEventArgs(UTF8Encoding.UTF8.GetString(buf, 0, read)));
+ }
+ else
+ {
+ /* connecion closed */
+ break;
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ if (PipeErrorEvent != null)
+ PipeErrorEvent.Invoke(this, new PipeErrorEventArgs(e.Message));
+ }
+ }
+
+ public bool Write(string str)
+ {
+ /* only forward a complete line */
+ wCommand += str;
+
+ if (str[str.Length - 1] == '\r')
+ {
+ cmdList.Add(wCommand);
+ wCommand = null;
+
+ /* wake up the write thread */
+ newWriteData.Set();
+ }
+ return true;
+ }
+ }
+
+}
Propchange: trunk/tools/Qemu GUI/NamedPipe.cs
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/tools/Qemu GUI/PipeClient.cs
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/Qemu%20GUI/PipeClient.cs?rev…
==============================================================================
--- trunk/tools/Qemu GUI/PipeClient.cs (added)
+++ trunk/tools/Qemu GUI/PipeClient.cs [iso-8859-1] Wed Oct 15 02:42:35 2008
@@ -1,0 +1,36 @@
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.IO;
+using System.Collections;
+
+namespace Qemu_GUI
+{
+ public class PipeReceiveEventArgs
+ {
+ public readonly string Received;
+ public PipeReceiveEventArgs(string received)
+ {
+ Received = received;
+ }
+ }
+ public delegate void PipeReceiveEventHandler(object sender, PipeReceiveEventArgs
args);
+
+ public class PipeErrorEventArgs
+ {
+ public readonly string ErrorDesc;
+ public PipeErrorEventArgs(string error)
+ {
+ ErrorDesc = error;
+ }
+ }
+ public delegate void PipeErrorEventHandler(object sender, PipeErrorEventArgs args);
+
+ public interface Pipe
+ {
+ event PipeReceiveEventHandler PipeReceiveEvent;
+ event PipeErrorEventHandler PipeErrorEvent;
+ bool Write(string output);
+ }
+
+}
Propchange: trunk/tools/Qemu GUI/PipeClient.cs
------------------------------------------------------------------------------
svn:eol-style = native
Modified: trunk/tools/Qemu GUI/Properties/Resources.Designer.cs
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/Qemu%20GUI/Properties/Resour…
==============================================================================
--- trunk/tools/Qemu GUI/Properties/Resources.Designer.cs [iso-8859-1] (original)
+++ trunk/tools/Qemu GUI/Properties/Resources.Designer.cs [iso-8859-1] Wed Oct 15 02:42:35
2008
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
-// Runtime Version:2.0.50727.312
+// Runtime Version:2.0.50727.1434
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -153,7 +153,7 @@
internal static System.Drawing.Bitmap preferences_system {
get {
- object obj = ResourceManager.GetObject("preferences-system",
resourceCulture);
+ object obj = ResourceManager.GetObject("preferences_system",
resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
Modified: trunk/tools/Qemu GUI/Properties/Resources.resx
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/Qemu%20GUI/Properties/Resour…
==============================================================================
--- trunk/tools/Qemu GUI/Properties/Resources.resx [iso-8859-1] (original)
+++ trunk/tools/Qemu GUI/Properties/Resources.resx [iso-8859-1] Wed Oct 15 02:42:35 2008
@@ -154,7 +154,7 @@
<data name="harddisk" type="System.Resources.ResXFileRef,
System.Windows.Forms">
<value>..\Resources\direct\harddisk.ico;System.Drawing.Bitmap, System.Drawing,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
- <data name="preferences-system" type="System.Resources.ResXFileRef,
System.Windows.Forms">
+ <data name="preferences_system" type="System.Resources.ResXFileRef,
System.Windows.Forms">
<value>..\Resources\preferences-system.png;System.Drawing.Bitmap,
System.Drawing, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="debug" type="System.Resources.ResXFileRef,
System.Windows.Forms">
Modified: trunk/tools/Qemu GUI/Properties/app.manifest
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/Qemu%20GUI/Properties/app.ma…
==============================================================================
--- trunk/tools/Qemu GUI/Properties/app.manifest [iso-8859-1] (original)
+++ trunk/tools/Qemu GUI/Properties/app.manifest [iso-8859-1] Wed Oct 15 02:42:35 2008
@@ -4,7 +4,13 @@
<security>
<applicationRequestMinimum>
<defaultAssemblyRequest permissionSetReference="Custom" />
- <PermissionSet class="System.Security.PermissionSet"
version="1" Unrestricted="true" ID="Custom"
SameSite="site" />
+ <PermissionSet class="System.Security.PermissionSet"
version="1" Unrestricted="true" ID="Custom"
SameSite="site">
+ <IPermission class="System.Security.Permissions.EnvironmentPermission,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1" Unrestricted="true" />
+ <IPermission class="System.Security.Permissions.FileDialogPermission,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1" Unrestricted="true" />
+ <IPermission class="System.Security.Permissions.FileIOPermission,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1" Unrestricted="true" />
+ <IPermission class="System.Security.Permissions.RegistryPermission,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1" Unrestricted="true" />
+ <IPermission class="System.Security.Permissions.UIPermission, mscorlib,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
version="1" Unrestricted="true" />
+ </PermissionSet>
</applicationRequestMinimum>
</security>
</trustInfo>
Modified: trunk/tools/Qemu GUI/QEmuGUI.csproj
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/Qemu%20GUI/QEmuGUI.csproj?re…
==============================================================================
--- trunk/tools/Qemu GUI/QEmuGUI.csproj [iso-8859-1] (original)
+++ trunk/tools/Qemu GUI/QEmuGUI.csproj [iso-8859-1] Wed Oct 15 02:42:35 2008
@@ -1,7 +1,7 @@
-<Project DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
ToolsVersion="3.5">
<PropertyGroup>
<ProjectType>Local</ProjectType>
- <ProductVersion>8.0.50727</ProductVersion>
+ <ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{88020C53-D88A-4488-A479-E7ED0310D3D3}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == ''
">Debug</Configuration>
@@ -30,8 +30,10 @@
<GenerateManifests>true</GenerateManifests>
<SignManifests>false</SignManifests>
<IsWebBootstrapper>false</IsWebBootstrapper>
- <TargetZone>LocalIntranet</TargetZone>
- <PublishUrl>C:\Documents and Settings\Samuel\Desktop\qemu\</PublishUrl>
+ <TargetZone>Custom</TargetZone>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
@@ -41,7 +43,9 @@
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
- <ApplicationVersion>0.1.0.%2a</ApplicationVersion>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' ==
'Debug|AnyCPU' ">
@@ -51,7 +55,7 @@
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <DefineConstants>DEBUG</DefineConstants>
<DocumentationFile>
</DocumentationFile>
<DebugSymbols>true</DebugSymbols>
@@ -69,12 +73,13 @@
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' ==
'Release|AnyCPU' ">
<OutputPath>bin\Release\</OutputPath>
- <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
<BaseAddress>285212672</BaseAddress>
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
- <DefineConstants>TRACE</DefineConstants>
+ <DefineConstants>
+ </DefineConstants>
<DocumentationFile>
</DocumentationFile>
<DebugSymbols>false</DebugSymbols>
@@ -94,6 +99,9 @@
<Reference Include="System">
<Name>System</Name>
</Reference>
+ <Reference Include="System.Core">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
<Reference Include="System.Data">
<Name>System.Data</Name>
</Reference>
@@ -117,6 +125,7 @@
<Compile Include="AboutForm.Designer.cs">
<DependentUpon>AboutForm.cs</DependentUpon>
</Compile>
+ <Compile Include="PipeClient.cs" />
<Compile Include="DebugForm.cs">
<SubType>Form</SubType>
</Compile>
@@ -135,6 +144,7 @@
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
+ <Compile Include="NamedPipe.cs" />
<Compile Include="Network.cs" />
<Compile Include="program.cs" />
<Compile Include="Properties\Resources.Designer.cs">
@@ -165,8 +175,18 @@
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
- <ProductName>.NET Framework 2.0</ProductName>
+ <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5</ProductName>
+ <Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
Modified: trunk/tools/Qemu GUI/Qemu GUI.sln
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/Qemu%20GUI/Qemu%20GUI.sln?re…
==============================================================================
--- trunk/tools/Qemu GUI/Qemu GUI.sln [iso-8859-1] (original)
+++ trunk/tools/Qemu GUI/Qemu GUI.sln [iso-8859-1] Wed Oct 15 02:42:35 2008
@@ -1,5 +1,5 @@
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C# Express 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QEmuGUI",
"QEmuGUI.csproj", "{88020C53-D88A-4488-A479-E7ED0310D3D3}"
EndProject
Global
Modified: trunk/tools/Qemu GUI/Runner.cs
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/Qemu%20GUI/Runner.cs?rev=367…
==============================================================================
--- trunk/tools/Qemu GUI/Runner.cs [iso-8859-1] (original)
+++ trunk/tools/Qemu GUI/Runner.cs [iso-8859-1] Wed Oct 15 02:42:35 2008
@@ -1,7 +1,5 @@
using System;
using System.IO;
-using System.Text;
-using System.Threading;
using System.Diagnostics;
using System.Windows.Forms;
using System.Security.Permissions;
@@ -70,44 +68,28 @@
return false;
}
- if (data.Debug.SerialPort.SRedirect)
- {
- /* create a random name */
- string filename = "serial" + DateTime.UtcNow.Ticks.ToString() +
".txt";
- data.Debug.SerialPort.FileName = temp_path + filename;
- }
-
try
{
p.StartInfo.WorkingDirectory = data.Paths.Qemu;
+ p.StartInfo.Arguments = data.GetArgv();
+ }
+ catch (Exception e)
+ {
+ MessageBox.Show("Invalid path or arguments. Your settings may be
corrupt. \nException Information: " + e.Message, "Error");
+ return false;
+ }
+
+ /* show the command line */
+ ErrBuffer = "Path:" + Environment.NewLine +
p.StartInfo.FileName.ToString() + Environment.NewLine + "Arguments:" +
Environment.NewLine + data.GetArgv();
+
+ try
+ {
+ p.Start();
if (data.Debug.SerialPort.SRedirect)
{
-
output = new DebugForm();
-
- /* create a unic name */
- string filename = "serial" +
DateTime.UtcNow.Ticks.ToString() + ".txt";
- data.Debug.SerialPort.FileName = temp_path + filename;
- }
- p.StartInfo.Arguments = data.GetArgv();
- }
- catch (Exception e)
- {
- MessageBox.Show("Invalid path or arguments. Your settings may be
corrupt. \nException Information: " + e.Message, "Error");
- return false;
- }
-
- /* show the command line */
- ErrBuffer = "Path:" + Environment.NewLine +
p.StartInfo.FileName.ToString() + Environment.NewLine + "Arguments:" +
Environment.NewLine + data.GetArgv();
-
- try
- {
- p.Start();
- if (data.Debug.SerialPort.SRedirect)
- {
- output = new DebugForm();
- output.Listen(p, data.Debug.SerialPort.FileName);
+ output.Listen();
}
}
catch (Exception e)