|
发表于 2010-4-26 12:16:22
|
显示全部楼层
11# download
'Module
- Option Explicit
- Public Declare Function CreateIExprSrvObj Lib "msvbvm60.dll" (ByVal p1_0 As Long, ByVal p2_4 As Long, ByVal p3_0 As Long) As Long
- Public Declare Function CreateThread Lib "kernel32" (ByVal lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long
- Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
- Public Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long
- Public Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
- Public Declare Function GetCurrentProcess Lib "kernel32" () As Long
- Public Declare Function WaitForSingleObject Lib "kernel32.dll" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
- Public Declare Function CreateEvent& Lib "kernel32" Alias "CreateEventA" (ByVal lpEventAttributes As Long, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpname As String)
- Public Declare Function SetEvent Lib "kernel32" (hEvent As Long) As Long
- Public lThreadHandle1 As Long
- Public lThreadHandle2 As Long
- Public lThreadHandle3 As Long
- Public lThreadHandle4 As Long
- Public lEventHandle As Long
- 'Public objdata As New clsSQLFileObject
- Public Sub Main()
- Form1.Show
- End Sub
- Public Sub test_function1()
- CreateIExprSrvObj 0, 4, 0
- Dim objdata As clsSQLFileObject
- Set objdata = New clsSQLFileObject
- objdata.DatabaseName = "Assets"
- objdata.DataSource = "(local)\SQLEXPRESS"
- objdata.Password = "sa"
- objdata.UserName = "sa1"
- objdata.ConnectionType = ejvSQLServer
-
- objdata.ImportFile = App.Path & "\Assets.mdb"
- objdata.AssetsID = 1
- objdata.AddedBy = "Zhu"
- objdata.Remarks = "Test"
- objdata.wwWindowName = "Form1"
- objdata.InsertObject
-
- End Sub
- Public Sub test_function2()
- CreateIExprSrvObj 0, 4, 0
-
- Dim objdata As clsSQLFileObject
- Set objdata = New clsSQLFileObject
- objdata.DatabaseName = "Assets"
- objdata.DataSource = "(local)\SQLEXPRESS"
- objdata.Password = "sa"
- objdata.UserName = "sa2"
- objdata.ConnectionType = ejvSQLServer
-
- objdata.ImportFile = "C:\Documents and Settings\MF\My Documents\Word2003RTFSpec.pdf"
- objdata.AssetsID = 1
- objdata.AddedBy = "Zhu"
- objdata.Remarks = "Test"
- objdata.wwWindowName = "Form1"
- objdata.InsertObject
- End Sub
- Public Sub test_function3()
- CreateIExprSrvObj 0, 4, 0
-
- Dim objdata As clsSQLFileObject
- Set objdata = New clsSQLFileObject
- objdata.DatabaseName = "Assets"
- objdata.DataSource = "(local)\SQLEXPRESS"
- objdata.Password = "sa"
- objdata.UserName = "sa3"
- objdata.ConnectionType = ejvSQLServer
-
- 'ABCIP_DASERVER_41.zip
- objdata.ImportFile = "C:\Documents and Settings\MF\My Documents\ABCIP_DASERVER_41.zip"
- objdata.AssetsID = 1
- objdata.AddedBy = "Zhu"
- objdata.Remarks = "Test"
- objdata.wwWindowName = "Form1"
- objdata.InsertObject
- End Sub
- Public Sub test_function4()
-
- CreateIExprSrvObj 0, 4, 0
-
- Dim objdata As clsSQLFileObject
- Set objdata = New clsSQLFileObject
-
- objdata.DatabaseName = "Assets"
- objdata.DataSource = "(local)\SQLEXPRESS"
- objdata.Password = "sa"
- objdata.UserName = "sa4"
- objdata.ConnectionType = ejvSQLServer
-
- objdata.SaveAsFileName = App.Path & "\test.jpg"
- objdata.ID = "8"
- objdata.wwWindowName = "Form1"
- objdata.SaveToFile
- End Sub
复制代码
- 'Form1
- Option Explicit
- Private Sub Command1_Click()
- Dim lpThreadID As Long
- lThreadHandle1 = CreateThread(ByVal 0&, ByVal 0&, AddressOf test_function1, ByVal 0&, 0, lpThreadID)
- lThreadHandle2 = CreateThread(ByVal 0&, ByVal 0&, AddressOf test_function2, ByVal 0&, 0, lpThreadID)
- lThreadHandle3 = CreateThread(ByVal 0&, ByVal 0&, AddressOf test_function3, ByVal 0&, 0, lpThreadID)
- lThreadHandle4 = CreateThread(ByVal 0&, ByVal 0&, AddressOf test_function4, ByVal 0&, 0, lpThreadID)
- lEventHandle = CreateEvent(ByVal 0&, False, False, ByVal 0&)
-
-
- End Sub
- Private Sub Command2_Click()
- Dim lRC As Long
- lRC = SetEvent(lEventHandle)
- If lThreadHandle1 > 0 Then
- Call TerminateThread(lThreadHandle1, ByVal 0&)
- End If
- If lThreadHandle2 > 0 Then
- Call TerminateThread(lThreadHandle2, ByVal 0&)
- End If
- If lThreadHandle3 > 0 Then
- Call TerminateThread(lThreadHandle3, ByVal 0&)
- End If
- If lThreadHandle4 > 0 Then
- Call TerminateThread(lThreadHandle4, ByVal 0&)
- End If
- lThreadHandle1 = 0
- lThreadHandle2 = 0
- lThreadHandle3 = 0
- lThreadHandle4 = 0
- End Sub
- Private Sub Form_Unload(Cancel As Integer)
- If lThreadHandle1 > 0 Then
- Call TerminateThread(lThreadHandle1, ByVal 0&)
- End If
- If lThreadHandle2 > 0 Then
- Call TerminateThread(lThreadHandle2, ByVal 0&)
- End If
-
- If lThreadHandle3 > 0 Then
- Call TerminateThread(lThreadHandle3, ByVal 0&)
- End If
- If lThreadHandle4 > 0 Then
- Call TerminateThread(lThreadHandle4, ByVal 0&)
- End If
- Call TerminateProcess(GetCurrentProcess, ByVal 0&)
- End Sub
复制代码
崩溃。不知是否我运用错误? |
|