Not sure how I would be able to be any more clearer than that.
Pretty easily, to be honest, but it will do because the issue is clear from what you provided. It may not have been though. Honestly, you're far from the only one but a lot of people are terrible at explaining things that they even did with their very own hands. You can say "I opened X page, I clicked Y button, I selected Z file", etc. Details often matter. You should ALWAYS provide a FULL and CLEAR explanation of the problem up front.
Anyway, when you add a file to your project resources, a property is generated through which you access the data. The type of that property depends on the type of file you added. It might be
string
for a text file or
Image
for a picture file and it will be
byte[]
for a binary file like an executable. You could have easily seen the type of that property, i.e.
Properties.Resources.telephone
, by simply mousing over it in the code window. Intellisense would have told you as you typed it too, I think. If you did any research on the
Process.Start
method, nothing you found would have suggested that you could pass a
byte
array to it as an argument. It expects a
string
containing the path of a file, so you need a file in the first place. You have a resource, which is data compiled directly into your application. Very much not the same thing.
If you want to be able to run this EXE file then you need a file, so you'll need to extract the data from the resource and save it as a file first, then pass the path of that file to
Process.Start
. Be aware though, that many antivirus software packages will consider that suspicious activity and block it. If you want your app to run another EXE, the safest option is to deploy that EXE with your own and put them in the same folder to start with.