IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> KOL
сообщение
Сообщение #1


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Промучился пару часов, в попытках установить на Delphi 2007 версию от Delphi 7... Какие-то чудеса, с горем пополам KOL+MCK устанавливались, появлялись на палитре, а при перезапуске - исчезали! Есть ли KOL для D2007?

Сообщение отредактировано: Unconnected -


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
в попытках установить на Delphi 2007 версию от Delphi 7
Почему от D7? На офсайте лежит KOL/MCK 2.88, которые устанавливаются без проблем даже на D2009 - просто открываешь нужный MirrorKOLPackageD{...}, собираешь его, и устанавливаешь (не забудь скачать пакет KOLadd, и распаковать его в ту же папку, куда распаковал KOL и MCK, иначе при сборке MirrorKOLPackage получишь сообщение об отсутствующем файле)... А потом добавляешь путь к DCU-файлам KOL/MCK в Library Path, создаешь новый проект через Delphi Project -> Wizards -> New KOL-MCK Wizard.

Перезапускал Дельфи несколько раз, никуда вкладка KOL не исчезает, Wizard тоже...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Вот.. именно с оффсайта эту версию я и скачал. Установить визард и компоненты получилось, даже получилось создать и откомпилировать приложение, получив хвалёные 28кб. А вот при рестарте..
А ты пробовал на D2007?

Цитата
просто открываешь нужный MirrorKOLPackageD{...}


Там ведь нету MirrorKOLPackageD2007.dpk. И в ридми описана установка D3-D7, и всё. Я ещё пытался MirrorKOLPackageD11 поставить, та же история (так то всё устанавливается), а MirrorKOLPackageD12.dpk даже не открывается.


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
Там ведь нету MirrorKOLPackageD2007.dpk
А ключа компилятора D2007 тоже нет. Есть D10 = "Delphi 2006", D11 = "Delphi 2007", D12 = "Delphi 2009"

Цитата
А ты пробовал на D2007?
У меня нет 2007, чтобы на нем пробовать. Одновременно с 2009 эта версия не живет.

Цитата
А вот при рестарте..
При рестарте чего? ОСи или Дельфи? Ты в Component -> Install Packages смотрел, есть у тебя там KOL/MCK? Может, у тебя просто галочка сбрасывается? Версия Дельфей, я надеюсь, не Explorer? В TDE нельзя устанавливать доп. компоненты, это один из недостатков.

Добавлено через 6 мин.
P.S. И еще... Зачем тебе гоняться за этими хвалеными 28К на пустой форме? Что, если твое приложение будет весить 400К, оно будет менее привлекательным, и ты готов ради этого даже пожертвовать удобством разработки и сопровождения программы? Тогда пиши на чистом API, будет еще меньше. Чистая форма + еще и кнопка на ней = 20К, даже не в Release.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Цитата
А ключа компилятора D2007 тоже нет. Есть D10 = "Delphi 2006", D11 = "Delphi 2007", D12 = "Delphi 2009"


Ага, последние две попытки установки я такую же аналогию и проводил.
Цитата

При рестарте чего? ОСи или Дельфи?


Дельфи.
Цитата

Ты в Component -> Install Packages смотрел, есть у тебя там KOL/MCK? Может, у тебя просто галочка сбрасывается?


Я провёл "эксперимент", установил KOL(после установки традиционно показалось окошко с установленными классами, кнопки там, всё остальное), на палитре всё это появилось. Розоватого такого оттенка:) Захожу в
Component -> Install Packages, и вижу в самом верху KOL\MCK, и галочка стоит, всё нормально. Перезапускаю дельфи, захожу туда же - KOL\MCK и след простыл...

Добавлено через 1 мин.
Ну, постоянно я писАть на нём не собираюсь, просто задача стоит, быстро уменьшить моё же приложение, весящее чуть больше мегабайта (VCL), на много:)

Добавлено через 49 сек.
Короче говоря, докачал D7 cool.gif Буду пробовать на нём:)

