var VI: TOSVersionInfo;begin
VI.dwOSVersionInfoSize := SizeOf(VI);
GetVersionEx(VI);
with VI do
begin
case dwPlatformID of
VER_PLATFORM_WIN32S: //do your prmg ;
VER_PLATFORM_WIN32_WINDOWS //do your prmg :;
VER_PLATFORM_WIN32_NT //do your prmg :;
end;
end;
end;
VI.dwOSVersionInfoSize := SizeOf(VI);
GetVersionEx(VI);
with VI do
begin
case dwPlatformID of
VER_PLATFORM_WIN32S: //do your prmg ;
VER_PLATFORM_WIN32_WINDOWS //do your prmg :;
VER_PLATFORM_WIN32_NT //do your prmg :;
end;
end;
end;
解决方案 »
- 招delphi程序员及ERP销售代表
- Delphi中的DLL好好奇怪呀!
- 这样的数据导入问题困扰了我好久了。
- 我想问:delphi里面有没有这样的函数:我想取123450.65的每位,我想从右边开始取值,一直取到最左端为止.
- treeview如何表示它选中的项?
- 如何使DbGrid的某一个单元格为不可编辑?
- 专业的技术问题,求助!!给高分!!
- 我已经可以通过以下代码得到常用汉字的声母,但是有的字却出不来, 如“婷”,“黛”等等,请问有什么补救办法。
- 如何动态设置控件的宽度?
- TMemoryStream有什么作用
- ClientDataSet.Reconcile.......的作用?
- 什么是三层?什么是分布式系统?什么是COM?什么是DCOM?
VI.dwOSVersionInfoSize := SizeOf(VI);
GetVersionEx(VI);
with VI do
begin
case dwPlatformID of
VER_PLATFORM_WIN32S:
VER_PLATFORM_WIN32_WINDOWS //do your prmg :;
VER_PLATFORM_WIN32_NT //do your prmg :;
end;
end;
end;
function NetShareDel(ServerName: PChar; NetName: PChar; Reserved: Word): Integer; StdCall;implementation...function NetShareAdd; external 'SVRAPI.DLL';
function NetShareDel; external 'SVRAPI.DLL';
//win98下是用这SVRAPI.DLL
//win2000下用NETAPI32.DLL
function ShareResource(...): Integer;
var
...
begin
...
Result := NetShareAdd(...));
end;function DeleteShare(...): Integer;
var
...
begin
...
Result := NetShareDel(...));
end;
然后,应该这样修改,使能适合98或2000的操作系统而自动调用初次使用dll,还不清楚调用的方法,谢谢了!
查查MSDN里的
LoadLibrary、GetProcAddress、FreeLibrary三个函数。
procedure TForm1.Button1Click(Sender: TObject);
Type
TVersion = packed record
WinVer,
WinRev,
DosRev,
DosVer: byte;
end;
var
V:Dword;
begin
V:=GetVersion;
Label1.Caption :=Format('Windows Version:%d.%d,Dos Version:%d.%d',[TVersion(V).WinVer,TVersion(V).WinRev,Tversion(V).DosVer,TVersion(V).DosRev]);
end;其实在Delphi5中有一些系统常量可以使用(在sysutils单元):
Win32BuildNumber //Build版本号
Win32Platform //系统平台,2=Win32系统
Win32MajorVersion //主版本号
Win32MinorVersion //次版本号
Win32CSDVersion //其他版本信息,例如"Service Pack 2"
动态调用Dll:typedef DWORD (WINAPI Fun) (DWORD,DWORD);
HINSTANCE hkDll=LoadLibrary("KERNEL32.DLL");
Fun*RegisterServiceProcess=(Fun*)::GetProcAddress(hkDll,"RegisterServiceProcess");
(*RegisterServiceProcess)(NULL,1);
FreeLibrary(hkDll);
===============
var
H: HWnd;
p: procedure(Handle: THandle; Path: PChar); stdcall;
begin
H := LoadLibrary(PChar('shdocvw.dll'));
if H <> 0 then
begin
p := GetProcAddress(H, PChar('DoOrganizeFavDlg'));
if Assigned(p) then p(Application.Handle, PChar(favpath));
end;
FreeLibrary(h);
end;