Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Visual Basic Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7   вперед  Ctrl      все
 Найти и открыть файл  [new]
BelowZero
Member [заблокирован]

Откуда: я выпускник... грустно...
Сообщений: 1708
вопрос думаю для многих важный и хоть кто-то обязан знать: мне нужно найти(провести поиск во всех папках и дисках) файл Skype.exe и затем запустить его. принцип:при запуске прога в невидимом режиме находит файлы с таким именем и сама запускает первый попавшийся файл. заранее спс
8 ноя 10, 15:05    [9742428]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
Игорь Горбонос
Member

Откуда: Днепропетровск
Сообщений: 4236

> Автор: BelowZero
> вопрос думаю для многих важный

совсем не правильно думаешь! т.е. абсолютно не правильно!

> и хоть кто-то обязан знать: мне нужно найти(провести поиск во

Это знают многие, но не понятно зачем искать скайп? Лучше коллекцию видео каталогизировать. Или фото. А скайп не
интересно.

Posted via ActualForum NNTP Server 1.4

8 ноя 10, 15:19    [9742549]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
Shamanus
Member

Откуда: мы пришли, кто мы, куда идем?
Сообщений: 6010
Блог
BelowZero
вопрос думаю для многих важный и хоть кто-то обязан знать: мне нужно найти(провести поиск во всех папках и дисках) файл Skype.exe и затем запустить его. принцип:при запуске прога в невидимом режиме находит файлы с таким именем и сама запускает первый попавшийся файл. заранее спс


в цикле перебираешь каталоги и папки с глубинным погружением (используй рекурсию) и сверяешь имя файла с маской. Пихаешь в коллекцию.

Потом "шелиш"ь коллекцию.Вуаля.
Пожалуйста.
8 ноя 10, 15:58    [9742916]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
Ципихович Эндрю
Member [заблокирован]

Откуда: Челябинская область
Сообщений: 2711
BelowZero, и главное это надо строго на ВБ или ВБА????
8 ноя 10, 16:04    [9742960]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
Ципихович Эндрю
Member [заблокирован]

Откуда: Челябинская область
Сообщений: 2711
может сразу аналог Скайпа написать на ВБА, да ещё получше, чтобы была фунция с Ворда звонить???
8 ноя 10, 16:06    [9742987]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
BelowZero
Member [заблокирован]

Откуда: я выпускник... грустно...
Сообщений: 1708
Это надо в VB6 и чисто код чтоб открыть скайп в какой бы папке он не был. а что и зачем мне открывать пожалуйста оставьте решать мне. ведь вещь элементарная но я новичок а вы по-любому это знаете. ещё раз заранее спс
8 ноя 10, 16:41    [9743281]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 18990
BelowZero,

Вы пока не задали ни одного вопроса.
Пока только была фраза "мне нужно"
это что значит - написать за вас?
есть вопросы - задавайте, тогда не будете получать дурацких комментариев.

Но сначала поищите тут по фразе "перебор папок" - сто раз уже вопрос обсуждался.
Запуск приложения - Shell
8 ноя 10, 16:43    [9743304]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
Ципихович Эндрю
Member [заблокирован]

Откуда: Челябинская область
Сообщений: 2711
BelowZero, а если этого файла вообще нет на компе, тогда что??
Выполнить, будет Shell, далее адрес и файл
Shell "C:\Program Files\skype.exe
8 ноя 10, 16:48    [9743333]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
BelowZero
Member [заблокирован]

Откуда: я выпускник... грустно...
Сообщений: 1708
Ципихович Эндрю
BelowZero, а если этого файла вообще нет на компе, тогда что??
Выполнить, будет Shell, далее адрес и файл
Shell "C:\Program Files\skype.exe

почитай плиз что я писал... я знаю как открыть файл. но у разных людей скайп(Skype.exe) находится в разных местах
8 ноя 10, 16:52    [9743365]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
Shamanus
Member

Откуда: мы пришли, кто мы, куда идем?
Сообщений: 6010
Блог
BelowZero,

найти файл на диске можно тысячей разных способов.

Как мы тут поняли ты уже попробовал одним из них и у тебя не получается какая то часть. Выложи тот код что написал, поможем подправить.

А пока ты просишь написать код за тебя... тогда все просто - 3 тысячи рублей - торг уместен. Другие могут подешевле сделать, но сильно не выгадаешь.

Просить мало, надо включить мозг.
8 ноя 10, 16:54    [9743384]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
BelowZero
Member [заблокирован]

Откуда: я выпускник... грустно...
Сообщений: 1708
Shamanus
BelowZero
вопрос думаю для многих важный и хоть кто-то обязан знать: мне нужно найти(провести поиск во всех папках и дисках) файл Skype.exe и затем запустить его. принцип:при запуске прога в невидимом режиме находит файлы с таким именем и сама запускает первый попавшийся файл. заранее спс


в цикле перебираешь каталоги и папки с глубинным погружением (используй рекурсию) и сверяешь имя файла с маской. Пихаешь в коллекцию.

Потом "шелиш"ь коллекцию.Вуаля.
Пожалуйста.

То что нужно! можешь написать код? он вроде не длинный. плз
8 ноя 10, 16:55    [9743390]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
Shamanus
Member

Откуда: мы пришли, кто мы, куда идем?
Сообщений: 6010
Блог
Shamanus
надо включить мозг.
или кошелек
8 ноя 10, 16:55    [9743391]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
BelowZero
Member [заблокирован]

Откуда: я выпускник... грустно...
Сообщений: 1708
вот код длинный но работающий
Option Explicit

Private Const INVALID_HANDLE_VALUE = -1
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10
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 Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
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 StopSearch As Boolean

Private Sub SearchForFiles(fName As String, Path As String)
If StopSearch = True Then Exit Sub
Dim Atr As Integer
Dim hFnd As Long
Dim WFD As WIN32_FIND_DATA
hFnd = FindFirstFile(Path & fName, WFD)
If hFnd = INVALID_HANDLE_VALUE Then Exit Sub
Do
Atr = (WFD.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY)
If TrimNull(WFD.cFileName) <> "." And TrimNull(WFD.cFileName) <> ".." Then
If Atr > 0 Then
lstFiles.AddItem "[" & Path & TrimNull(WFD.cFileName) & "]"
Else
lstFiles.AddItem Path & TrimNull(WFD.cFileName)
End If
End If
Loop While FindNextFile(hFnd, WFD)
FindClose hFnd
End Sub

Private Sub SearchForFolders(fName As String, Path As String, File As String)
If StopSearch = True Then Exit Sub
Dim Atr As Integer
Dim hFnd As Long
Dim WFD As WIN32_FIND_DATA
hFnd = FindFirstFile(Path & fName, WFD)
If hFnd = INVALID_HANDLE_VALUE Then Exit Sub
SearchForFiles File, Path
Do
Atr = (WFD.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY)
If TrimNull(WFD.cFileName) <> "." And TrimNull(WFD.cFileName) <> ".." Then
If Atr > 0 Then
DoEvents
SearchForFolders fName, Path & TrimNull(WFD.cFileName) & "\", File
End If
End If
Loop While FindNextFile(hFnd, WFD)
FindClose hFnd
End Sub

Private Sub cmdFind_Click()
StopSearch = False
Dim tmp As String
lstFiles.Clear
If Len(txtWhat) = 0 Then Exit Sub
If Len(txtWhere) < 3 Then Exit Sub
If Mid$(txtWhere, Len(txtWhere), 1) <> "\" Then txtWhere = txtWhere & "\"
If Len(txtWhere & txtWhat & vbNullString) > MAX_PATH Then MsgBox "Äëèíà çàïðîñà ïîèñêà íå äîëæíà ïðåâûøàòü 260 ñèìâîëîâ.", vbCritical, Caption: Exit Sub
Screen.MousePointer = 13
cmdFind.Enabled = False
cmdStop.Enabled = True
stsBar.Panels("status").Text = "Ïîèñê ïðîäîëæàåòñÿ..."
SearchForFolders "*", txtWhere, txtWhat & vbNullString
stsBar.Panels("status").Text = "Ïîèñê çàêîí÷åí, íàéäåíî: " & lstFiles.ListCount & " ôàéëîâ è ïàïîê."
Screen.MousePointer = 0
cmdFind.Enabled = True
cmdStop.Enabled = False
End Sub

Private Function TrimNull(Start As String) As String
Dim Pos As Integer
Pos = InStr(Start, Chr$(0))
If Pos Then
TrimNull = Left$(Start, Pos - 1)
Exit Function
End If
TrimNull = Start
End Function

Private Sub cmdStop_Click()
StopSearch = True
End Sub

Private Sub Form_Load()
txtWhere = App.Path & "\"
End Sub

Private Sub Form_Unload(Cancel As Integer)
If cmdFind.Enabled = False Then Cancel = True
End Sub
найденные(ый) файлы скайп аккуратно записываются в листбокс... а как тогда его открыть?О_о
8 ноя 10, 17:01    [9743436]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
Shamanus
Member

Откуда: мы пришли, кто мы, куда идем?
Сообщений: 6010
Блог
BelowZero
найденные(ый) файлы скайп аккуратно записываются в листбокс... а как тогда его открыть?О_о
пользуйте SRC и Spoiler

Я верно понял вопрос, нужно получить некоторый элемент листбокса?
в зависимости от среды
x=lstFiles.Text
этот код вернет выделенный элемент листбокса
8 ноя 10, 17:12    [9743529]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
BelowZero
Member [заблокирован]

Откуда: я выпускник... грустно...
Сообщений: 1708
Shamanus,

я нуб в VB6. я знаю что и как мне нужно делать но код для этого у меня никак не выходит( напиши готовый код как я понял в нём ведь только 2 строчки. спс
8 ноя 10, 17:17    [9743563]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
Ципихович Эндрю
Member [заблокирован]

Откуда: Челябинская область
Сообщений: 2711
BelowZero,

вот код длинный но работающий!!!!!, гланое Option Explicit есть!!!!
Что то вроде этого, не подойдёт
Dim Папка_где_ищем_файлы As String
Dim Искомая_часть_имени_файла As String
Dim Файл_в_папке_g As String

Папка_где_ищем_файлы = "D:\1111"
Искомая_часть_имени_файла = "144"
Set Объект = CreateObject("Scripting.FileSystemObject")
Set Путь_к_объектам = Объект.GetFolder(Папка_где_ищем_файлы)
Set Файлы_в_папке = Путь_к_объектам.Files
For Each File In Файлы_в_папке
Имя_файла_g_в_папке = File.Name
Next
8 ноя 10, 17:23    [9743604]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 18990
BelowZero,

так вместо того, чтобы добавлять их в листбокс, надо shell-ом запустить первый найденный файл и все
8 ноя 10, 17:24    [9743618]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 18990
Ципихович Эндрю
Что то вроде этого, не подойдёт

верно утверждаешь, не подойдет - тут нет рекурсивного просмотра папок
8 ноя 10, 17:25    [9743627]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
Shamanus
Member

Откуда: мы пришли, кто мы, куда идем?
Сообщений: 6010
Блог
BelowZero
напиши готовый код

Shamanus
просишь написать код за тебя... тогда все просто - 3 тысячи рублей - торг уместен
номер кошелька вебмани или банковский перевод?
8 ноя 10, 17:28    [9743652]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
BelowZero
Member [заблокирован]

Откуда: я выпускник... грустно...
Сообщений: 1708
так вместо того, чтобы добавлять их в листбокс, надо shell-ом запустить первый найденный файл и все
Как?)
я знаю как провести рекурсивный поиск знаю как открывают файл... а как совместить?) ((знаю нублю но все когда-то с чего-то начинали))
8 ноя 10, 17:32    [9743692]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
Shamanus
Member

