Open "C:\tmp1.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, Find_FileName11
N = N + 1
Loop
Close #1
Label1 = N
本來N應該是839
在我的XP系統電腦上,N的結果會時常變化,有12,2,58,……等等結果
但是在我的WIN7系統中,卻一值保持839,這是為什么呢???
uj5u.com熱心網友回復:
Shell "cmd /c dir " & P_Setting_Path & "/s/b/a >>" & P_Tmp_PathName, vbHide
P_Setting_Path="搜索的文憑件夾"
P_Tmp_PathName=“生成的TXT檔案名”
其實是上面這陳述句的問題,它在XP系統上,不是讀取所有的檔案名后再生成TXT檔案,而是讀了一部分檔案名后就存入,所以此時讀資料就會慢慢增加,最終才會讀出全部的檔案,
針對以上問題,如何解決呢?
uj5u.com熱心網友回復:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Private Const STILL_ACTIVE As Long = &H103
Private Const PROCESS_QUERY_INFORMATION As Long = &H400
Private Sub Command1_Click()
Dim pID As Long
Dim hProcess As Long
Dim lpExitCode As Long
'pID = Shell("C:\程式.exe", vbNormalFocus)
pID = Shell("d:\windows\system32\notepad.exe", vbNormalFocus)
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 0, pID)
'以下等待被呼叫的行程結束
Do While True
Call Sleep(100) '此句用來釋放等待期間CPU資源
Call GetExitCodeProcess(hProcess, lpExitCode)
If lpExitCode <> STILL_ACTIVE Then
CloseHandle (hProcess)
Exit Do
End If
DoEvents '此句保證主程式視窗的繪制
Loop
MsgBox "被呼叫的行程運行結束!"
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/98185.html
標籤:VB基礎類
下一篇:怎么樣實時獲取一個程式產生的資料
