Windows 7 и Delphi

Поддавшись случившейся не так давно в Интернете истерии по поводу выхода первой публичной беты Windows 7, скачал себе 64-разрядную версию и на некоторое время пропал в ней. :) Это было мое первое знакомство с 64-разрядной операционной системой (не говоря уже о Windows 7), хотя мой компьютер уже давным-давно поддерживает их. Все установилось и заработало на удивление гладко, за исключением дурацкого 3G модема от билайна (обыкновенный GPRS-модем от мегафона даже нисколечко не сопротивлялся). Возможно, Microsoft более серьезно подошла к разработке своей новой операционки, а возможно рассказы о проблемах 64-битных систем оказали такими же «сказками на ночь», как и большинство сказок про Vista. Мне почему-то кажется что второе. :)

Но это не очередной хвалебный пост в пользу Microsoft, так что на этом закругляюсь. Остановлюсь только на работе Delphi в Windows 7. Delphi 2009 устанавливается и работает без проблем – так как ей и положено. Про Delphi 7 пока ничего толком сказать не могу, поскольку еще не устанавливал ее, но мне кажется, что также проблем не будет.

Удивительно, но весь негатив сопутствующий появлению Windows Vista, превратился в позитивные настроения всей «экосистемы» (как это называет Microsoft) перед выходом Windows 7. Это касается Delphi-сообщества, вот например Daniel Wischnewski уже создал прототип нескольких компонентов, позволяющих уже сейчас добавлять в приложения поддержку новых возможностей Windows 7 (в первую очередь визуальных).


Естественно, что все эти новые возможности будут работать только в Windows 7. И еще важное замечание. Хотя у компонентов и присутствует инсталлятор, он просто копирует необходимые файлы, устанавливать их придется вручную.


27 Комментариев в "Windows 7 и Delphi"

Aleksey Timohin пишет:
9 февраля 2009 г. 10:18

Спасибо за пост!

Анонимный пишет:
21 февраля 2009 г. 13:12

установи delphi 7 и воспользуйся отладчиком.... посмотрим что тогда скажешь )

Валерий пишет:
18 марта 2009 г. 22:16

2Анонимный,
не понял сарказма ... :)

Хотя сам давным давно не пользуюсь этой версией, все же установил и протестировал. При запуске выдается предупреждение, что существуют проблемы совместимости - так же как это раньше было в Vista. Однако больших проблем, явно бросающихся в глаза, я не обнаружил. Отладчик так же работает стабильно.

Влад пишет:
19 апреля 2009 г. 19:28

хм хм... мне сначала тоже показалось, что дельфи 2009 работает, но вот этот код:

RegOpenKey(HKEY_LOCAL_MACHINE,'\SOFTWARE\', mkey);
RegEnumKey(mkey, 0, reg_str, 255);
memo1.Lines.Add(reg_str);

который, вроде бы, должен выдать первый подраздел hklm/software, выдает первый подраздел HKEY_Current_user. Кроме того, в HKCU создается пустой раздел с названием из какого-то символа юникода и не читаются полностью другие ветви реестра, в частности, HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\GameUX. С реестром, судя по всему, проблемы... с делфи 7 аналогично. Ни у кого похожего не наблюдалось?

Валерий пишет:
22 апреля 2009 г. 0:41

бегло глянул ... у меня этот код вообще под Win7 не запустился - выдал многозначительную ошибку Access Violation at address 00000000, чуть позже еще разок взляну - более пристально

Влад пишет:
30 апреля 2009 г. 0:13 Этот комментарий был удален автором.
Влад пишет:
30 апреля 2009 г. 0:14

проблема, возможно, в кодировках, используемых компилятором... Валерий, Вы на каком билде пробовали? сейчас попробую обновиться до 7100.

Валерий пишет:
4 мая 2009 г. 1:09

Я пробовал на публичной beta-версии, точно не помню ее билд - 7000 по-моему.

Не понял только про кодировки ...

Влад пишет:
4 мая 2009 г. 2:59

кодировки - возможно, неправильно записываются символы прямого и обратного слешей. насколько я помню, еще раздел создавался с именем "Microsoft\Windows\CurrentVersion\GameUX".
P. S. билд 7100 - проблемы аналогичные. Работа с реестром - нивкакую... может, дело в изменившихся константах типа HKEY?

Валерий пишет:
5 мая 2009 г. 9:44

Сомневаюсь насчет кодировок.

А вот проблема с правами - запросто. Поскольку по-умолчанию ни в Висте ни в семерке доступ в раздел HKEY_LOCAL_MACHINE имеют только привелигерованные пользователи. Обычный пользователь имеет доступ только в HKEY_CURRENT_USER. Возможно из-за этого и такие проблемы?

Попробуйте к разделу CURRENT_USER обращаться. У меня просто нет возможности сейчас проверить.

Влад пишет:
16 мая 2009 г. 0:32

Валерий, спасибо, действительно помогло) соотвественно, вопрос: можно ли получить соответсвующие права доступа?)

