Не запускается программа на Windows 7 64x - C#

Узнай цену своей работы

Формулировка задачи:

добрый день уважаемые программисты вот такой вопрос при запуске exe-шника выдает такую ошибку версия этого файла несовместима с используемой версией windows. проверьте какая система на компе(32 разрядная или 64). у меня 64 разрядная windows 7. может что то надо изменить или добавить в программный код.
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
 
namespace Компилятор
{
    public partial class Form1 : Form
    {
        Font фонт;
        public Form1()//конструктор срабатывает при загрузке формы
        {
            InitializeComponent();//

            string p = Environment.GetFolderPath(Environment.SpecialFolder.System);

            if (p.EndsWith("system32"))
                p = p.Substring(0, p.Length - 8);
            else
               MessageBox.Show("Err!!!");
           // Environment.SetEnvironmentVariable("Path", p + @"Microsoft.NET\Framework\v4.0.20506");
            Environment.SetEnvironmentVariable("Path", p + @"Microsoft.NET\Framework\v2.0.50727");
            //Environment.SetEnvironmentVariable("Path", @"C:\WINDOWS.0\Microsoft.NET\Framework\v2.0.50727");
            фонт= new Font("Arial", 12);
            textBox1.Font = фонт;
            richTextBox2.Font =фонт ;
        }
        public  void Компилятор()
        {
        //Создаем временную переменную окружения процесса.
        //Если используется другая версия .Net, то необходимо скорректировать путь и перекомпилировать программу 
       
            Environment.SetEnvironmentVariable("Path", @"C:\WINDOWS.0\Microsoft.NET\Framework\v2.0.50727");
            //Environment.SetEnvironmentVariable("Path", @"C:\Program Files\LINQ Preview\Bin");
            //IDictionary v=Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Machine);
         //Environment.OSVersion.Platform
            //Ввод имени программы без расширения имени
            
            string имя_программы = textBox1.Text;
            if (имя_программы.ToUpper() == "Q") return;
            //Создаем объект - дочерний процесс 
            Process компилятор = new Process();
            // и задаем атрибуты
            компилятор.StartInfo.FileName = "csc.exe";
            компилятор.StartInfo.CreateNoWindow = true;
            // /nologo - изучите ключи компилятора
            компилятор.StartInfo.Arguments = "/nologo " + имя_программы + ".cs";
            // Рабочая папка - это папка содержащая данную программу
            компилятор.StartInfo.WorkingDirectory = Directory.GetCurrentDirectory();
            // Оболочка ОС для запуска программ нам не нужна
            компилятор.StartInfo.UseShellExecute = false;
            // Вывод приложения пусть будет направлен в стандартный поток
            компилятор.StartInfo.RedirectStandardOutput = true;
            компилятор.Start();
            //Упорно ждать завершения запущенного процесса
            компилятор.WaitForExit();
            string comperrors=компилятор.StandardOutput.ReadToEnd().ToString();

            if (comperrors == "")
                Process.Start(имя_программы + ".exe");
            else
                textBox1.Text = comperrors;

        }
        public void Компилятор1()
        {
            //Создаем временную переменную окружения процесса.
            //Если используется другая версия .Net, то необходимо скорректировать путь и перекомпилировать программу 

            //Environment.SetEnvironmentVariable("Path", @"C:\Program Files\LINQ Preview\Bin");
            //Ввод имени программы без расширения имени

            richTextBox2.Text = "";
            string тек_кат = Directory.GetCurrentDirectory();
            string врем_имя = "temp.exe";
            string врем_имя1 = "temp.cs";
            try
            {
                File.Delete(тек_кат + "\\" + врем_имя);
                File.Delete(тек_кат + "\\" + врем_имя1);
                StreamWriter sw = new StreamWriter(тек_кат + "\\" + врем_имя1);
                sw.Write(textBox1.Text);
                sw.Flush();
                sw.Close();
            }
            catch(Exception e){
 
                MessageBox.Show(e.Message);
                return;
            }
            //Создаем объект - дочерний процесс 
            Process компилятор = new Process();
            // и задаем атрибуты
            компилятор.StartInfo.FileName = "csc.exe";
            компилятор.StartInfo.CreateNoWindow = true;
            // /nologo - изучите ключи компилятора
            компилятор.StartInfo.Arguments = "/nologo " + врем_имя1;
            // Рабочая папка - это папка содержащая данную программу
            компилятор.StartInfo.WorkingDirectory = тек_кат;
            // Оболочка ОС для запуска программ нам не нужна
            компилятор.StartInfo.UseShellExecute = false;
            // Вывод приложения пусть будет направлен в стандартный поток
            компилятор.StartInfo.RedirectStandardOutput = true;
            компилятор.Start();
            //Упорно ждать завершения запущенного процесса
            компилятор.WaitForExit();
            string comperrors = компилятор.StandardOutput.ReadToEnd().ToString();
            //string comperrors = компилятор.StandardInput.Write();
 
            if (comperrors == "")
                Process.Start("temp" + ".exe");
            else
                richTextBox2.Text = comperrors;

        }
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void textBox1_DoubleClick(object sender, EventArgs e)
        {
            Компилятор();
        }
 
