Here is the piece of code, which run through all the process and when It finds the right process, code sends the message. My question is what happened to the 'proc', how to dispose that process.
//get all other (possible) running instances
Process[] processes = Process.GetProcesses();
foreach (Process proc in processes)
{
if (proc.ProcessName.ToLower() == ProcessName.ToLower())
{
SendMessage(proc.MainWindowHandle, (uint)Message, IntPtr.Zero, IntPtr.Zero);
}
}
Thanks in advance, Harsha
To make sure all resoucers are freed as early as possible, call Dispose on the process, when you no longer need it.
//get all other (possible) running instances
Process[] processes = Process.GetProcesses();
try
{
foreach (Process proc in processes)
{
// use proc
}
}
finally
{
foreach (Process proc in processes)
proc.Dispose();
processes = null;
}
In general terms you don't need to worry about disposing or deallocating objects, unless the object implements the IDisposable
interface. If it does you should either call the Dispose()
method on it manually when you're finished, or wrap with a using
statement to have it called automatically:
using (var disposableObject = new DisposableType())
{
// do work with disposableObject
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With