Откуда: мы пришли, кто мы, куда идем?
Сообщений: 6010
Блог
BelowZero,

а мне кажется в твоем коде твоего нет. Нашел пример в интернете и себе его приписываешь.
Если я неправ объясни мне зачем нужна функция TrimNull?
8 ноя 10, 17:35    [9743711]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
BelowZero
Member [заблокирован]

Откуда: я выпускник... грустно...
Сообщений: 1708
Shamanus
BelowZero,

а мне кажется в твоем коде твоего нет. Нашел пример в интернете и себе его приписываешь.
Если я неправ объясни мне зачем нужна функция TrimNull?

да я просто нашёл в инете готовый код в котором много лишнего и ненужного но он хотя б работает... если б я сам мог написать я б не спрашивал советов...
8 ноя 10, 17:37    [9743733]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
BelowZero
Member [заблокирован]

Откуда: я выпускник... грустно...
Сообщений: 1708
Shamanus ты столько исписал предложениями купить код и проверками моего знания VB6 сколько хватило бы на 3 нужных мне кода... не проще просто помочь новичку?)
8 ноя 10, 17:39    [9743757]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
Игорь Горбонос
Member

Откуда: Днепропетровск
Сообщений: 4236

Нет

Posted via ActualForum NNTP Server 1.4

