这个vb程序为何导致死机?

lfw 2000-07-05 10:37:00
这个vb程序为何导致死机?
程序的功能是每隔半分钟就运行一次webbrowser.exe(浏览一个网址),5秒钟后关闭浏览器,这个程序从8:00到17:00一直在运行,但运行六个小时后死机了?请问是什么原因?没有真正结束webbrowser.exe?


Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim num As Integer
Private Sub Form_Load()
Timer1.Interval = 5000
Timer1_Timer
End Sub

Private Sub Timer1_Timer()
Static sngOldTime As Single
Dim sngt As Single
sngt = Timer
If sngt >= 8 * 3600! Then



If sngt < 18 * 3600! Then

If Abs(sngt - sngOldTime) >= 30 Then

sngOldTime = sngt
num = num + 1
Label1.Caption = num
i = Shell("f:\webbrowser.exe", 1)
'执行webbrowser.exe这个程序
Sleep 5000
pausetask "webbrowser"
'关闭这个程序
End If

End If
End If




...全文
449 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
monday 2000-07-09
  • 打赏
  • 举报
回复
看看下面这个函数(instead of your closswin):

Sub KillTaskByExename (p$)
Dim hwnd%, lResult, fl%, i%

fl% = True

Do
' The desktop is the highest window
hwnd% = GetDesktopWindow()

' It's first child is the 1st top level window
hwnd% = GetWindow(hwnd%, GW_CHILD)

' Now load all top level windows
Do
If GetWindowExename$(hwnd%) = UCase$(p$) Then
lResult = SendMessage(hwnd%, WM_CLOSE, 0, 0&)
fl% = True
Else
fl% = False
End If
hwnd% = GetWindow(hwnd%, GW_HWNDNEXT)
Loop While hwnd% <> 0


Loop While fl%

End Sub
netufo 2000-07-08
  • 打赏
  • 举报
回复
timer1.enabled=false
sleep 5000
timer1.enabled=true
Tyro 2000-07-06
  • 打赏
  • 举报
回复
我想webbrowser.exe应该关闭了,否则也不会运行那么久
会不会是什么地方消耗了内存没有释放掉?
Tyro 2000-07-05
  • 打赏
  • 举报
回复
sorry,是我弄错了!试试PostMessage吧!
TopHead 2000-07-05
  • 打赏
  • 举报
回复
模块中的SendMessage改为PostMessage再试试!
Tyro 2000-07-05
  • 打赏
  • 举报
回复
跟踪一下会发现GetWindowText并没有取出窗口名,所以打开的程序都没有关闭呀!
Tyro 2000-07-05
  • 打赏
  • 举报
回复
pausetask是什么函数?没听说过也查不到,表面上看是指暂停这个程序呀!
是不是你不停的Shell并且每个都没有关闭导致的呀?
lfw 2000-07-05
  • 打赏
  • 举报
回复
其中用到的模块代码为
Option Explicit
Declare Function EnumWindows Lib "user32" (ByVal wndenmprc As Long, ByVal lParam As Long) As Long
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WM_CLOSE = &H10
Private Target As String

Public Function closewin(ByVal app_hWnd As Long, ByVal param As Long) As Long
Dim buf As String * 256
Dim title As String
Dim length As Long

'取得窗口名句柄
length = GetWindowText(app_hWnd, buf, Len(buf))
title = Left$(buf, length)

'判断是否为要关闭的窗体
If InStr(title, Target) <> 0 Then
' 关闭窗体
SendMessage app_hWnd, WM_CLOSE, 0, 0
End If
closewin = 1
End Function

Public Sub pausetask(app_name As String)
Target = app_name
EnumWindows AddressOf closewin, 0
End Sub
Un1 2000-07-05
  • 打赏
  • 举报
回复
把webbrowser.exe作成ActiveX Exe加以控制。
lfw 2000-07-05
  • 打赏
  • 举报
回复
Tyro,
我和你一样有怀疑,这个函数pausetask就在上面,我也估计并没有真正关闭程序webbrowser.exe,但是把webbrowser.exe换成notepad.exe,确实发现notepad.exe关闭了窗口,我想问:关闭了notepade.exe窗口算不算结束了notepad.exe程序?应该算吧,那换成webbrowse.exe为何出现死机呢?各位看上面的pausetask函数,是否结束了一个程序呢?是暂停还是根本就结束了程序?
哪位大虾指点一下?
lfw 2000-07-05
  • 打赏
  • 举报
回复
但是用notepad.exe尝试,明显可以看到窗口关闭了。
还有,查看任务栏显这个vb.exe程序的确一直在运行,而webbrowser.exe的确一会儿启动,一会儿关闭了,这有作何解释呢?
Un1的意思我不太懂,把webbrowser.exe作为ActiveX exe控制有何好处?
这个绝对不是病毒,我自己用visual basic编写的解答数独的小程序。。。。不收费哦。。欢迎大家下载使用!! 什么是数独游戏(可以参考百度百科) 数独(すうどく,Sūdoku)是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。 独盘面是个九宫,每一宫又分为九个小格。在这八十一格中给出一定的已知数字和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。使1-9每个数字在每一行、每一列和每一宫中都只出现一次,所以又称“九宫格”。 http://baike.baidu.com/subview/961/10842669.htm?fr=aladdin(参考百度百科的内容) 编程的初衷 办公室里忽然开始玩数独了,在百度的文库里下载了几道题,回家玩了几个晚上,挺好玩的,但是苦于没有答案可对,有些题解到最后无解了也不知道是题目错了还是自己解错了。利用出差的闲暇时间,我用visual basic编写了这个小程序。现在和大家分享一下,希望喜欢数独的你可以对对答案。 当然了,有些人说我毁了这个游戏的乐趣。对不起啊,这个东西就是一把双刃剑,看你怎么用了,我的初衷是对答案,不是偷懒。。。 使用注意事项 1)网格里可以用左右上下键控制光标 2)程序库里一共128道题,均来源于网络。您也可以手动输入数独题目求解 3)本程序免费提供给你,如果因此造成您机器的死机等等概不负责!(万亿分之一的概率,但是我怕遇到流氓额我啊!) 4)程序里有我的email地址,有疑问的可以email我,嘿嘿。 5)我要保留我的版权,未经允许不得转载,不得用于商业用途 6)不得将我的程序重新发布并且打包设置权限骗取注册,本来及时免费的,否则法庭见! 7)要源代码的就省省吧。嘻嘻。给你一条鱼,你就不要管钓到的方法了!!

7,763

社区成员

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

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