Текущий архив: 2002.06.27;
Скачать: CL | DM;
Вниз
COBMECTuMOCTb Найти похожие ветки
← →
allrussia © (2002-05-21 09:03) [0]6yDyT /\u nporpaMMbI, HanuCaHHbIE B Delphi3, pa6oTaTb noD
OS KpoMe Win95-98.
Kak Hac4eT NT4, Win2000, WinXP, WinME?
DonycTuM, function SHGetSpecialFolderLocation: 6yDeT /\u OHA pa6oTaTb noD ETu OS?
Ec/\u Het, To KAKAya function DE/\aeT To}|{e CAMOE TO/\bKO B
Ha3BAHHbIX OS...
rDe B3yaTb DOKyMEHTbI npo ETu functions... a TAK }|{e npo PeecTp, BcyaKue DiskoBbIe functions u Dpyroe... uMeHHo 4TO6bI
noD XP, ME, 2k, NT.......
u Ecshe: kak y3HATb KAKAya n/\aTFoPMA
if GetVersion<>0 then Win9x else WinNT is it CORRECT??
A ec/\u OS XP,ME,2k??????? TO KAK?
YA Pa6oTAu noD Win98 4.10.2222 B Delphi3/
← →
Роман Василенко © (2002-05-21 18:22) [1]Много вопросов... А такая литерация - это стиль, или ты ничего не поймешь из за кодировки?...
Так вот. Программы, написанные в Д3 работают под любой Вин-операционкой выше Вин95. Все зависит от того, чем ты пользуешься, но, как правило, все заканчивается мелкими различиями в работе с WinAPI. Если будешь пользоваться стандартными компонентами - все будет ништяк.
SHGetSpecialFolderLocation прекрасно работает под всем: от W95 до XP.
Документы... Самые лучшие документы - интерактивные хелпы по Windows (SDK Reference). Я использую Delphi 5, там хорошая посказка. Попользуйся и ты. Советую.
Насчет того, как узнать версию Виндовс... Смотри:
unit winv;
interface
const
osverstr:array[1..7] of string=("95","98","ME","NT 3.51","NT 4.0","2000","XP");
os_95=1;
os_98=2;
os_me=3;
os_nt351=4;
os_nt40=5;
os_2000=6;
os_xp=7;
function WinVer: integer; //Win95 or later and NT3.5 or later
implementation
uses windows;
function WinVer: integer; //Win95 or later and NT3.5 or later
var
temp1, temp2, temp3: integer;
osvi: OSVERSIONINFO;
begin
osvi.dwOSVersionInfoSize:=sizeof(OSVERSIONINFO);
GetVersionEx(osvi);
temp1:=osvi.dwMajorVersion;
temp2:=osvi.dwMinorVersion;
temp3:=osvi.dwPlatformId;
result:=-1;
case temp1 of
3: if temp2=51 then result:=os_nt351;
4: case temp2 of
0: if temp3=VER_PLATFORM_WIN32_WINDOWS then result:=os_95 else
result:=os_nt40;
10: result:=os_98;
90: result:=os_me;
end;
5: case temp2 of
0: result:=os_2000;
1: result:=os_xp;
end;
end;
end;
end.
Вытащи целиком в отдельный юнит и пользуйся.
← →
Agent Smith © (2002-05-21 19:12) [2]Это смотря что из компонентов винды используется. Но в большинстве случаев, работать должно. На самом деле все объясняется очень просто: Windows - 32 (пока)разрядная система, а Дельфи, начиная сверсии 3-тоже, поэтому, если программа локальная, то проблем возникнуть не должно. Но с другой стороны я лично сталкивался с таким случаем, когда программа, написанная в Дельфи 5 и работающая с системными файлами прекрасно чувствовала себя в среде Win95/98, но не работала на Ме.
← →
drpass © (2002-05-22 13:58) [3]Программы, написанные в Delphi3, будут работать в той ОС, на которую ты их рассчитывал. В общем случае между Win 9x(Me) и NT/2000/XP нет отличий, но если твоя прога работает с "потрохами" системы, то проблемы могут возникнуть
← →
BigBadMutuh © (2002-05-22 20:19) [4]А в моей проге есть функция выключения компа через определённый промежуток времени... На Win 9x/ME всё работает, на XP - нет... Обидно товарищи.
← →
Sasha9 © (2002-05-26 20:18) [5]"я" пишется как "9I" а не "ya"
← →
BigBadMutuh © (2002-05-26 20:33) [6]
> в моей проге есть функция выключения компа через определённый
> промежуток времени...
В моей тоже. Блин. И тоже не работает...
← →
drpass © (2002-05-26 20:56) [7]
> BigBadMutuh © (26.05.02 20:33)
Что за проблема? Просто добавь
t: _Token_Privileges;
ht: cardinal;
rl: cardinal;
if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, ht) then begin
LookupPrivilegeValue(nil, "SeShutdownPrivilege", t.Privileges[0].Luid);
t.PrivilegeCount:=1;
t.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(ht, false, t, 0, nil, rl);
end;
перед ExitWindows, и все будет Cancel, пардон, ОК
Страницы: 1 вся ветка
Текущий архив: 2002.06.27;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.02 c