Сообщение отредактировано: Unconnected -


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
задача стоит, быстро уменьшить моё же приложение, весящее чуть больше мегабайта (VCL), на много:)
Откомпилируй в Release и пройдись Strip-ом (по-моему, он так называется, я ничего не путаю?), чтоб убрать из файла ненужную отладочную информацию. Узнаешь много интересного smile.gif Совсем не обязательно для того, чтобы уменьшить размер файла переходить на древнюю версию компилятора. В D7 может не быть некоторых языковых конструкций, что еще заставит тебя переписывать часть проекта.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Поставил KOL на D7, адаптировал проект (это было круто))), но вот с API в KOL, кажется, нужно работать как-то по другому... Раньше у меня строка

Hook: HHook = 0;


была в секции констант, и всё компилировалось и работало.
Когда перевёл на эти волшебные зеркальные классы, то на строке

if Hook = 0 then Hook:=SetWindowsHookEx(WH_KEYBOARD_LL,@HookProc,HInstance,0);


при компиляции появляется ошибка Left side cannot assigned to. Якобы нельзя Hook чего-то присвоить. Когда переношу Hook в секцию переменных, то компилируется, но сам хук на клавиатуру не работает.
И ещё, тут нет понятия Handle, кажется...


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






rolleyes.gif Теперь ты понимаешь, что имел в виду под
Цитата(Self)
удобством разработки и сопровождения программы
? Ты все еще хочешь идти по этому пути?

Цитата
при компиляции появляется ошибка Left side cannot assigned to. Якобы нельзя Hook чего-то присвоить.
А ты поставил в настройках галку на Assignable constants? (кажется, это так называлось в D7), или используй {$J+}

Цитата
И ещё, тут нет понятия Handle, кажется...
Должно быть. Хендл - это святое smile.gif Попробуй не Form1.Handle, а Form1.Form.Handle...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Цитата
rolleyes.gif Теперь ты понимаешь, что имел в виду под
Цитата(Self)
удобством разработки и сопровождения программы
? Ты все еще хочешь идти по этому пути?


Я это удобство почувствовал сразу lol.gif Но всё же в некоторых случаях иметь столь малый исполняемый файл ну очень соблазнительно, поэтому надо взять на вооружение:)

Цитата
или используй {$J+}


Ага, именно её и не хватало. А я думал, нельзя константам ничего присваивать.. Спасибо, адаптировал полностью, про хендл тоже правдой оказалось)

И ещё маааленький вопрос не по теме:rolleyes: про cmd из Делфи. Вот если я хочу из программы выполнить через cmd команду, то делаю вот так(?):

WinExec('Cmd REG [ADD:HLKM\**************************** ] [/v:*****] [/t:REG_SZ] [/d:C:\1.exe]', SW_HIDE)


И нифига туда значение параметра не добавляется... Тип параметра точно REG_SZ. Этот код придумал сам, просто по аналогии, наверное поэтому не работает)) Хотя окошко cmd мелькает. Думаю, что-то с синтаксисом напутал.


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Может, все-таки:
WinExec('cmd /C reg add \HKLM\что_там_еще /v название /t REG_SZ /d C:\1.exe /f', SW_HIDE);
? В справке Windows, по крайней мере, так написано...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


WinExec('cmd /C reg add \HLKM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon /v Shell /t REG_SZ /d Explorer.exe, C:\WINDOWS\1.exe /f', SW_HIDE)


Не добавляет. Где косяк?)


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Попробуй запустить
WinExec('cmd /C reg add "HLKM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "Explorer.exe, C:\WINDOWS\1.exe" /f', SW_HIDE);
, у тебя пробелы в пути получались, этого нельзя допускать. То же самое касается и параметра D, он тоже в кавычках. А вообще, попробуй запустить из командной строки:
C:>reg add "HLKM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "Explorer.exe, C:\WINDOWS\1.exe" /f
, если ЭТО сработает, то и программная реализация сработает.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Спасибо, работает, только пришлось написать полное название раздела HKEY_LOCAL_MACHINE, иначе не получалось почему-то:)


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 24.04.2024 9:44
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name