在ASP中能不能调用winapi,在线等待,现在我只有这些分了,问题回答好了,我可以以后再给大家继续增加

luckyhongyu 2002-06-29 10:27:58
我现在在VB中编写了一个DLL,代码如下:
'''=====用VB创建ActiveX DLL,工程名为ITGroup,类模块名称Monitor
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)


Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long

Private Const WM_CLOSE = &H10
Private Const WM_SYSCOMMAND = &H112
Const SC_CLOSE = &HF060


Public Function SndMsg()
Dim dwnd As Long
Dim rval As Long
Dim i As Integer
'Find a window having caption VBFinished
dwnd = FindWindow(vbNullString, "我的电脑")
If dwnd Then
rval = SendMessage(dwnd, WM_SYSCOMMAND, SC_CLOSE, 0)
End If
End Function
'定义我们自己的一个组件方法
Public Function HelloWorld()
HelloWorld = "<H1>Hello,World!</H1>"
End Function

Public Sub getWindow(strServerWindowName As String)
Dim ThWnd As Long '后台窗口句柄
'获取后台服务程序的句柄hWnd
ThWnd = 0
ThWnd = FindWindow(vbNullString, strServerWindowName)
rp.Write "<b>" & strServerWindowName & "</b>=" & CStr(ThWnd)
End Sub

这里有我自己定义的函数也有winapi函数,我在ASP中是这样调用的:

dim aa
set aa=server.creatobject("itgroup.monitor")
response.write aa.helloworld
aa.sndmsg
set aa=nothing

执行的时候,其中response.write aa.helloworld能正确执行,但是aa.sndmsg就不可以了(如果执行的话,结果应该是先找到“我的电脑”这个窗口,然后关掉),是不是在ASP中不能调用winapi或者说我的调用方法不对呢,请大家帮帮忙,我现在只有这些分了,以后我可以再加的?如果能调用的话,可不可以给个具体的例子。帮帮忙

...全文
33 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
julyclyde 2002-06-29
  • 打赏
  • 举报
回复
asp以IUSR匿名身份运行,只能关闭同是IUSR用户的程序
julyclyde 2002-06-29
  • 打赏
  • 举报
回复

在组件服务中,可以指定DLL以某用户身份运行
shanhe 2002-06-29
  • 打赏
  • 举报
回复
将这个DLL配置成COM+组件就可以

28,392

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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