Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Автор: v1rtyaluk
Дата сообщения: 22.04.2010 13:40
Omicron_Persey_8
mrherbrooks
ruslrusl
спасибо за помощь, воспользовался третьим вариантом.

помогите мне решить очередную проблему, она меня уже достала!!!
нужно применить к файлу timedate.cpl патч графических ресурсов (ResPatch)
(но вообще-то таких патчеров одновременно нужно применять не менее десятка)
так вот запустить патчер нужно с ключами командной строки:

Patch_timedate.exe -force -guiless -auto -quiet -nobackup

и все это осуществить на C#
пробовал

foreach (string resp in Directory.GetFiles("C:\\iStyle\\Res2Patch\\system32", "*.exe"))
{
string FileName = resp;
string Arguments = @"-force -guiless -auto -quiet -nobackup";
ProcessStartInfo StartInfo = new ProcessStartInfo(FileName, Arguments);
StartInfo.CreateNoWindow = true;
StartInfo.UseShellExecute = false;
rp.StartInfo = StartInfo;
rp.Start();
rp.WaitForExit();
}
и

foreach (string patch in Directory.GetFiles("C:\\iStyle\\Res2Patch\\system32", "*.cmd"))
{
string FileName = patch;
string a1 = @" -force";
string a2 = @" -guiless";
string a3 = @" -auto";
string a4 = @" -quiet";
string a5 = @" -nobackup";
string Arguments = a1 + a2 + a3 + a4 + a5;
System.Diagnostics.Process.Start(FileName, Arguments);
Console.WriteLine(patch);
}
и это тоже

System.Diagnostics.Process.Start("C:\\iStyle\\Res2Patch\\system32\\Patch_timedate.exe", "-force -guiless -auto -quiet -nobackup");

и нихера не работает!!!!!
я уже не знаю, что делать.

если кто знает, умеет помогите, пожалуйста!!!
по ссылке ниже в архиве 2 файла (patch_timedate.exe и timedate.cpl) для наводки.
депозитфайлс.ком/ru/files/it7a44ji3
Помогите, пожалуйста, буду очень благодарен
Автор: Lihonosov
Дата сообщения: 22.04.2010 19:06
v1rtyaluk

Код:
...
ProcessStartInfo startInfo = new ProcessStartInfo("ping.exe");
startInfo.Arguments = "www.ya.ru -t";
Process.Start(startInfo);
...
Автор: v1rtyaluk
Дата сообщения: 22.04.2010 20:58
Lihonosov

вот код

Код:
foreach (string resp in Directory.GetFiles("C:\\iStyle\\Res2Patch\\system32", "*.exe"))
{
string FileName = resp;
string Arguments = @"-force -guiless -auto -quiet -nobackup";
ProcessStartInfo StartInfo = new ProcessStartInfo(FileName, Arguments);
StartInfo.CreateNoWindow = true;
StartInfo.UseShellExecute = false;
rp.StartInfo = StartInfo;
tw.WriteLine("::Обработка патчера " + resp);
rp.Start();
rp.WaitForExit();
}
Автор: Lihonosov
Дата сообщения: 23.04.2010 01:08
v1rtyaluk

Цитата:
скинь, пожалуйста, архив с проектом тот, что ты кажешь смог пропатчить библиотеку

нечего скидывать, выше я написал весь код который использовал

Цитата:
вот код

Код:
foreach (string resp in Directory.GetFiles("C:\\iStyle\\Res2Patch\\system32", "*.exe"))
{
string FileName = resp;
string Arguments = @"-force -guiless -auto -quiet -nobackup";
ProcessStartInfo StartInfo = new ProcessStartInfo(FileName, Arguments);
StartInfo.CreateNoWindow = true;
StartInfo.UseShellExecute = false;
rp.StartInfo = StartInfo;
tw.WriteLine("::Обработка патчера " + resp);
rp.Start();
rp.WaitForExit();
}



