我用了一个win2000特有的api函数,我想让程序在98下也能运行?

abeng_2001 2002-02-09 01:16:24
我用了一个win2000特有的api函数SetLayeredWindowAttributes,设置窗体为半透明,
我想让程序在98下运行不出错(可以不用这个半透明效果),怎么办?
...全文
30 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
abeng_2001 2002-02-10
  • 打赏
  • 举报
回复
问题还没有解决,哪位高手能说的详细点?
limengchen 2002-02-10
  • 打赏
  • 举报
回复
最多只能保证在win98下不会出错(用预编译),想在win98下还能实现透明功能是不可能了。
Chice_wxg 2002-02-10
  • 打赏
  • 举报
回复
哦,对了,关于动态调用你可以看看我的这个帖子:

http://www.csdn.net/expert/topic/275/275790.xml


不过需要进行小的修改,如果会VC的话就很简单,呵呵

Chice_wxg 2002-02-10
  • 打赏
  • 举报
回复
TO mostar(晨曦)
//因该可以,微软的产品不都是向下兼容吗:)

所谓向下兼容,是指老系统的程序基本上都可以在新系统上运行。
不是说老系统就支持新系统的新功能。

Windows98里根本就没有这个API,你怎么调用?放弃吧,要不然自己写代码,自己实现。

NowCan 2002-02-10
  • 打赏
  • 举报
回复
win98下只能模拟半透明。我那里有个简单的办法。
http://nowcan.yeah.net
mostar 2002-02-09
  • 打赏
  • 举报
回复
因该可以,微软的产品不都是向下兼容吗:)
40Star 2002-02-09
  • 打赏
  • 举报
回复
Win98不支持的函数当然会报错
Chice_wxg 2002-02-09
  • 打赏
  • 举报
回复
Win98里不能用!

放弃吧
uguess 2002-02-09
  • 打赏
  • 举报
回复

使用预编译吧.

kkttcsd 2002-02-09
  • 打赏
  • 举报
回复
会出错
abeng_2001 2002-02-09
  • 打赏
  • 举报
回复
那我申明一个在98里没有的api函数,
程序在98里不会出错吗?
NowCan 2002-02-09
  • 打赏
  • 举报
回复
动态调用就可以,但我不会在VB里用。
LoadLibrary,GetProcAddress,FreeLibrary这三个函数可以搞定。
tg123 2002-02-09
  • 打赏
  • 举报
回复
Option Explicit

'以下为获取操作系统版本声明
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long 'Specifies the length, in bytes, of the structure.
dwMajorVersion As Long 'Major Version Number
dwMinorVersion As Long 'Minor Version Number
dwBuildNumber As Long 'Build Version Number
dwPlatformId As Long 'Operating System Running, see below
szCSDVersion As String * 128 'Windows NT: Contains a null-terminated string,
'such as "Service Pack 3", that indicates the latest
'Service Pack installed on the system.
'If no Service Pack has been installed, the string is empty.
'Windows 95: Contains a null-terminated string that provides
'arbitrary additional information about the operating system
End Type

Private Const hNull = 0

' dwPlatformId defines:
Public Enum enuOSVersion
VER_PLATFORM_WIN32s = 0 'Win32s on Windows 3.1.
VER_PLATFORM_WIN32_WINDOWS = 1 'Win32 on Windows 95 or Windows 98.
'For Windows 95, dwMinorVersion is 0.
'For Windows 98, dwMinorVersion is 1.
VER_PLATFORM_WIN32_NT = 2 'Win32 on Windows NT.
End Enum

Private Declare Function GetVersionExA Lib "kernel32" (lpVersionInformation As OSVERSIONINFO) As Integer

Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long

'获取操作系统版本
Function GetOSVersion(Optional sInfo As String) As enuOSVersion
'=======================================
'Returns the Operating System being used
'1 = Windows 95 / Windows 98
'2 = Windows NT
'=======================================
Dim osinfo As OSVERSIONINFO
Dim retvalue As Integer

With osinfo
.dwOSVersionInfoSize = 148
.szCSDVersion = Space$(128)
retvalue = GetVersionExA(osinfo)
GetOSVersion = .dwPlatformId
sInfo = "Version " & .dwMajorVersion & "." & .dwMinorVersion & " (Build " & .dwBuildNumber & ": " & StrZToStr(.szCSDVersion) & ")"
End With
End Function

Function GetRunApp() As String
Select Case GetOSVersion()
Case VER_PLATFORM_WIN32_WINDOWS
GetRunApp = GetRunApp95()
Case VER_PLATFORM_WIN32_NT
GetRunApp = GetRunAppNT()
End Select
End Function

function GetRunApp95()
9x代码
function GetRunAppNT()
2000代码

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