        private void textBox1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
                e.Effect = DragDropEffects.Copy;

        }
 
        private void textBox1_DragDrop(object sender, DragEventArgs e)
        {
            textBox1.Text =(string) e.Data.GetData(DataFormats.FileDrop);
 
        }
 
        private void textBox1_MouseDown(object sender, MouseEventArgs e)
        {
            textBox1.DoDragDrop(textBox1.Text, DragDropEffects.Copy |
            DragDropEffects.Move);
        }
 
        private void textBox1_DragLeave(object sender, EventArgs e)
        {
 
        }
 
        private void textBox1_DragOver(object sender, DragEventArgs e)
        {
 
        }
 
        private void splitContainer1_Panel2_Paint(object sender, PaintEventArgs e)
        {
 
        }
 
        private void textBox1_TextChanged_1(object sender, EventArgs e)
        {
 
        }
 
        private void textBox1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
           
        }
 
        private void шрифтToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Компилятор1();
        }
 
        private void fontDialog1_Apply(object sender, EventArgs e)
        {
 
        }
 
        private void textBox1_DoubleClick_1(object sender, EventArgs e)
        {
           
        }
 
        private void запускToolStripMenuItem_Click(object sender, EventArgs e)
        {
            openFileDialog1.ShowDialog();
            StreamReader sr = new StreamReader(openFileDialog1.OpenFile());
            textBox1.Text = sr.ReadToEnd();
            sr.Close();
        }
 
        private void выходToolStripMenuItem_Click(object sender, EventArgs e)
        {
            фонт.Dispose();
            Application.Exit();
        }
 
        private void шрифтToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            fontDialog1.ShowDialog();
            textBox1.Font = fontDialog1.Font;
            richTextBox2.Font = fontDialog1.Font;
        }
 
        private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
        {
 
        }
 
        private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            
            saveFileDialog1.DefaultExt = "cs";
            saveFileDialog1.ShowDialog();
            StreamWriter sw=new StreamWriter(saveFileDialog1.FileName);
            sw.Write(textBox1.Text);
            sw.Close();
        }
 
        private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
        {
 
        }
 
        private void textBox1_DragDrop_1(object sender, DragEventArgs e)
        {
            string[] files = (string[])e.Data.GetData("FileDrop", false);
            StringBuilder fileList = new StringBuilder();
 
            foreach (string s in files)
            {
                fileList.Append(s + "\n");
            }
 
            OpenF(fileList.ToString());
            // MessageBox.Show(fileList.ToString());
        }
 
        private void textBox1_DragEnter_1(object sender, DragEventArgs e)
        {
 
            if (e.Data.GetDataPresent(DataFormats.FileDrop, false) == true)
            {
                if ((e.KeyState & 8) == 8)
                    e.Effect = DragDropEffects.Copy;
                else if ((e.KeyState & 32) == 32)
                    e.Effect = DragDropEffects.Link;
                else
                    e.Effect = DragDropEffects.Move;
            }
        }
 
        private void textBox1_DragOver_1(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop, false) == true)
            {
                if ((e.KeyState & 8) == 8)
                    e.Effect = DragDropEffects.Copy;
                else if ((e.KeyState & 32) == 32)
                    e.Effect = DragDropEffects.Link;
                else
                    e.Effect = DragDropEffects.Move;
            }
        }
        void OpenF(string fpath)
        {
            StreamReader sr = new StreamReader(fpath.Trim());
            textBox1.Text = sr.ReadToEnd();
            //textBox1.Text = fpath;
            sr.Close();
            Компилятор1();
 
        }
 
        private void textBox1_DragLeave_1(object sender, EventArgs e)
        {
           // Компилятор1();
        }
 
        private void textBox1_DoubleClick_2(object sender, EventArgs e)
        {
            Компилятор1();
        }
 
        private void textBox1_TextChanged_2(object sender, EventArgs e)
        {
 
        }
       
    }
}]

