|
I have this little C# app I made, called "//AC". All it has is some buttons that when you click on them, they open the program. I have a button for, Explorer, Internet Explorer, Windows Media Player and Outlook. It's as simple as that.
Now, there is another program, called "moosebdc.exe" or something that keeps closing explorer on me. The reason, I made my app with a button that launches explorer again.
The question is... How could I make it so my app "AC.exe" can detect when the program "explorer.exe" is shut down, and then imeadetly restart it.
I assume it's gonna go in the Main method, which is provided below.
static void Main()
{
Application.Run(new Form1());
}
Could somebody help?
/\ |_ E X E GG
|
|
|
|
|
Look at System.Diagnostics.Process class, and the GetProcessesByName method to do this.
|
|
|
|
|
Ok, thanks for the start... I'll go mess around with it and see what I can do.
/\ |_ E X E GG
|
|
|
|
|
Im lost...
How can I let my program know if explorer.exe is running or not... and if it isn't start it? Can somebody start me off some?
/\ |_ E X E GG
|
|
|
|
|
eggie5 wrote:
How can I let my program know if explorer.exe is running or not
You have your program go through all of the processes running, if you don't find explorer.exe, then it isn't running. There is an example in MSDN which should help: Look up System.Diagnostics.Process.GetProcessesByName in MSDN and you should see the example there.
eggie5 wrote:
and if it isn't start it?
Use the System.Diagnostics.Process.Start method to start up a new process.
James
"It is self repeating, of unknown pattern"
Data - Star Trek: The Next Generation
|
|
|
|
|
Ok, I see the example on MSDN. But, I then realized that if I only put the code in the "Form1_Load" method, it will only check if it's running once, right? (when the form loads). I need it to be checking constanly if explorer.exe is running or not...
How would I impliment that?
/\ |_ E X E GG
|
|
|
|
|
eggie5 wrote:
How would I impliment that?
You can use the Timer class, in VS.NET use the Timer from the Windows Forms tab of the Toolbox.
Its a relatively straight-forward class, you set the interval (in milliseconds), enable or disable it, and write the code you want to execute on every interval in the event handler for the Tick event.
James
"It is self repeating, of unknown pattern"
Data - Star Trek: The Next Generation
|
|
|
|
|
ok, so I have this....
private void Form1_Load(object sender, System.EventArgs e)
{
Process [] localByName = System.Diagnostics.Process.GetProcessesByName("notepad.exe");
}
So, first things first. From what I understand, the variable localByName (assuming it is a varible, and if it is what kind?) is storing the data from what ever "GetProcessesByName" returns, correct? If so what kind of data is it returing? A sting? A bool?
/\ |_ E X E GG
|
|
|
|
|
Perhaps you should get rid of this moosebdc program. Personally I don't like apps that close other things without my consent.
|
|
|
|
|
I want to format color for some specific rows that meet a certain conditon (for example last 5 rows) in DataGrid.NET, how will I do?
the same question for CheckedListBox, I want to format color for some specific item.
thanks.
|
|
|
|
|
I had realized a movable label control on windform, now I want it resizable look like the text label in PowerPoint,how to do it?
Thanks!
|
|
|
|
|
We are looking at buying a grid control, but I thought I'd see if our two issues are solvable with the DataGrid in .NET...
1. We need an event to fire when the user's selection of row/rows changes (when the user uses mouse and arrow keys). DataGrid does not support this natively, but is there some way to accomplish it?
2. The center horizontal alignment of column header text does not work but left and right do (documented MS bug); it centers all cells but not the column caption text. Is there a work-around to accomplish centering of the column header captions?
I am still using .NET Framework 1.0 if that matters.
Thanks,
Jason
|
|
|
|
|
I'm having a problem reactivating a child form window when it's minimized to its icon state inside a parent window.
If I can avoid using the child window handle that would be great.
Any help will be appriecated. Thanks!
|
|
|
|
|
I have a windows application in C#, that has a form dialog, but doesnt require any user interaction. The form has a timer that closes itself.
MyForm form = new MyForm();<br />
dr = form.ShowDialog();<br />
form.Dispose();
I assigned a new task to run the application in the Task Scheduler. It runs when I am logged in.
However, when I am logged out, the scheduled application runs up to the point of showing the dialog, but throws an exception:
DialogSystem.InvalidOperationException: It is invalid to show a modal dialog or form when the application is not running in UserInteractive mode. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service
Of course, Notepad set up the same way runs fine.
Can someone please point me in the right direction, either where to find the
result or what's happening?
Thanks for any and all help.
Ingram Leedy
You can't depend on your eyes when your imagination is out of focus.
--Mark Twain
|
|
|
|
|
You could try using form.Show() rather than ShowDialog() as this will load the form but not "Modally"...
...this might solve your problem but I'm a bit concerned that you might be solving the bigger problem in a "non-optimal" way...
Just a thought
Shaun.
|
|
|
|
|
I'm really after this - I have a progress form that is showing various information to the user when he is interactive.
Now if this application gets started non-interatively (ie, thru task scheduler when the user is logged out), I need the application to keep running as normal. It doesnt matter that the user sees the dialog or not.
Here is an example code:
ProgressForm progress = new ProgressForm();<br />
<br />
System.Threading.ThreadPool.QueueUserWorkItem( new System.Threading.WaitCallback( PerformCalculations ), progress );<br />
<br />
progress.ShowDialog();<br />
progress.Dispose();
Inside, my PerformCalculations there are bunches of callbacks to the form to update.
Is there a simple way to make the application behave the same for both interactive and non interactive?
Thanks!
Ingram Leedy
You can't depend on your eyes when your imagination is out of focus.
--Mark Twain
|
|
|
|
|
I need to loop through all components in a windows form. Is this possible, and if so, how do I do that?
What I really want to do is to get/set all components text-property in a windows form.
|
|
|
|
|
This will work for just the controls on the form:
foreach(Control subControl in myForm.Controls)
{
subControl.Text = "Howdy!";
}
However, if your controls have sub-controls (like a TabControl has it's own Control collection full of TabPages which then have their own controls), you'd have to use recursion.
SetSubControlText(Control ctrl, string text)
{
if(ctrl.Controls.Count > 0)
{
foreach(Control subControl in ctrl.Controls)
{
subControl.Text = text;
SetSubControlText(subControl);
}
}
}
If you call it like this: SetSubControlText(this, "Howdy!"); then you'll be passing the form to it and the method will loop through every control on the form, and their sub-controls, and set their text to Howdy!.
That should work...but I'm at school right now, and on their crappy computers without VS.NET, so this is untested. If it doesn't work, let me know and I'll look at it tonight.
Hawaian shirts and shorts work too in Summer.
People assume you're either a complete nut (in which case not a worthy target) or so damn good you don't need to worry about camouflage...
-Anna-Jayne Metcalfe on Paintballing
|
|
|
|
|
It works! Thank you very much
|
|
|
|
|
With the Windows API, I used GetSystemMetrics(SM_CXSCREEN)to get the screen size. How do I get it in .NET?
"Do unto others as you would have them do unto you." - Jesus
"An eye for an eye only makes the whole world blind." - Mahatma Gandhi
|
|
|
|
|
That would be the Screen class in the System.Windows.Forms namespace in the .NET framework
Hey leppie! Your "proof" seems brilliant and absurd at the same time. - Vikram Punathambekar 28 Apr '03
|
|
|
|
|
Thanks, although that wasn't necessary.
"Do unto others as you would have them do unto you." - Jesus
"An eye for an eye only makes the whole world blind." - Mahatma Gandhi
|
|
|
|
|
Does anybody have a code snippet that shows how to find the namespace an object lives in?
Dim obj As Object<br />
Namespace = FindNamespace(Obj)
|
|
|
|
|
obj.GetType().Namespace or typeof(Object).Namespace
Hey leppie! Your "proof" seems brilliant and absurd at the same time. - Vikram Punathambekar 28 Apr '03
|
|
|
|
|
Thanks leppie
|
|
|
|