Нет. Он выдает, что в текстбоксе пусто, хотя там есть текст... Не знаешь может как то можно по другому сохранять значения формы, для последующего их востановления?
Подскажите, как написать код, чтобы считывались переменные из txt файла. Конкретно нужно, чтобы он нашел строчки с текстом: NX = NY = Scale X = Scale Y = Scale Data = И записал их значения в соответствующие переменные (с такими же названиями). А после строчки "Start of Data : " нужно чтобы считалась матрица с размерами NX на NY
Ice_VeNOm, вот мой код который работает: Code: using System; using System.Windows.Forms; using System.Xml.Serialization; using System.Xml; namespace WindowsFormsApplication1 { public partial class Form1 : Form { string sd; public Form1() { InitializeComponent(); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { sd = textBox1.Text.ToString(); try { //Сериализуем полученное XmlWriter writer = new XmlTextWriter("serializeExample.xml", System.Text.Encoding.UTF8); XmlSerializer serializer = new XmlSerializer(typeof(string)); serializer.Serialize(writer, sd); writer.Close(); MessageBox.Show("Объект успешно сериализован в файл c:\\serializeExample.xml", "Операция выполнена", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception exc) { MessageBox.Show(exc.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void Form1_Load(object sender, EventArgs e) { this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing); } } } не забудь создать ивент this.Load += new System.EventHandler(this.Form1_Load); у мня он находится в дизайнере в рамках InitializeComponent()
Что есть то есть. Программа, с которой я имею дело экспортирует в txt. Если только можно как-то вручную переделать его в xml, то тогда напишите пожалуйста алгоритм поиска в xml файле
тогда парси .тхт. самое простое считывать строки и сравнивать посимвольно. ещё можно использовать регулярки.
как на C# прописать ключ в реестр на автозагрузку? PHP: RegistryKey myKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); myKey.SetValue("MyProgram", "test"); Code: An unhandled exception of type 'System.Security.SecurityException' occurred in mscorlib.dll Additional information: Запрошенный доступ к реестру запрещен. Прав не хватает Как можно, по другому записать?
Запускаешь новый процесс от имени администратора. Вылезет стандартное окошко подтверждения действия. Так мне рекомендовали поступать на форуме MSDN. Кстати, там очень много отличий работы с реестром от старых методов, существовавших в XP и Win32 API. Нынче в Vista/7 и .NET ввели всякие виртуализации деревьев реестра и тому подобные вещи. Не работал с ними уже больше года, поэтому конкретно описать всё не могу. Но в MSDN всё есть.
Ну если нажать правой кнопкой мыши на exe -> Запустить от имени администратора, то тогда всё работает как надо. А вот можно ли как нибудь обойтись без этого? Или как нибудь программно запустить эту программу от имени администратора?
Без этого не обойтись. Чтобы сделать это программно - нужно написать приложение, которое будет писать в реестр ключ. И из Вашего приложения нужно запускать это самое приложение от имени администратора. Это и есть "революционно новые" средства защиты последних ОС windows.
Ясно. А может можно как нибудь сделать, чтобы сразу при двойном клике по программе, спрашивало разрешение при в несении в комп. изменения ? А то когда пытаюсь запустить программу, она сразу выдаёт ошибку, и прекращает свою работу.
http://expert-coders.ru/question.aspx?qid2=231 нашел такую статью. Там написано как создать файл манифеста. Вот куда его потом сохранять? и с каким расширением? и еще вот Только там Windows.Forms и я не могу понять, как просто из Console Application запустить тот же notepad. Нашел Программу , которая генерирует манифест Вроде теперь работает всё как я и хотел Остался последний вопрос. Как при компиляции C# приложения сразу же генерировать такой манифест? Code: 1: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 2: <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 3: <assemblyIdentity version="1.0.0.0" 4: processorArchitecture="X86" 5: name="YourApplicationName" 6: type="win32"/> 7: <description>Description of your application</description> 8: <!-- Identify the application security requirements. --> 9: <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> 10: <security> 11: <requestedPrivileges> 12: <requestedExecutionLevel 13: level="requireAdministrator" 14: uiAccess="false"/> 15: </requestedPrivileges> 16: </security> 17: </trustInfo> 18: </assembly> Нашел решение ТУТ
Supported Operating Systems: Windows 7; Windows Server 2003 Service Pack 2; Windows Server 2008; Windows Server 2008 R2; Windows Vista Service Pack 1; Windows XP Service Pack 3 Windows XP SP3 Windows Server 2003 SP2 Windows Vista SP1 or later Windows Server 2008 (not supported on Server Core Role) Windows 7 Windows Server 2008 R2 (not supported on Server Core Role) Supported Architectures: x86 x64 ia64 (some features are not supported on ia64 for example, WPF) Hardware Requirements: Recommended Minimum: Pentium 1 GHz or higher with 512 MB RAM or more Minimum disk space: x86 – 850 MB x64 – 2 GB Prerequisites: Windows Installer 3.1 or later Internet Explorer 5.01 or later
http://msdn.microsoft.com/en-us/library/8z6watww.aspx т.е. нет, начиная с XP Home и выше. -------------------- опоздал =[