Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> dll api regedit, вапросы по выше указанному 
:(
    Опции темы
profan
Дата 31.5.2006, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 29.5.2006

Репутация: нет
Всего: нет



Народ а кто нить поделитесь сылкой та тему "работа\создание dll", "работа с реестром", "работа с апи функцю" в сишарп.
А то я что то не могу ничего найти по это теме 
PM MAIL   Вверх
Wanderer2019
Дата 31.5.2006, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 937
Регистрация: 3.12.2004
Где: Санкт-Петербург/П рага

Репутация: 7
Всего: 17



на счет 
Цитата(profan @  31.5.2006,  11:13 Найти цитируемый пост)
"работа\создание 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();
            }
        }
    }

Возможно не совсем все логично. т.к. писалось под конкретные задачи. но так в качестве примера....
 
PM ICQ MSN   Вверх
profan
Дата 31.5.2006, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 29.5.2006

Репутация: нет
Всего: нет



ну мнеб какуюнито книгу чтоб можно было врубиться в dll:нах оно надо, как с ними обращаться.Так же чтонибудь по работе с рестром.Ну и уж для полного кайфа вин апи функц.=) 
PM MAIL   Вверх
VisualProgrammerNET
Дата 31.5.2006, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 4
Всего: 6



Цитата(profan @  31.5.2006,  14:31 Найти цитируемый пост)
чтоб можно было врубиться в dll


 smile 

Вообще достаточно почитать банального Троелсена. Или издания Microsoft Press. 


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
mr.DUDA
Дата 31.5.2006, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232




 ! 
mr.DUDA
Цитата(profan @  31.5.2006,  13:31 Найти цитируемый пост)
нах оно надо

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


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


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0952 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.