|
i am using Process Class to execute a batch file.The batch file contains compiling code of C.i wanted to get the compilation output in string format.how can i do this?is any function for that?
modified on Thursday, April 23, 2009 3:02 AM
|
|
|
|
|
Use the "StandardOutput" property of the process class. This will give you a stream to read the output generated by the running process.
|
|
|
|
|
I am using the following code...
how can i get the compilation result in string format.
Process myProcess;
// myProcess = new Process();
// myProcess = Process.Start(BatchFile);
// myProcess.WaitForExit(240000);
// myProcess.Close();
|
|
|
|
|
|
|
You can rewrite the dlls that house the APIs to add some sort of logging that you can refer to. Otherwise, no.
Christian Graus
Driven to the arms of OSX by Vista.
"I am new to programming world. I have been learning c# for about past four weeks. I am quite acquainted with the fundamentals of c#. Now I have to work on a project which converts given flat files to XML using the XML serialization method" - SK64 ( but the forums have stuff like this posted every day )
|
|
|
|
|
|
That's just not possible AFAIK.
Out of curiosity: What are you trying to do?
Regards
Thomas
www.thomas-weller.de
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. Programmer - an organism that turns coffee into software.
|
|
|
|
|
You can't. When another application makes an API call, the only thing that knows about it is the OS itself. Other processes aren't notified. You could rewrite [kernel32.dll|user32.dll|etc] provided you understand assembly language, but AFAIK that would be illegal and System File Protection would kick up an error. So, in short: No, you can't
|
|
|
|
|
how can we use check boxes and button control in a datagrid in window app.
|
|
|
|
|
You can use datagridview control and add checkboxcolumns..
Jack Sparrow
--------------------------------------
Defeat is not the worst of failures. Not to have tried is the true failure.
|
|
|
|
|
hello sir,
my problem is that how to bundle a .net window application with sqlserver 2005
while using vs 2000 and sql server 2000 it is easily done by msde deployment toolkit
but how we can do the same in vs 2005
thanks in advance
|
|
|
|
|
You should not deploy SQL Server because your clients need to have their own licenses for the program.
Christian Graus
Driven to the arms of OSX by Vista.
"I am new to programming world. I have been learning c# for about past four weeks. I am quite acquainted with the fundamentals of c#. Now I have to work on a project which converts given flat files to XML using the XML serialization method" - SK64 ( but the forums have stuff like this posted every day )
|
|
|
|
|
its means that there is no functionality like msde toolkit in vs 2005 which we can easily use in vs 2000
|
|
|
|
|
is there any way to use msde deployment toolkit 2000 with vs 2005
|
|
|
|
|
I've always written a core installer exe which runs the msi's for other products I need, in C++.
Christian Graus
Driven to the arms of OSX by Vista.
"I am new to programming world. I have been learning c# for about past four weeks. I am quite acquainted with the fundamentals of c#. Now I have to work on a project which converts given flat files to XML using the XML serialization method" - SK64 ( but the forums have stuff like this posted every day )
|
|
|
|
|
In my table one column datatype is timestamp in sqlserver database.While getting data into dataset that value is visble as 0X000000000000007D1. But how i know wats that value is?. I want to create a csv file with that data, which i got from dataset. Please help me out.
Thanks in advance everybody.
|
|
|
|
|
What code are you using to end up with this value ? I always read dates from the DB as dates, I've never had this issue.
Christian Graus
Driven to the arms of OSX by Vista.
"I am new to programming world. I have been learning c# for about past four weeks. I am quite acquainted with the fundamentals of c#. Now I have to work on a project which converts given flat files to XML using the XML serialization method" - SK64 ( but the forums have stuff like this posted every day )
|
|
|
|
|
timestamp is a binary - try this[^]
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
hi everyone,
i have a code like this:
if (condition == true)
{
Thread t = new Thread(new ParameterizedThreadStart(Func));
t.Start(param);
}
.
.
.
Func(Object o)
{
Form1 form = new Form1(o);
form.Visible = true;
}
but when the thread starts, my form appears and suddenly it disappears . it seems thread ends the form process. what should i do?
thanks in advanced
|
|
|
|
|
Your problem is that the Form1 instance goes out of scope. When this happens, it gets Dispose()'d. When it gets disposed, it closes. You have two options
- Instead of setting form.Visible to true, call ShowDialog(). This will halt Thread execution until the Form closes
- Put the Form variable at the class level. This will tackle the basic problem
Just as an aside, you should be using safe cross-thread access by now if you aren't already. It looks longer, but is far better than just setting AllowCrossThreadCalls to true
|
|
|
|
|
wow! it really worked. i can't believe it! wonderful
you know? working with threads is really confusing
thanks again
|
|
|
|
|
If you need any additional information, then Luc Pattyn's post below is a good read. When you aren't accessing any Controls, it's very similar to normal, single-threaded programming. The only exception is synchronisation - if you're modifying a variable in multiple Threads, then make sure it's synchronised otherwise you might end up with a race condition
|
|
|
|
|
Hi,
you get one of my standard replies:
Controls are not thread-safe, hence they should be touched (that is: their methods or properties called) only by the thread that created them, which normally is the main thread (aka GUI thread). Creating some controls on a different thread is unlikely to be successful, since all Controls get linked somehow: they reside on Forms, Forms are related to each other (by Parent, by Z-Order, etc), so normally all are created on a single thread.
If you violate the “don’t touch Controls from another thread” rule and are running .NET version 2.0 or above you will get an InvalidOperationException (“Cross-thread operation not valid”), which should be remedied by changing the code.
Do not set Control.CheckForIllegalCrossThreadCalls false, since that does hide the exception but does not cure the fundamental flaw in your code, so it just postpones the moment of failure, which typically will show as a non-responsive and possibly badly painted GUI.
Here are some ways to get another thread:
- explicitly launching a Thread instance
- exclicitly delegating some work to a ThreadPool thread
- using a BackgroundWorker; a BGW is a separate thread with the advantage that two of its events (ProgressChanged and RunWorkerCompleted) execute on the GUI thread; however the bulk of the work normally is handled in the DoWork handler which runs on a distinct thread.
- using timers other than System.Windows.Forms.Timer; the Forms timer ticks on the GUI thread, all other use different threads to handle the periodic event;
- using asynchronous input/output, such as the DataReceived event of the SerialPort class
Any of these touching a single method or property of a Control is sufficient to create havoc; there are 5 exceptions:
- the InvokeRequired property
- the Invoke, BeginInvoke, EndInvoke and CreateGraphics methods (the latter only if the handle for the control has already been created).
If there is a need to touch the Control from another thread, one must use an Invoke pattern, which in C# basically looks like this (VB.NET would be very similar):
public void SetText(string text) {
if (myControl.InvokeRequired) {
myControl.Invoke(new Action< string >(SetText),
new object[] {text});
} else {
myControl.Text=text;
}
}
|
|
|
|
|
I have seen you post this 'standard reply' atleast 4 times a week.
|
|
|
|