8 ноя 10, 17:41    [9743766]     Ответить | Цитировать Сообщить модератору
 Re: Найти и открыть файл  [new]
Shamanus
Member

Откуда: мы пришли, кто мы, куда идем?
Сообщений: 6010
Блог
BelowZero
да я просто нашёл в инете готовый код в котором много лишнего и ненужного но он хотя б работает... если б я сам мог написать я б не спрашивал советов...


честность лучшее оружие

+ Место где в коде элементы кладутся в листбокс
Option Explicit

Private Const INVALID_HANDLE_VALUE = -1
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10
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 Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
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 StopSearch As Boolean

Private Sub SearchForFiles(fName As String, Path As String)
If StopSearch = True Then Exit Sub
Dim Atr As Integer
Dim hFnd As Long
Dim WFD As WIN32_FIND_DATA
hFnd = FindFirstFile(Path & fName, WFD)
If hFnd = INVALID_HANDLE_VALUE Then Exit Sub
Do
Atr = (WFD.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY)
If TrimNull(WFD.cFileName) <> "." And TrimNull(WFD.cFileName) <> ".." Then
If Atr > 0 Then
lstFiles.AddItem "[" & Path & TrimNull(WFD.cFileName) & "]"
Else
lstFiles.AddItem Path & TrimNull(WFD.cFileName)
End If
End If
Loop While FindNextFile(hFnd, WFD)
FindClose hFnd
End Sub