Решение задачи: «Не запускается программа на Windows 7 64x»

textual
Листинг программы
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
 
namespace Компилятор
{
    public partial class Form1 : Form
    {
        Font фонт;
        public Form1()//конструктор срабатывает при загрузке формы
        {
            InitializeComponent();//
 
 
            string p = Environment.GetFolderPath(Environment.SpecialFolder.System);
 
 
 
 
 
            if (p.EndsWith("system32"))
                p = p.Substring(0, p.Length - 8);
            else
               MessageBox.Show("Err!!!");
           // Environment.SetEnvironmentVariable("Path", p + @"Microsoft.NET\Framework\v4.0.20506");
            Environment.SetEnvironmentVariable("Path", p + @"Microsoft.NET\Framework\v2.0.50727");
            //Environment.SetEnvironmentVariable("Path", @"C:\WINDOWS.0\Microsoft.NET\Framework\v2.0.50727");
            фонт= new Font("Arial", 12);
            textBox1.Font = фонт;
            richTextBox2.Font =фонт ;
        }
        public  void Компилятор()
        {
        //Создаем временную переменную окружения процесса.
        //Если используется другая версия .Net, то необходимо скорректировать путь и перекомпилировать программу 
       
            Environment.SetEnvironmentVariable("Path", @"C:\WINDOWS.0\Microsoft.NET\Framework\v2.0.50727");
            //Environment.SetEnvironmentVariable("Path", @"C:\Program Files\LINQ Preview\Bin");
            //IDictionary v=Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Machine);
         //Environment.OSVersion.Platform
            //Ввод имени программы без расширения имени
            
            string имя_программы = textBox1.Text;
            if (имя_программы.ToUpper() == "Q") return;
            //Создаем объект - дочерний процесс 
            Process компилятор = new Process();
            // и задаем атрибуты
            компилятор.StartInfo.FileName = "csc.exe";
            компилятор.StartInfo.CreateNoWindow = true;
            // /nologo - изучите ключи компилятора
            компилятор.StartInfo.Arguments = "/nologo " + имя_программы + ".cs";
            // Рабочая папка - это папка содержащая данную программу
            компилятор.StartInfo.WorkingDirectory = Directory.GetCurrentDirectory();
            // Оболочка ОС для запуска программ нам не нужна
            компилятор.StartInfo.UseShellExecute = false;
            // Вывод приложения пусть будет направлен в стандартный поток
            компилятор.StartInfo.RedirectStandardOutput = true;
            компилятор.Start();
            //Упорно ждать завершения запущенного процесса
            компилятор.WaitForExit();
            string comperrors=компилятор.StandardOutput.ReadToEnd().ToString();
            
 
            if (comperrors == "")
                Process.Start(имя_программы + ".exe");
            else
                textBox1.Text = comperrors;
           
            
        }
        public void Компилятор1()
        {
            //Создаем временную переменную окружения процесса.
            //Если используется другая версия .Net, то необходимо скорректировать путь и перекомпилировать программу 
 
            
            //Environment.SetEnvironmentVariable("Path", @"C:\Program Files\LINQ Preview\Bin");
            //Ввод имени программы без расширения имени
 
 
            richTextBox2.Text = "";
            string тек_кат = Directory.GetCurrentDirectory();
            string врем_имя = "temp.exe";
            string врем_имя1 = "temp.cs";
            try
            {
                File.Delete(тек_кат + "\\" + врем_имя);
                File.Delete(тек_кат + "\\" + врем_имя1);
                StreamWriter sw = new StreamWriter(тек_кат + "\\" + врем_имя1);
                sw.Write(textBox1.Text);
                sw.Flush();
                sw.Close();
            }
            catch(Exception e){
 
                MessageBox.Show(e.Message);
                return;
            }
            //Создаем объект - дочерний процесс 
            Process компилятор = new Process();
            // и задаем атрибуты
            компилятор.StartInfo.FileName = "csc.exe";
            компилятор.StartInfo.CreateNoWindow = true;
            // /nologo - изучите ключи компилятора
            компилятор.StartInfo.Arguments = "/nologo " + врем_имя1;
            // Рабочая папка - это папка содержащая данную программу
            компилятор.StartInfo.WorkingDirectory = тек_кат;
            // Оболочка ОС для запуска программ нам не нужна
            компилятор.StartInfo.UseShellExecute = false;
            // Вывод приложения пусть будет направлен в стандартный поток
            компилятор.StartInfo.RedirectStandardOutput = true;
            компилятор.Start();
            //Упорно ждать завершения запущенного процесса
            компилятор.WaitForExit();
            string comperrors = компилятор.StandardOutput.ReadToEnd().ToString();
            //string comperrors = компилятор.StandardInput.Write();
 
            if (comperrors == "")
                Process.Start("temp" + ".exe");
            else
                richTextBox2.Text = comperrors;
 
 
        }
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void textBox1_DoubleClick(object sender, EventArgs e)
        {
            Компилятор();
        }
 
