Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 4698
Рейтинг: 426
#1: 2010-07-23 12:56:52 ЛС | профиль | цитата
Есть код определения версии Windows, определяет верно: Windows 95, 98, ME, NT 3, NT 4, 2000, XP, 2003, 7. А вот висту надо проверить, желающие с вистой есть протестить Если во втором сообщении выдаст Unknown, то скажите цифры из первого
code_19655.txt
карма: 10
2
файлы: 1code_19655.txt [2.7KB] [572]
Голосовали:GAv, Konst
Ответов: 274
Рейтинг: 47
#2: 2010-07-23 13:20:43 ЛС | профиль | цитата
Assasin, Мою семерку обозвал ХРюшей
карма: 0

0
Разработчик
Ответов: 4698
Рейтинг: 426
#3: 2010-07-23 13:21:35 ЛС | профиль | цитата
Тогда скажи циферки из первого сообщения
карма: 10
0
Ответов: 274
Рейтинг: 47
#4: 2010-07-23 13:22:14 ЛС | профиль | цитата
Assasin, Все, разобрался У меня HiAsm запускался в режиме совместимости WindowsXP
карма: 0

0
Ответов: 4630
Рейтинг: 749
#5: 2010-07-23 13:29:47 ЛС | профиль | цитата
Определяет Висту - цифры: 6 0
карма: 26

0
Разработчик
Ответов: 4698
Рейтинг: 426
#6: 2010-07-23 13:35:54 ЛС | профиль | цитата
Netspirit писал(а):
Определяет Висту - цифры: 6 0

О! Отлично, значит моя догадка была верна, спасибо тестирующим, теперь вопрос о нужности такого компонента:
[vote=Нужен ли компонент определения версии ОС?]
[answer=Да, нужен, это хорошая идея]
[answer=Нет, зачем?]
[answer=Я томат]
[/vote]
карма: 10
0
Ответов: 4630
Рейтинг: 749
#7: 2010-07-23 13:52:40 ЛС | профиль | цитата
По-моему, нужен. Хоть и используется не очень часто. У тебя всеравно всё готово, так что делай компонент, выкладывай, а там видно будет.
------------ Дoбавленo в 13.52:
Хотя, может стоит объединить с ComputerInfo?
карма: 26

0
Разработчик
Ответов: 4698
Рейтинг: 426
#8: 2010-07-23 13:55:10 ЛС | профиль | цитата
Netspirit писал(а):
Хотя, может стоит объединить с ComputerInfo?

Это уже нужно разрешение на обновление на SVN, пусть админы отпишутся
карма: 10
0
Ответов: 356
Рейтинг: 31
#9: 2010-07-23 13:57:03 ЛС | профиль | цитата
Netspirit писал(а):
может стоит объединить с ComputerInfo?

Тоже поддерживаю, и желательно чтобы выдавалась более полная информация, например:
Microsoft Windows XP Professional версия 2002 Service Pack 3
[Версия 5.1.2600]

карма: 0

0
Разработчик
Ответов: 4698
Рейтинг: 426
#10: 2010-07-23 13:58:54 ЛС | профиль | цитата
olDjeka писал(а):
Тоже поддерживаю, и желательно чтобы выдавалась более полная информация, например:
Microsoft Windows XP Professional версия 2002 Service Pack 3
[Версия 5.1.2600]

Ну этого я пока не умею Сейчас покопаю может чего и найду
карма: 10
0
Ответов: 171
Рейтинг: 19
#11: 2010-07-23 14:00:23 ЛС | профиль | цитата
Я как то выкладывал сдесь доделаный CompInfo не помню в какой уже теме...
Вот прикрепил, давно пользуюсь

карма: 0

0
файлы: 1compinfo.rar [2.1KB] [334]
Разработчик
Ответов: 4698
Рейтинг: 426
#12: 2010-07-23 14:04:22 ЛС | профиль | цитата
Borka писал(а):
Я как то выкладывал сдесь доделаный CompInfo не помню в какой уже теме...
Вот прикрепил, давно пользуюсь

Твой будет и по короче и по функциональнее... У меня кода больше по сравнению с тобой, но у тебя ровно то же, что и у меня Но если уж надо
olDjeka писал(а):
Microsoft Windows XP Professional версия 2002 Service Pack 3
[Версия 5.1.2600]
, то твой уже не подойдет
карма: 10
0
Разработчик
Ответов: 26149
Рейтинг: 2127
#13: 2010-07-23 14:11:13 ЛС | профиль | цитата
Assasin, подумай еще над функционалом, возможно, удасться выдавить чего
карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#14: 2010-07-23 14:50:09 ЛС | профиль | цитата
nesco писал(а):
Assasin, подумай еще над функционалом, возможно, удасться выдавить чего

Ага, уже нашел, TOSVersionInfo содержит все необходимое для сообщения эквивалентному olDjeka:

Microsoft Windows XP Professional версия 2002 Service Pack 3
[Версия 5.1.2600]
Все что выделено жирным шрифтом, я нашел, а вот Professional и версия 2002 где взять, не найду
------------ Дoбавленo в 14.50:
nesco, вот такая вот картина, как убрать лишние ~100 символов понятия не имею...
Add(MainForm,2953706,252,168)
{
Visible=1
link(onCreate,5660744:doGetOSVersion,[])
}
Add(InlineCode,5660744,308,182)
{
WorkPoints=#14:doGetOSVersion|
EventPoints=#5:onGet|
VarPoints=#13:OSVersionName|14:OSMajorVersion|14:OSMinorVersion|13:OSBuildNumber|12:OSPlatformID|8:OSCSDVer|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses kol,Share,Debug,Windows;|0:|4:type|84: TWinVersion = (wvUnknown,wv95,wv98,wvME,wvNT3,wvNT4,wvW2K,wvXP,wv2003,wvVista,wv7);|0:|28: THiAsmClass = class(TDebug)|10: private|23: ver,CSDVer:string;|37: MajVer,MinVer,BuildN,PlID:DWORD;|9: public|21: onget:THI_Event;|5: |59: procedure doGetOSVersion(var _Data:TData; Index:word);|58: procedure OSVersionName(var _Data:TData; Index:word);|59: procedure OSMajorVersion(var _Data:TData; Index:word);|59: procedure OSMinorVersion(var _Data:TData; Index:word);|58: procedure OSBuildNumber(var _Data:TData; Index:word);|57: procedure OSPlatformID(var _Data:TData; Index:word);|53: procedure OSCSDVer(var _Data:TData; Index:word);|5: |43: function DetectWinVersion:TWinVersion;|41: function DetectWinVersionStr:string;|5: end;|0:|14:implementation|0:|50:function THiAsmClass.DetectWinVersion:TWinVersion;|33:var OSVersionInfo:TOSVersionInfo;|14: i:integer;|5:begin|22: Result := wvUnknown;|62: OSVersionInfo.dwOSVersionInfoSize := sizeof(TOSVersionInfo);|37: if GetVersionEx(OSVersionInfo) then|8: begin|26: SetLength(CSDVer,128);|70: for i := 0 to 127 do CSDVer[i+1] := OSVersionInfo.szCSDVersion[i];|43: MajVer := OSVersionInfo.DwMajorVersion;|43: MinVer := OSVersionInfo.DwMinorVersion;|39: PlID := OSVersionInfo.dwPlatformId;|42: BuildN := OSVersionInfo.dwBuildNumber;|18: case MajVer of|54: 3: Result := wvNT3; // Windows NT 3|23: 4: case MinVer of|45: 0: if PlID = VER_PLATFORM_WIN32_NT|54: then Result := wvNT4 // Windows NT 4|52: else Result := wv95; // Windows 95|52: 10: Result := wv98; // Windows 98|52: 90: Result := wvME; // Windows ME|17: end;|23: 5: case MinVer of|54: 0: Result := wvW2K; // Windows 2000|52: 1: Result := wvXP; // Windows XP|54: 2: Result := wv2003; // Windows 2003|13: end;|23: 6: case MinVer of|55: 0: Result := wvVista; // Windows Vista|51: 1: Result := wv7; // Windows 7|13: end;|7: end;|6: end;|4:end;|0:|48:function THiAsmClass.DetectWinVersionStr:string;|6:const |44: VersStr : array[TWinVersion] of string = (|14: 'Unknown',|9: '95',|9: '98',|9: 'ME',|11: 'NT 3',|11: 'NT 4',|11: '2000',|9: 'XP',|11: '2003',|12: 'Vista',|7: '7'|4: );|5:begin|38: Result := VersStr[DetectWinVersion];|4:end;|0:|37:procedure THiAsmClass.doGetOSVersion;|5:begin|29: ver := DetectWinVersionStr;|32: _hi_CreateEvent(_Data,@onGet);|4:end;|0:|36:procedure THiAsmClass.OSVersionName;|5:begin|22: dtString(_Data,ver);|4:end;|0:|37:procedure THiAsmClass.OSMajorVersion;|5:begin|26: dtInteger(_data,MajVer);|4:end;|0:|37:procedure THiAsmClass.OSMinorVersion;|5:begin|26: dtInteger(_data,MinVer);|4:end;|0:|36:procedure THiAsmClass.OSBuildNumber;|5:begin|26: dtInteger(_Data,BuildN);|4:end;|0:|35:procedure THiAsmClass.OSPlatformID;|5:begin|24: dtInteger(_Data,PlID);|4:end;|0:|31:procedure THiAsmClass.OSCSDVer;|5:begin|25: dtString(_Data,CSDVer);|4:end;|0:|4:end.|
link(onGet,6539533:doString,[(358,188)(358,212)(296,212)(296,237)])
}
Add(FormatStr,6539533,308,231)
{
DataCount=6
Mask="Microsoft Windows %1 %6, platform ID %5\r\n[version %2.%3.%4]"
link(onFString,7929789:doMessage,[])
link(Str1,5660744:OSVersionName,[])
link(Str2,5660744:OSMajorVersion,[])
link(Str3,5660744:OSMinorVersion,[])
link(Str4,5660744:OSBuildNumber,[])
link(Str5,5660744:OSPlatformID,[])
link(Str6,5660744:OSCSDVer,[])
}
Add(Message,7929789,371,231)
{
link(onMessage,2953706:doClose,[(408,237)(408,276)(242,276)(242,195)])
}
карма: 10
0
Ответов: 1891
Рейтинг: 110
#15: 2010-07-23 14:52:24 ЛС | профиль | цитата
Assasin, писал(а):
А вот висту надо проверить, желающие с вистой есть протестить



6 0

Windows Vista
карма: 0
%time%
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)