Private Sub SearchForFolders(fName As String, Path As String, File As String)
If StopSearch = True Then Exit Sub
Dim Atr As Integer
Dim hFnd As Long
Dim WFD As WIN32_FIND_DATA
hFnd = FindFirstFile(Path & fName, WFD)
If hFnd = INVALID_HANDLE_VALUE Then Exit Sub
SearchForFiles File, Path
Do
Atr = (WFD.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY)
If TrimNull(WFD.cFileName) <> "." And TrimNull(WFD.cFileName) <> ".." Then
If Atr > 0 Then
DoEvents
SearchForFolders fName, Path & TrimNull(WFD.cFileName) & "\", File
End If
End If
Loop While FindNextFile(hFnd, WFD)
FindClose hFnd
End Sub

Private Sub cmdFind_Click()
StopSearch = False
Dim tmp As String
lstFiles.Clear
If Len(txtWhat) = 0 Then Exit Sub
If Len(txtWhere) < 3 Then Exit Sub
If Mid$(txtWhere, Len(txtWhere), 1) <> "\" Then txtWhere = txtWhere & "\"
If Len(txtWhere & txtWhat & vbNullString) > MAX_PATH Then MsgBox "Äëèíà çàïðîñà ïîèñêà íå äîëæíà ïðåâûøàòü 260 ñèìâîëîâ.", vbCritical, Caption: Exit Sub
Screen.MousePointer = 13
cmdFind.Enabled = False
cmdStop.Enabled = True
stsBar.Panels("status").Text = "Ïîèñê ïðîäîëæàåòñÿ..."
SearchForFolders "*", txtWhere, txtWhat & vbNullString
stsBar.Panels("status").Text = "Ïîèñê çàêîí÷åí, íàéäåíî: " & lstFiles.ListCount & " ôàéëîâ è ïàïîê."
Screen.MousePointer = 0
cmdFind.Enabled = True
cmdStop.Enabled = False
End Sub

Private Function TrimNull(Start As String) As String
Dim Pos As Integer
Pos = InStr(Start, Chr$(0))
If Pos Then
TrimNull = Left$(Start, Pos - 1)
Exit Function
End If
TrimNull = Start
End Function

Private Sub cmdStop_Click()
StopSearch = True
End Sub

Private Sub Form_Load()
txtWhere = App.Path & "\"
End Sub

Private Sub Form_Unload(Cancel As Integer)
If cmdFind.Enabled = False Then Cancel = True
End Sub

выделенная часть кода это добавление записи в лист бокс. Удали эту строку и запускай шелом файл (имя файла и путь к нему выглядит так
Path & TrimNull(WFD.cFileName 
)
8 ноя 10, 17:42    [9743775]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7   вперед  Ctrl      все
Все форумы / Visual Basic Ответить