I am using the below code to find the base address of a running process. It’s within a timer control for other purposes. If the target process is not running I want to display “Process is not running” in the label text, but keep checking for the running process and when/if found continue with the next code block. I have tried a few ways I thought would work, such as a ‘try’ with exception handling, but the form I am using to hold the label just freezes, I am quit new to c#. Here is the code,
private void timer1_Tick(object sender, EventArgs e)
{
#region BaseAddress
Process[] test = Process.GetProcessesByName("process");
int Base = test[0].MainModule.BaseAddress.ToInt32();
#endregion
//Other code
}
The exception when run is: “IndexOutOfRange exception was unhandled” – Index was outside the bounds of the array. Hopefully someone can help. Thanks.
Rather than use a try–catch block to handle the error, you should check whether the process was found before trying to access it: