J’ai ce code:
private void button1_Click(object sender, EventArgs e) { Process p = new Process(); p.StartInfo.FileName = "C:/Users/Valy/Desktop/3dcwrelease/3dcw.exe"; p.Start(); }
3dcw.exe
est une application pour les graphiques OpenGL.
Le problème est que lorsque je clique sur le bouton, le fichier exécutable s’exécute, mais il ne peut pas accéder à ses fichiers de texture.
Quelqu’un a-t-il une solution? Je pense que quelque chose comme le chargement des fichiers bitmap en arrière-plan, puis l’exécution du fichier exe, mais comment puis-je le faire?
J’ai cherché sur Internet une solution à votre problème et ai trouvé ce site: http://www.widecodes.com/0HzqUVPWUX/i-am-lauching-an-opengl-program-exe-file-from-visual- base-mais-la-texture-manque-ce-qui-est-faux.html
En code C #, cela ressemble à ceci:
ssortingng exepath = @"C:\Users\Valy\Desktop\3dcwrelease\3dcw.exe"; ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = exepath; psi.WorkingDirectory = Path.GetDirectoryName(exepath); Process.Start(psi);
Le problème est probablement que 3dcw.exe recherche des fichiers dans son répertoire de travail actuel. Lorsque vous exécutez une application à l’aide de Process.Start
, le répertoire de travail en cours de cette application est Process.Start
par défaut sur %SYSTEMROOT%\system32
. Le programme attend probablement un répertoire différent, probablement celui dans lequel se trouve le fichier exécutable.
Vous pouvez définir le répertoire de travail du processus à l’aide du code ci-dessous:
private void button1_Click(object sender, EventArgs e) { ssortingng path = "C:/Users/Valy/Desktop/3dcwrelease/3dcw.exe"; var processStartInfo = new ProcessStartInfo(); processStartInfo.FileName = path; processStartInfo.WorkingDirectory = Path.GetDirectoryName(path); Process.Start(processStartInfo); }