dll api regedit

 
0
 
.NET
ava
profan | 31.05.2006, 12:13
Народ а кто нить поделитесь сылкой та тему "работа\создание dll", "работа с реестром", "работа с апи функцю" в сишарп.
А то я что то не могу ничего найти по это теме
Ответы (4)
ava
Wanderer2019 | 31.05.2006, 12:58 #
на счет
Цитата (profan @ 31.5.2006, 11:13 findReferencedText)
"работа\создание dll"
вопроса не понял...
по работе с реестром в свое время писал пару методов:

/// <summary>
/// Получить значение ключа по адресу dir и имени name
/// </summary>
/// <param name="name">имя ключа</param>
/// <param name="dir">путь к ключу name</param>
/// <returns></returns>
static public object getKey(string name,string dir){
RegistryKey regKey=null;
Object result=null;
try
{
regKey=Registry.LocalMachine.OpenSubKey(dir,true);
result=regKey.GetValue(name);
}
catch(Exception e)
{
if(regKey==null) result=null;
else MessageBox.Show("Application "+e.Source+" got an error"+e.StackTrace+". The error is: "+e.Message);
}
finally
{
if(regKey!=null)
regKey.Close();
}
return result;
}

/// <summary>
/// Установть ключам keyName[] значения keyValue[] и разместить в дериктории dir реестра
/// </summary>
/// <param name="keyName">массив имен ключей</param>
/// <param name="keyValue">массив значений для ключей keyName[]</param>
/// <param name="dir">Адрес реестра для размещения ключей</param>
static public void setKey(string []keyName,object []keyValue,string dir,StreamWriter log){
log.WriteLine("Registry editing has been started.");
RegistryKey regKey=null;
String mess=null;
string way=null;
try
{
if(keyName.Length!=keyValue.Length)
{
MessageBox.Show("Warning! Different lenght`s of names and values arrays","WARNING!",MessageBoxButtons.OK);
log.WriteLine("WARNING!Different lenght`s of names and values arrays");
return;
}
regKey=Registry.LocalMachine.OpenSubKey(dir,true);
if(regKey==null)
mess="Yes";
if(mess=="Yes"||mess==null)
{
string delimStr = "\\";
char [] delimiter=delimStr.ToCharArray();
string[] split=dir.Split(delimiter);
regKey=Registry.LocalMachine;
for(int i=0;i<split.Length;i++)
{
try
{
way+=split[i]+"\\";
string[] subKeys=regKey.GetSubKeyNames();
bool found=false;
for(int j=0;j<subKeys.Length;j++)
{
if(subKeys[j]==split[i])
{
found=true;
break;
}
}
if(found==false)
{
regKey.CreateSubKey(split[i]);
regKey=Registry.LocalMachine.OpenSubKey(way,true);
}
else
{
regKey=Registry.LocalMachine.OpenSubKey(way,true);
}
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
}
regKey=Registry.LocalMachine.OpenSubKey(dir,true);
for(int i=0;i<keyName.Length;i++)
{
log.WriteLine("Working with derictory: "+dir.ToString());
log.WriteLine("Writeing key:'"+keyName[i].ToString()+"'. Writeing values:'"+keyValue[i].ToString()+"'.");
regKey.SetValue(keyName[i], keyValue[i]);
log.WriteLine("Wrtited.");
}
}
}
catch(Exception e)
{
MessageBox.Show("Application "+e.Source+" got an error"+e.StackTrace+". The error is: "+e.Message);
log.WriteLine("Registry editing aborted with ecxaption massege:"+e.Message.ToString());
}
finally
{
if(regKey!=null)
regKey.Close();
}
}
}

Возможно не совсем все логично. т.к. писалось под конкретные задачи. но так в качестве примера....
ava
profan | 31.05.2006, 14:31 #
ну мнеб какуюнито книгу чтоб можно было врубиться в dll:нах оно надо, как с ними обращаться.Так же чтонибудь по работе с рестром.Ну и уж для полного кайфа вин апи функц.=)
ava
VisualProgrammerNET | 31.05.2006, 16:45 #
Цитата (profan @ 31.5.2006, 14:31 findReferencedText)
чтоб можно было врубиться в dll


:hmmm

Вообще достаточно почитать банального Троелсена. Или издания Microsoft Press.
ava
mr.DUDA | 31.05.2006, 17:42 #

 ! 
mr.DUDA
Цитата (profan @ 31.5.2006, 13:31 \"findReferencedText\")
нах оно надо

выбираем выражения


А надо оно для того, чтобы можно было юзать старые (WinAPI-шные, MFC-шные, COM-овские) длл-ки, дёргать функции из kernel32, user32 и пр.
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить