нравится
Личная панель  
Наши услуги  
 
Хочешь
- сайт без рекламы?
- прямые ссылки?
- общение и конкурсы?
Хочешь
- качать без проблем с летитбит?
 
Категории программ  
Софт хиты  
Наш опрос  
 
Чего вам хотелось бы видеть на сайте?

Софт для iOS
Софт для Android
Софт для Windows
Игры для iOS
Игры для Android
Игры для Windows
Новости IT
Фильмы
Музыку

 


Ответить
 Хороший менеджер типов фалов - искать в нете или писать самому?
#1 thexhs | 15 декабря 2008 00:02

Активный дример
  • 68

Репутация: 30
Группа: Посетители
Сообщений: 810
C нами с: 11.11.2008
Очки: 2006
Нужна нормальная программа для управления типами файлов - значек назначить, контекстное меню поправить, список прог для открытия назначить...
Штаные средства Windows неудобны и медленны (и при том реализация их в 95 Виндовсе намного удобней того что сейчас в XP творится), часто аналогичную функцию можно видеть прикрученой к различным твикерам, но там она слишком аскетична и ограничена...

Некоторое время ковырялся в реестре, пытаясь разобратся как Windows это делает, в принципе теперь познаний хватает для написания аналогичной программы, вот только велосипед изобретать что то не хочется...

Кто знает хорошую программу для этого дела? Ибо часто после каждой установки программ приходится наводить порядок в типах файлов, но делать это через Свойства папки/Типы файлов терпения нехватает - тормозит слишком при чтении из реестра... Работать в REGEDIT тоже не слишком удобно...
  Перейти в начало страницы  
#61 InquisiTOR | 22 января 2009 18:50

Только зашел
  • 0

Репутация: --
Группа: Гости
Сообщений: 0
C нами с: --
Очки:
thexhs, О! Я понял как... Ща только код дельфи наваяю...
  Перейти в начало страницы  
#62 InquisiTOR | 22 января 2009 19:16

Только зашел
  • 0

Репутация: --
Группа: Гости
Сообщений: 0
C нами с: --
Очки:
Вот как-то так...
procedure TForm1.Button1Click(Sender: TObject);
var
Handle1 : HKEY;
BufferPC1 : PAnsiChar;
BufferR1: array[0..1000] of char;
Size : Integer;
Str : PAnsiChar;
begi
nBufferPC1 := BufferR1;
Size := sizeof(BufferR1);
Str := 'SOFTWAREMicrosoftWindows NTCurrentVersion';
if (RegOpenKey(HKEY_LOCAL_MACHINE,nil,Handle1)=ERROR_SUCCESS) the
nbegi
nif (RegQueryValueEx(Handle1, 'RegisteredOwner', nil, nil, BufferPC1, Size)=ERROR_SUCCESS) the
nbegi
nEdit1.Text := StrPas(BufferPC1);
end;
end;
RegCloseKey(Handle1);
end;
------------
Если не получится, попробуй вместо "SOFTWAREMicrosoftWindows NTCurrentVersion" - написать "SOFTWAREMicrosoftWindows NTCurrentVersionRegisteredOwner" (разумеется со слешам))
  Перейти в начало страницы  
#63 thexhs | 22 января 2009 19:29

Активный дример
  • 68

Репутация: 30
Группа: Посетители
Сообщений: 810
C нами с: 11.11.2008
Очки: 2006
InquisiTOR,

[Error] Unit1.pas(64): Incompatible types: 'Char' and 'Byte'

на строке RegQueryValueEx... я с вариантом Ex и не справился был раньше...
  Перейти в начало страницы  
#64 InquisiTOR | 22 января 2009 19:48

Только зашел
  • 0

Репутация: --
Группа: Гости
Сообщений: 0
C нами с: --
Очки:
Я в дельфи не силен, но что мешает получить массив байтов значения ключа, а потом конвертировать его в массив символов?
  Перейти в начало страницы  
#65 thexhs | 22 января 2009 19:51

Активный дример
  • 68

Репутация: 30
Группа: Посетители
Сообщений: 810
C нами с: 11.11.2008
Очки: 2006
InquisiTOR, там еще с парочку ошибок, компиляция (ошибки исправляли фрагментами типа Pbyte(BufferPC1))и рантайм еррор...
  Перейти в начало страницы  
#66 InquisiTOR | 22 января 2009 19:56

Только зашел
  • 0

Репутация: --
Группа: Гости
Сообщений: 0
C нами с: --
Очки:
thexhs, =)) нуу извини...
  Перейти в начало страницы  
#67 thexhs | 22 января 2009 20:15

Активный дример
  • 68

Репутация: 30
Группа: Посетители
Сообщений: 810
C нами с: 11.11.2008
Очки: 2006
Решение найдено (гугл как всегда на высоте):

Имя на которое зарегистрированна винда успешно считал этот код