        private void textBox1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
                e.Effect = DragDropEffects.Copy;
           
 
           
        }
 
        private void textBox1_DragDrop(object sender, DragEventArgs e)
        {
            textBox1.Text =(string) e.Data.GetData(DataFormats.FileDrop);
 
        }
 
        private void textBox1_MouseDown(object sender, MouseEventArgs e)
        {
            textBox1.DoDragDrop(textBox1.Text, DragDropEffects.Copy |
            DragDropEffects.Move);
        }
 
        private void textBox1_DragLeave(object sender, EventArgs e)
        {
 
        }
 
        private void textBox1_DragOver(object sender, DragEventArgs e)
        {
 
        }
 
        private void splitContainer1_Panel2_Paint(object sender, PaintEventArgs e)
        {
 
        }
 
        private void textBox1_TextChanged_1(object sender, EventArgs e)
        {
 
        }
 
        private void textBox1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
           
        }
 
        private void шрифтToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Компилятор1();
        }
 
        private void fontDialog1_Apply(object sender, EventArgs e)
        {
 
        }
 
        private void textBox1_DoubleClick_1(object sender, EventArgs e)
        {
           
        }
 
        private void запускToolStripMenuItem_Click(object sender, EventArgs e)
        {
            openFileDialog1.ShowDialog();
            StreamReader sr = new StreamReader(openFileDialog1.OpenFile());
            textBox1.Text = sr.ReadToEnd();
            sr.Close();
        }
 
        private void выходToolStripMenuItem_Click(object sender, EventArgs e)
        {
            фонт.Dispose();
            Application.Exit();
        }
 
        private void шрифтToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            fontDialog1.ShowDialog();
            textBox1.Font = fontDialog1.Font;
            richTextBox2.Font = fontDialog1.Font;
        }
 
        private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
        {
 
        }
 
        private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            
            saveFileDialog1.DefaultExt = "cs";
            saveFileDialog1.ShowDialog();
            StreamWriter sw=new StreamWriter(saveFileDialog1.FileName);
            sw.Write(textBox1.Text);
            sw.Close();
        }
 
        private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
        {
 
        }
 
        private void textBox1_DragDrop_1(object sender, DragEventArgs e)
        {
            string[] files = (string[])e.Data.GetData("FileDrop", false);
            StringBuilder fileList = new StringBuilder();
 
            foreach (string s in files)
            {
                fileList.Append(s + "\n");
            }
 
            OpenF(fileList.ToString());
            // MessageBox.Show(fileList.ToString());
        }
 
        private void textBox1_DragEnter_1(object sender, DragEventArgs e)
        {
 
            if (e.Data.GetDataPresent(DataFormats.FileDrop, false) == true)
            {
                if ((e.KeyState & 8) == 8)
                    e.Effect = DragDropEffects.Copy;
                else if ((e.KeyState & 32) == 32)
                    e.Effect = DragDropEffects.Link;
                else
                    e.Effect = DragDropEffects.Move;
            }
        }
 
        private void textBox1_DragOver_1(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop, false) == true)
            {
                if ((e.KeyState & 8) == 8)
                    e.Effect = DragDropEffects.Copy;
                else if ((e.KeyState & 32) == 32)
                    e.Effect = DragDropEffects.Link;
                else
                    e.Effect = DragDropEffects.Move;
            }
        }
        void OpenF(string fpath)
        {
            StreamReader sr = new StreamReader(fpath.Trim());
            textBox1.Text = sr.ReadToEnd();
            //textBox1.Text = fpath;
            sr.Close();
            Компилятор1();
 
        }
 
        private void textBox1_DragLeave_1(object sender, EventArgs e)
        {
           // Компилятор1();
        }
 
        private void textBox1_DoubleClick_2(object sender, EventArgs e)
        {
            Компилятор1();
        }
 
        private void textBox1_TextChanged_2(object sender, EventArgs e)
        {
 
        }
       
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5
Похожие ответы