Валерий пишет:
17 мая 2009 г. 1:42

По всей видимости проблема с правами вызвана включенным UAC. В моем предыдущем посте есть способ как его правильно настроить в приложении. Ну или в качестве проверки можно временно выключить его.

Но думаю следует задуматься вот над каким вопросом: настолько ли критично записывать именно в HKLM, чтобы полностью гонять приложение с правами администратора? или заморачиваться с COM только ради этого?

GunSmoker пишет:
17 мая 2009 г. 2:31

Вот всегда так... начнуть вопить: "MS отстой, да ничё не работает", а сами даже обработку ошибок в код вставить не удосужатся...

Анонимный пишет:
17 мая 2009 г. 19:46

2GunSmoker: ошибок, как таковых, не происходит. При запросе из HKLM выдаются данные из HKCU. И уж тем более я не говорил подобное "MS отстой, да ничё не работает"
Валерий, критично. Пишу программу для редактирования и добавления игр в game explorer.
Попробую SetFileSecurity()

Влад пишет:
17 мая 2009 г. 20:15

UAC, кстати, выключен

Влад пишет:
17 мая 2009 г. 23:21

Добавление манифеста запуска от администратора в приложение ни к чему не привело. Права на ветвь реестра выставлены. Пойду на форумы выяснять..

Влад пишет:
18 мая 2009 г. 22:06

Да, кстати, попробовал запустить программу, скомпилированную под 7, по хр - не работает! значит, дело в компиляторе.

Влад пишет:
19 мая 2009 г. 3:48

всё, нашел, если кому интересно:
Работа с 64битным реестром
[code delphi]
procedure TForm1.FormCreate(Sender: TObject);
const
KEY_WOW64_32KEY = $200;
KEY_WOW64_64KEY = $100;
var
org:tregistryEx;
key: HKEY;
begin
org:=tregistryEx.Create;
org.RootKey:=HKEY_LOCAL_MACHINE;
RegOpenKeyEx(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion',
0, KEY_ALL_ACCESS or KEY_WOW64_64KEY, key);
org.SetCurrentKey(key);

Edit1.Text:=org.ReadString('RegisteredOwner');
Edit2.Text:=org.ReadString('RegisteredOrganization');
[/code]

Валерий пишет:
19 мая 2009 г. 10:14

Вот именно что - Windows 64х битная, а то сразу компилятор ругать. :) А 64х битный компилятор мы наверное только к пенсии дождемся :(

Кстати вчера экспериментировал - иммено к этому ключу доступа небыло, даже HKLM\...\CurrentVersion\Run удалось прочитать.

Влад пишет:
19 мая 2009 г. 21:45

компилятор я не ругал, просто он не рассчитан на подобное) винда вообще при первом запуске предупреждала, что эта программа несовместима)

Trojan пишет:
30 сентября 2009 г. 0:46

Народ, ИМХО не стоит так извращаться. Уж если писать проги под Вынь 7 то лучше ставить заточенную под неё среду. Ибо Delphi 7 хотя и крут, морально устарел для этой ОС.

buy viagra пишет:
1 июня 2010 г. 7:42

Приглашаю поучаствовать в бессрочной, безотказной и абсолютно бескорыстной Ретро-акции. По-моему, это будет интересно.

Анонимный пишет:
12 июня 2010 г. 0:12

Все хорошо конечно, но - на Windows 7 в Делфи не получается регулировать громкость на компьютере((( Походу тоже что-то из-за доступа((( Подскажите как выйти из ситуации?

buy viagra пишет:
15 июня 2010 г. 0:47

Добрый день. замечательная статья, спасибо огромное:-)
viagra online
... Интересный сайт хорошо описали
generic viagra

ale-nov11 пишет:
20 июля 2010 г. 23:48

Где достать Windows 7 Controls for Delphi? По ссылке не скачивается

Анонимный пишет:
25 марта 2011 г. 4:21

Delphi 5 + Win 7 (под Админом)
При попытке залезть в опции проекта:
Project >> Options...
Получаем стандартное:
Error
Access violation at address ########.
Write of address ########.

Вопрос чёй-то так? Мигрировать с D5 желания нет, но есть проблема, под этот комп нет дров для XP...

Как бы это победить?

Анонимный пишет:
8 апреля 2011 г. 3:09

Дрова надо правильно искать. Берётся AIDA или EVEREST и по ID железки ищется драйвер. Некоторую проблему представляют ноутбучные вебкамеры и звуковые карты. Ну и неплохо перед инсталляцией дельфи поудалять все системные DLL из комлекта поставки - тогда и проблем совместимости небудет. Кроме того в семёрку встроен виртуалпц - можно и экспу поставить или 98.

Отправить комментарий