procedure TForm1.Button2Click(Sender: TObject);
var
Handle1:hkey;
PType,Size:DWORD;
BufferPC1:array[0..100] of char;
begin
PType:=REG_SZ;
RegOpenKey(HKEY_LOCAL_MACHINE,'SOFTWAREMicrosoftWindows NTCurrentVersion',Handle1);
if RegQueryValueEx(Handle1,'RegisteredOwner',nil,@PType,@BufferPC1,@Size)=ERROR_SUCCESS then Edit1.Text := StrPas(BufferPC1);
end;
  Перейти в начало страницы  
#68 AlexSlipknot | 22 января 2009 22:46

Активный дример
  • 68

Репутация: 1809
Группа: Посетители
Сообщений: 902
C нами с: 29.10.2008
Очки: 7549
А теперь хит сезона: RegQueryValueEx НЕ ЧИТАЕТ реестр под х64!!!!!!!!!!

--------------------
Slipknot Corp.

  Перейти в начало страницы  
#69 thexhs | 23 января 2009 00:10

Активный дример
  • 68

Репутация: 30
Группа: Посетители
Сообщений: 810
C нами с: 11.11.2008
Очки: 2006
AlexSlipknot19, ищи RegQueryValueEx64))) а собсно черт его знает, эти АМД64 системы... Вот мне интересно как реализованна истинная 64 система, под Итаниумы, на архитектуре ИА64 (а то что сейчас юзаем это архитектура АМД64, ЕМ64, х86-64 тоесть х64 и 64-bit вещи разные, но на ИА64 есть только одна ось - Windows XP 64-bit Edition, эт совсем не то что Windows XP Professional x64)

Да вот только с далекого 2003(?) ИА64 что то не всплывает наружу... или все серваки Итаниум на чем то другом сидят... ведь на них ни х86 ни х64 не работает, только 64-bit

Наофтопил я тут, это в блог к Дэвилу надо..
Да, AlexSlipknot19, а дельфя 7 может хоть на х64 сисемы компилить? или "испанскую" надо?
  Перейти в начало страницы  
#70 AlexSlipknot | 23 января 2009 02:00

Активный дример
  • 68

Репутация: 1809
Группа: Посетители
Сообщений: 902
C нами с: 29.10.2008
Очки: 7549
thexhs, Во-первых, да, у меня АМД64, во-вторых, у меня 64битная система!!!!! Поэтому АМД ТУТ НЕ ПРИЧЕМ!!! И хватит меня подкалывать по этому поводу! Между прочим, не многие Интелы могут конкурировать с моим АМД! В-третьих, нет разницы в архитектурах АМД64 и Интел64, так же как и АМД86 и Интел86!!! И на последок, Дельфи 7 работает на Висте х64 только, если на ней стоит сп1 и выше.

--------------------
Slipknot Corp.

  Перейти в начало страницы  
#71 thexhs | 23 января 2009 03:11

Активный дример
  • 68

Репутация: 30
Группа: Посетители
Сообщений: 810
C нами с: 11.11.2008
Очки: 2006
AlexSlipknot19, есть архитектура Интел64 (которая только на Итаниум) и есть АМД64 (АМД, Пентиум4, КореДуо, КореКвадро и т.п.)
Я целиком и полностью толерантно отношусь к АМД, у меня дома даже есть один АМД - 386))), и именно благодаря появлению АМД64, в моем Пне4 тоже есть 64 (целиком и полностью разработання АМД технология, которую Интеловцы взяли на вооружение вместо ИА64)

И меня интересует не возможность запуска Дельфи под х64, а возмоность компиляци 64битных приложений...
  Перейти в начало страницы  
#72 InquisiTOR | 23 января 2009 09:01

Только зашел
  • 0

Репутация: --
Группа: Гости
Сообщений: 0
C нами с: --
Очки:
thexhs, насколько мне известно компилятор Delphi 2006/2007 и даже последний RAD Studio не могут компилировать под 64-битные системы... Компилятор только под 32... Там вроде с политикой самой компании Borland связано... Не помню уже где читал. Если найду покажу.
  Перейти в начало страницы  
#73 AlexSlipknot | 23 января 2009 10:11

Активный дример
  • 68

Репутация: 1809
Группа: Посетители
Сообщений: 902
C нами с: 29.10.2008
Очки: 7549
InquisiTOR, да, но в х64 (как у меня) 32битные проги компилируются.

--------------------
Slipknot Corp.

  Перейти в начало страницы  
#74 AlexSlipknot | 23 января 2009 10:18

Активный дример
  • 68

Репутация: 1809
Группа: Посетители
Сообщений: 902
C нами с: 29.10.2008
Очки: 7549
И еще, компания Эмбаркадеро (КодГеар), владеющая на данный момент дельфи и с++билдером, напрочь изменила мнение к д2009. Многие ф-ции не работают, при компиляции исходника из д7 в д2009 возникают куча ошибок, и нужно переделывать прогу... Единственное, что хорошо, добавлены некоторые компоненты (очень даже полезные), и существенно изменен интервейс в лучшую сторону.

