Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Обсуждение статей
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2006, 21:27   #1
Hallo
Здесь дольше всех
Форумчанин
 
Аватар для Hallo
 
Регистрация: 29.10.2006
Сообщений: 372
По умолчанию Управление windows с помощью delphi

Цитата:
От автора
Здравствуйте. В этом учебники я напишу, как обращаться с Windows’ом. Учебник это, по сути, набор статей по работе с определёнными разделами Windows.
Начнём с рабочего стола
Разберём панель задач Меню Пуск.
Работа с файлами
Ярлыки
Реестр
Немного о Windows
Панель управления
Монитор
CD-rom
Мышь
Клавиатура.
Нельзя обсуждать конкретных людей
Hallo вне форума Ответить с цитированием
Старый 05.09.2010, 02:19   #2
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

попробовал осуществить то, что написано в статье "Немного о Windows".
В console aplication оно не прокатывает -
[Pascal Error] Project1.dpr(8): E2004 Identifier redeclared: 'System'

код таков:
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils,  windows, system;

var
   Windir: string;
   WindirP: PChar;
   Res: Cardinal;

   WinVersion, DosVersion: Word;

{$R *.dfm}

{Надо узнать, где запрятана, на компьютере, эта глюченая,
 но родная система под названием windows:}

 begin
  WinDirP := StrAlloc(MAX_PATH);
  Res := GetWindowsDirectory(WinDirP, MAX_PATH);
  if Res > 0 then
    WinDir := StrPas(WinDirP);
  writeln(WinDir);


//Теперь надо выяснить, что за windows и dos перед нами.
// Думаю, пару label и одной button хватит:



  WinVersion := GetVersion and $0000FFFF;
  DosVersion := GetVersion shr 16;
  writeln(IntToStr(Hi(DosVersion))+'.'+IntToStr(Lo(DosVersion)));
  writeln(IntToStr(Lo(WinVersion))+'.'+IntToStr(Hi(WinVersion)));

end.

В чём собственно проблема? Точнее в чём проблема , я понимаю, а вот почему???
Если помог, проси поставить минус. Будь оригинален!

Последний раз редактировалось Rin; 05.09.2010 в 07:07.
Rin вне форума Ответить с цитированием
Старый 05.09.2010, 15:19   #3
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Всё работает:
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils,  windows, system;
var
   Windir: string;
   WindirP: PChar;
   Res: Cardinal;
   WinVersion, DosVersion: Word;
begin
  WinDirP := StrAlloc(MAX_PATH);
  Res := GetWindowsDirectory(WinDirP, MAX_PATH);
  if Res > 0 then
    WinDir := StrPas(WinDirP);
  writeln(WinDir);
  WinVersion := GetVersion and $0000FFFF;
  DosVersion := GetVersion shr 16;
  writeln(IntToStr(Hi(DosVersion))+'.'+IntToStr(Lo(DosVersion)));
  writeln(IntToStr(Lo(WinVersion))+'.'+IntToStr(Hi(WinVersion)));
end.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 05.09.2010, 21:57   #4
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

хм, Я на turbo Delphi это делаю. У меня этот код не фурычит.
попробовал скопировать модуль и переименовать его в System1.pas и в заголовке самого pas файла переименовать. Записал в uses так:

Код:
uses windows, SysUtils,
system1 in 'C:\Program Files\Borland\BDS\4.0\source\Win32\rtl\sys\System1.pas';
так он мне ещё больше ошибок понавыдовал))

[Pascal Error] System1.pas(291): E2211 Declaration of 'QueryInterface' differs from declaration in interface 'IInterface'
[Pascal Error] System1.pas(1742): E2004 Identifier redeclared: 'SysInit'
[Pascal Error] System1.pas(3329): E2251 Ambiguous overloaded call to 'ChDir'
to 'MkDir'
to 'RmDir'
[Pascal Error] System1.pas(13372): E2105 Inline assembler syntax error
[Pascal Error] System1.pas(17688): E2251 Ambiguous overloaded call to 'EnumModules'
................................... .........
и в заключении на десерт дал это =)
[Pascal Fatal Error] Project1.dpr(6): F2063 Could not compile used unit 'C:\Program Files\Borland\BDS\4.0\source\Win32\ rtl\sys\System1.pas'

видать гиблое дело на turbo Delphi работать.
Но мне очень всё таки интересно, почему же именно на System он ругается. Ни windows, ни SysUtils, а именно System?

Во, а какой скрипт поставить, чтобы не проверялись ошибки?
как то {-R*.} или как то так.... не помню уже.
Если помог, проси поставить минус. Будь оригинален!

Последний раз редактировалось Stilet; 06.09.2010 в 09:21.
Rin вне форума Ответить с цитированием
Старый 05.09.2010, 23:31   #5
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

oO а зачем вообще явно system указывать? Он же и так в обязательном порядке подключается к любому проекту, потому и Identifier redeclared
пыщь
JTG вне форума Ответить с цитированием
Старый 05.09.2010, 23:37   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

вот именно, не нужно ...TurboDelphi-Lite, работает.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 05.09.2010, 23:50   #7
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

ага , понятно. Убрал, заработало!!! Thanks.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Windows Открыть с помощью не работает AnageN Windows 3 02.08.2010 18:22
Показать диалог с помощью windows messages mnemonic Win Api 3 27.08.2008 00:27
Управление Excel из Delphi chekanoff Общие вопросы Delphi 2 15.01.2008 20:31
написать БД на Delphi с помощью SQL Tanchik Фриланс 2 13.06.2007 19:06
Управление настройками компьютера из приложения Delphi Saili Общие вопросы Delphi 2 05.12.2006 11:41