и не работает ((((;

"каша" какая-то в этом коде

по идее у тебя должно быть что-то вроде такого:


Код: Process rp = new Process();

foreach (string resp in Directory.GetFiles("C:\\iStyle\\Res2Patch\\system32", "*.exe"))
{
rp.StartInfo.FileName = resp;
rp.StartInfo.Arguments = "-force -guiless -auto -quiet -nobackup";
rp.StartInfo.CreateNoWindow = true;
rp.StartInfo.UseShellExecute = false;
rp.StartInfo.RedirectStandardOutput = true;
rp.Start();
Console.WriteLine(rp.StandardOutput.ReadToEnd());
rp.WaitForExit();
}
Автор: v1rtyaluk
Дата сообщения: 23.04.2010 16:15
Lihonosov
не работает ни мой, ни ваш.
походу в вашем коде тоже не "суп"

http://bit.ly/9ySzHe
по ссылке файлы проекта, посмотрите сами.

Добавлено:
Lihonosov
спасибо за помощь, уже сам разобрался.

вот мой вариант кода

Код:
foreach (string resp in Directory.GetFiles("C:\\iStyle\\Res2Patch\\system32", "*.exe"))
{
rp.StartInfo.WorkingDirectory = @"C:\\iStyle\\Res2Patch\\system32";
rp.StartInfo.FileName = resp;
rp.StartInfo.Arguments = " -force -guiless -auto -quiet -nobackup";
rp.Start();
}
Автор: Lihonosov
Дата сообщения: 23.04.2010 20:48
v1rtyaluk
все дело было в:

Цитата:
rp.StartInfo.WorkingDirectory = @"C:\\iStyle\\Res2Patch\\system32";

Автор: SerBUser
Дата сообщения: 24.04.2010 08:45
Радость моя была преждевременна. Напомню задачу - в SharePoint выгрузить все вложения списка на локальный диск.
Вот код:

Код:
SPWeb site = SPContext.Current.Web;
SPUser currentUser = SPContext.Current.Web.CurrentUser;
string userName = currentUser.Name.ToUpper();
string userLogin = currentUser.LoginName.ToUpper();
string nameDir = SPContext.Current.List.Title.ToString();
SPList oList = site.Lists[nameDir];
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo("c:\\" + nameDir);
if (!di.Exists)
di.Create();
int k = oList.Items.Count;
for (int i = 0; i < k; i++)
{
SPListItem item = oList.Items[i];
SPAttachmentCollection oattaches = item.Attachments;
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(nameDir + item.Title.ToString());
if (!dir.Exists)
dir.Create();
lblStatus.Text = lblStatus.Text + "6. ";
for (int l = 0; l < oattaches.Count; l++)
{
string fileName = oattaches[l];
string fileURL = oattaches.UrlPrefix + fileName;
SPFile filea = site.GetFile(fileURL);
DateTime crdatetime = filea.TimeCreated;
string fileNames = nameDir + item.Title.ToString() + "\\" + fileName + " ";
System.IO.FileStream fs = new System.IO.FileStream(fileNames, System.IO.FileMode.Create, System.IO.FileAccess.Write, System.IO.FileShare.None);
byte[] binFile = filea.OpenBinary();
fs.Write(binFile, 0, binFile.Length);
fs.Close();
lblStatus.Text = "Выгрузка " + fileURL.ToString();
System.IO.File.SetCreationTime(fileNames, crdatetime);
System.IO.File.SetLastAccessTime(fileNames, crdatetime);
System.IO.File.SetLastWriteTime(fileNames, crdatetime);
}
}
Автор: v1rtyaluk
Дата сообщения: 24.04.2010 22:42
в консольному приложении производятся операции с файлами в окно консоли ничего не выводится.при запуске приложения окно консоли появляется где-то на секунду.Вопрос:
можно-ли запретить отображение консольного окна в моем приложении?

Добавлено:
и еще
как сделать на форме radioButton неактивным?
Автор: Lihonosov
Дата сообщения: 25.04.2010 00:55
v1rtyaluk

Цитата:
как сделать на форме radioButton неактивным?

radioButton.Enabled = false;
Автор: v1rtyaluk
Дата сообщения: 25.04.2010 10:46
Lihonosov
спасибо

вопрос:
допустим, нахожу я нужные мне файлы методом

Код:
foreach (string file in Directory.GetFiles("C:\\Windows\\System32", "*.cpl"))
{
}
Автор: Lihonosov
Дата сообщения: 25.04.2010 11:18
v1rtyaluk
File.Copy

Код:
string sourceDir = @"C:\Windows\System32";
string backupDir = @"c:\files";

try
{
if (!Directory.Exists(backupDir))
{
Directory.CreateDirectory(backupDir);
}

string[] cplList = Directory.GetFiles(sourceDir, "*.cpl");

// Copy cpl files.
foreach (string f in cplList)
{

// Remove path from the file name.
string fName = f.Substring(sourceDir.Length + 1);

try
{
// Will not overwrite if the destination file already exists.
File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName));
}

// Catch exception if the file was already copied.
catch (IOException copyError)
{
Console.WriteLine(copyError.Message);
}
}
}

catch (DirectoryNotFoundException dirNotFound)
{
Console.WriteLine(dirNotFound.Message);
}
Автор: mrherbrooks
Дата сообщения: 26.04.2010 09:35
Lihonosov
в данном случае можно избежать использование этой утилиты путем применения Функций Hosting Global Static
Автор: moJoKras
Дата сообщения: 26.04.2010 11:34
Подскажите, пожалуйста, как можно реализовать красивое переключение между формами c помощью C# и WinForms?
Нужно примерно такое же переключение между режимами работы программы как в калькуляторе в Семерке: http://s39.radikal.ru/i084/1004/7c/1138cb1b536f.png
Вариант с открытием новой формы и закрытием старой не предлагать, слишком заметно.
Автор: BlackVetal
Дата сообщения: 27.04.2010 06:24
moJoKras

Цитата:
красивое переключение между формами c помощью C# и WinForms?

Как вариант - использовать слои (layout).
Автор: moJoKras
Дата сообщения: 27.04.2010 13:04
BlackVetal
Спасибо, то что нужно! Покидал все компоненты на две панели и при изменении режима просто скрываю/показываю нужные панели.
Автор: AutoIT
Дата сообщения: 01.05.2010 07:44
Всем ку!
Пишу на C#

Есть вот такенная функция:


Код: public static string[] ReadNames(string ININame)
{
if (Loaded == false)
Load(ININame);
var Temp = ReadyString;
string[] ReturnedArray = new string[Convert.ToInt32(Temp[0, 0, 0]) + 1];
ReturnedArray[0] = Temp[0, 0, 0];
for (int i = 1; i <= Convert.ToInt32(Temp[0, 0, 0]); i++)
{
ReturnedArray[i] = Temp[i, 1, 0];
}
return ReturnedArray;
}
Автор: Omicron_Persey_8
Дата сообщения: 01.05.2010 09:50
AutoIT
Если весь код в одном потоке, то тогда ReadNames "ждет" завершения выполнения Load.
Что за ошибку выкидывает?
Выложи заодно и код Load'а, чтобы было о чем говорить.

Добавлено:
Кстати, ReadyString что такое?
Автор: AutoIT
Дата сообщения: 01.05.2010 11:09
Извините что код "непричесан" красоту еще не наводил...

[more=Код]static bool Loaded = false;
static string FileName;
static string[] StringsInINI;
static string[,,] ReadyString;

public static string[] ReadNames(string ININame)
{
if (Loaded == false)
Load(ININame);
var Temp = ReadyString;
string[] ReturnedArray = new string[Convert.ToInt32(Temp[0, 0, 0]) + 1];
ReturnedArray[0] = Temp[0, 0, 0];
for (int i = 1; i <= Convert.ToInt32(Temp[0, 0, 0]); i++)
{
ReturnedArray[i] = Temp[i, 1, 0];
}
return ReturnedArray;
}

public static bool Load(string ININame)
{
try
{
StringsInINI = ReadINIFile(ININame);
ReadyString = ProgrammRead(ININame);
Loaded = true;
FileName = ININame;
return true;
}
catch
{
return false;
}
}

#region Чтение файла в память
private static string[] ReadINIFile(string ININame)
{
string Temp;
int Count = 0;
string[] STRM = new string[1000000];
Encoding Enc = Encoding.GetEncoding(1251);
StreamReader SR = new StreamReader(ININame, Enc);
while (SR.Peek() != -1)
{
Temp = SR.ReadLine();
if (Temp != "")
{
Count += 1;
STRM[Count] = Temp;
}
}
SR.Close();
STRM[0] = Count.ToString();
string[] ReturnedArray = new string[Count + 1];
ReturnedArray[0] = Count.ToString();
for (int i = 1; i <= Count; i++)
{
STRM[i] = STRM[i].Trim();
ReturnedArray[i] = STRM[i];
}
return ReturnedArray;
}
private static string[,,] ProgrammRead(string ININame)
{
int CountOfStrings = Convert.ToInt32(StringsInINI[0]);
int Count3 = 0, Count4 = 0;
string[, ,] INIMembers = new string[CountOfStrings, 2, CountOfStrings];
string[] Temp = new string[10];
char[] CharsToTrim = { '[', ']' };
char[] CharsToSplit = { '=', ';' };
for (int i = 1; i <= CountOfStrings; i++)
{
if ((StringsInINI[i].Substring(0, 1) == "[") & (StringsInINI[i].Substring(StringsInINI[i].Length - 1, 1) == "]"))
{
Count3 += 1;
StringsInINI[i] = StringsInINI[i].TrimEnd(CharsToTrim);
StringsInINI[i] = StringsInINI[i].TrimStart(CharsToTrim);
INIMembers[Count3, 1, 0] = StringsInINI[i];
int Count1 = i + 1, Count2 = 0;
try
{
while ((StringsInINI[Count1].Substring(0, 1) != "[") & (StringsInINI[Count1].Substring(StringsInINI[Count1].Length - 1, 1) != "]"))
{
if ((StringsInINI[Count1] != "") & (StringsInINI[Count1].Substring(0, 1) != ";"))
{
Temp = StringsInINI[Count1].Split(CharsToSplit);
INIMembers[Count3, 0, Count2 + 1] = Temp[0];
INIMembers[Count3, 1, Count2 + 1] = Temp[1];
Count2 += 1;
Count1 += 1;
}
}
}
catch { };
if (Count4 < Count2) Count4 = Count2;
INIMembers[Count3, 0, 0] = Count2.ToString();
}
}
string[, ,] ReturnedArray = new string[Count3 + 1, 2, Count4 + 1];
ReturnedArray[0, 0, 0] = Count3.ToString();
ReturnedArray[0, 1, 0] = Path.GetFileName(ININame);
for (int i = 1; i <= Count3; i++)
{
ReturnedArray[i, 0, 0] = INIMembers[i, 0, 0];
ReturnedArray[i, 1, 0] = INIMembers[i, 1, 0];
for (int j = 1; j <= Convert.ToInt32(INIMembers[i, 0, 0]); j++)
{
ReturnedArray[i, 0, j] = INIMembers[i, 0, j];
ReturnedArray[i, 1, j] = INIMembers[i, 1, j];
}
}
return ReturnedArray;
}
#endregion[/more]

Да, еще осталось добавить что это длл, и вызывается из другой программы.
Всю выкладывать не стал т.к. код > 1000 строк

Ошибка следующая:
Если предварительно из программы не вызвать INI.Load(Path):
В строке "string[] ReturnedArray = new string[Convert.ToInt32(Temp[0, 0, 0]) + 1];" функции "ReadNames"
Ошибка: "В экземпляре объекта не задана ссылка на объект."

Добавлено:
Простите друзья, длл рабочая, все номально.
Проблема была в гуи через которую тестил код.
Автор: Mike13x13
Дата сообщения: 06.05.2010 18:20
Хочу написать прогу для манипулирования сетевыми подключениями (C#). Столкнулся с тем, что в System.Net есть средства только для получения инфы об интерфейсах, но ничего не нашел для управления. Может, кто знает, есть ли такие средства и где находятся? Или только WinAPI?
Автор: Yocs
Дата сообщения: 06.05.2010 19:50
Подскажите пожалуйста в какую сторону смотреть и искать решение.

Есть разработка на WinForms:

1. Пользовательские приложения, отображают запрошенные данные.
2. Приложение-сервер (поднимает соединения, пересылает пакеты).
3. Удаленные приложения, накапливают телеметрию и отвечают на запросы сервера.
Все это взаимодействует через TCP сокеты и собственный протокол.

Руководство желает видеть все тоже самое, но не через приложение, а в окне браузера.

Правильно ли я понимаю, что надо:
вместо Приложения-сервера, написать web сервис для IIS?

Актуально ли смотреть в сторону net remoting, если и так все справно работает через сокеты, отлажено и оптимизировано по использованию трафика?
Автор: Laneeeet
Дата сообщения: 06.05.2010 20:32
подскажите
Автор: V0lt
Дата сообщения: 06.05.2010 20:56
Laneeeet
тебе куда-то туда -> http://forum.ru-board.com/forum.cgi?forum=31
Автор: BlackVetal
Дата сообщения: 07.05.2010 05:39
Mike13x13
не понятно чем ты хочеш управлять ... опиши подробнее поблему. В хэлпе весь Namespace System.Net просмотрел?

Yocs
Как вариант на расмотрение ...
Я не знаю эту технологию (в смысле как работать), но есть возможность написать приложение - которое работает как обычное оконное приложение и может открываться в браузере. Применяется Silverlight, возможно частично WPF ...
Автор: mrherbrooks
Дата сообщения: 07.05.2010 08:32
Yocs
грубо говоря надо отойти от быдлогуя в сторону вебинтерфейса.
Определенно надо ориентироваться на asp.net


Цитата:
вместо Приложения-сервера, написать web сервис для IIS?

точно!


Цитата:
Актуально ли смотреть в сторону net remoting, если и так все справно работает через сокеты, отлажено и оптимизировано по использованию трафика?

Генеральная линия партии поддерживает сейчас WCF. Предлагаю копать в эту сторону.
Автор: Mike13x13
Дата сообщения: 07.05.2010 10:17
BlackVetal

Цитата:
Mike13x13
не понятно чем ты хочеш управлять ... опиши подробнее поблему.....

Сама проблема такая - мне по расписанию нужно проверять связь между узлами А и Б. Если связи нету - посмотреть состояние ответственного за связь интерфейса, если он Down, попытаться его поднять. Кроме поднятия, все остальное ясно. Весь System.Net, чесно говоря, просмотреть не успел, были другие срочные задачи, посему запостился, вдруг кто-то делал такое и в курсе где рыть. К тому же есть подозрение, что рыть нужно скорее в System.Management...
Yocs
net remoting действительно генеральная линия партии , но, на мой взгляд, гораздо быстрее и проще будет сделать под IIS, причем не веб-сервис а типа обычного сайта на асп.нет, который будет взаимодействовать с существующим приложением-сервером (отправлять запросы, получать ответы и выдавать их в HTML). Если есть код клиентского гуи, вполне можно использовать значительную его часть с некоторыми доработками/переделками. Образно говоря, прикрутить к существующему серверу вместо гуи-интерфейса веб-интерфейс. При этом, как обычно при переходе на тонкий клиент, получаем еще один промежуточный уровень обработки.
Автор: ruslrusl
Дата сообщения: 07.05.2010 17:05
на С++ дозволено писать так:
AUX_RGBImageRec *pImage = NULL;

как можно тоже самое написать на С#?
Автор: Mike13x13
Дата сообщения: 07.05.2010 19:09
ruslrusl
AUX_RGBImageRec pImage = null;
Автор: ruslrusl
Дата сообщения: 07.05.2010 19:26
Mike13x13
Выдает ошибку:

Ошибка    1    Не удалось найти имя типа или пространства имен "AUX_RGBImageRec" (пропущена директива using или ссылка на сборку?)    C:\Documents and Settings\Admin\Мои документы\Visual Studio 2008\Projects\Camera\Camera\Form1.cs    303    12    Camera
Автор: Yocs
Дата сообщения: 07.05.2010 22:49
Спасибо откликнувшимся.
Пойду долго читать, поскольку в настоящий момент не понимаю разницу между веб сайтом и веб сервисом, а студия еще и WCF service проект предлагает...
Автор: Omicron_Persey_8
Дата сообщения: 08.05.2010 20:48
ruslrusl

Цитата:
Ошибка 1 Не удалось найти имя типа или пространства имен "AUX_RGBImageRec" (пропущена директива using или ссылка на сборку?)

Ну так проверяй, чтобы в разделе Reference твоего проекта была ссылка на сборку, содержащую AUX_RGBImageRec и смотри, чтобы путь к типу был полностью указан:

Код: System.Windows.Form.Button okButton;

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102

Предыдущая тема: Как удалить/добавить/отключить/включить устройство?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.