--------------------
Slipknot Corp.

  Перейти в начало страницы  
#75 AlexSlipknot | 18 мая 2009 23:23

Активный дример
  • 68

Репутация: 1809
Группа: Посетители
Сообщений: 902
C нами с: 29.10.2008
Очки: 7549
thexhs, Ты случайно не знаешь, как можно загрузить библиотеку так, чтобы она оттудова не выгружалась? Без regsvr32 и постороннего ехешника?

--------------------
Slipknot Corp.

  Перейти в начало страницы  
#76 thexhs | 18 мая 2009 23:34

Активный дример
  • 68

Репутация: 30
Группа: Посетители
Сообщений: 810
C нами с: 11.11.2008
Очки: 2006
AlexSlipknot19, раньше с dll не работал, но вот такой кусок текста нашел в гугле:

Статическая загрузка означает, что динамическая библиотека загружается автоматически
при запуске на выполнение использующего ее приложения. Для того чтобы использовать такой способ загрузки,
вам необходимо воспользоваться ключевым словом external при описании экспортируемой из
динамической библиотеки функции или процедуры. DLL автоматически загружается при старте программы,
и Вы сможете использовать любые экспортируемые из нее подпрограммы точно так же,
как если бы они были описаны внутри модулей приложения.
Это наиболее легкий способ использования кода, помещенного в DLL .
Недостаток метода заключается в том, что если файл библиотеки, на который
имеется ссылка в приложении, отсутствует, программа откажется загружаться.


А regsrv32 эт просто для регистрации библиотек. Кстати зачем это надо? У меня всегда срабатывал метод кинуть библиотеку в system32 или рядом с бинарником той програмы, которая ее требует. Помнится раз в попытках запустить какую то игру на 95 винде, половину Win32API с ХП перетянул, все библиотеки требовала))

Вот еще ссылки по теме загрузки dll

http://base.vingrad.ru/view/27-Zagruzka-DLL
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1353
  Перейти в начало страницы  
#77 AlexSlipknot | 18 мая 2009 23:35

Активный дример
  • 68

Репутация: 1809
Группа: Посетители
Сообщений: 902
C нами с: 29.10.2008
Очки: 7549
thexhs, Хех ) Это я и так знаю. Вчера искал в гугле "загрузка dll при старте системы" но то же самое, что ты написал). Однако есть что-то в hash tab. Там он как-то через реестр... ну фиг его знает короче. А на вконтакте-программисты дэлфи мне посоветовали службу написать. Но один фиг службы то отображаются в процессах.

--------------------
Slipknot Corp.

  Перейти в начало страницы  
#78 thexhs | 18 мая 2009 23:37

Активный дример
  • 68

Репутация: 30
Группа: Посетители
Сообщений: 810
C нами с: 11.11.2008
Очки: 2006
AlexSlipknot19, чего то вредного пишешь? Тогда делай через драйвер - его в процесах не видно, плюс возможности больше - нулевое кольцо все таки)
  Перейти в начало страницы  
#79 AlexSlipknot | 18 мая 2009 23:42

Активный дример
  • 68

Репутация: 1809
Группа: Посетители
Сообщений: 902
C нами с: 29.10.2008
Очки: 7549
thexhs, ну не знаю как ты, а я в ассемблере не силен )). Я библиотеки только вчера научился писать. И то - только потомуша дэлфи немного знаю )). Это вот я на заочку на программную инженерию если пойду, тогда буду учить асм. А так - нафиг он мне ). Я и в технаре его не любил )

--------------------
Slipknot Corp.

  Перейти в начало страницы  
#80 thexhs | 19 мая 2009 05:21

Активный дример
  • 68

Репутация: 30
Группа: Посетители
Сообщений: 810
C нами с: 11.11.2008
Очки: 2006
Цитата AlexSlipknot19
thexhs, ну не знаю как ты, а я в ассемблере не силен )). Я библиотеки только вчера научился писать. И то - только потомуша дэлфи немного знаю )). Это вот я на заочку на программную инженерию если пойду, тогда буду учить асм. А так - нафиг он мне ). Я и в технаре его не любил )


асм не обязателен. Для написания драйвера (ну не того что железом рулюет) а того что в нулевом кольце просто торчит, хватит и банального Си...
  Перейти в начало страницы  
 
 
 
Ответить Быстрый ответ
 
 

  Сейчас: 23 мая 2024 00:28


Новое на форуме  
Топ в разделе за месяц  

.
Новости магазинов  
   
© DREAMPROGS 2004 - 2018.
Связь с администрацией. По вем вопросам. Не забудьте указать свой e-mail.
Сервер предоставлен компанией Host-UA: Украинский хостинг провайдер
    uaRating  
    MyCounter - Ваш счётчик