Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Найти и открыть файл / 25 сообщений из 154, страница 1 из 7
08.11.2010, 15:05
    #36942555
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
вопрос думаю для многих важный и хоть кто-то обязан знать: мне нужно найти(провести поиск во всех папках и дисках) файл Skype.exe и затем запустить его. принцип:при запуске прога в невидимом режиме находит файлы с таким именем и сама запускает первый попавшийся файл. заранее спс
...
Рейтинг: 0 / 0
08.11.2010, 15:19
    #36942617
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
> Автор: BelowZero
> вопрос думаю для многих важный

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

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

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

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
08.11.2010, 15:58
    #36942771
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
BelowZeroвопрос думаю для многих важный и хоть кто-то обязан знать: мне нужно найти(провести поиск во всех папках и дисках) файл Skype.exe и затем запустить его. принцип:при запуске прога в невидимом режиме находит файлы с таким именем и сама запускает первый попавшийся файл. заранее спс

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

Потом "шелиш"ь коллекцию.Вуаля.
Пожалуйста.
...
Рейтинг: 0 / 0
08.11.2010, 16:04
    #36942792
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
BelowZero, и главное это надо строго на ВБ или ВБА????
...
Рейтинг: 0 / 0
08.11.2010, 16:06
    #36942801
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
может сразу аналог Скайпа написать на ВБА, да ещё получше, чтобы была фунция с Ворда звонить???
...
Рейтинг: 0 / 0
08.11.2010, 16:41
    #36942926
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
Это надо в VB6 и чисто код чтоб открыть скайп в какой бы папке он не был. а что и зачем мне открывать пожалуйста оставьте решать мне. ведь вещь элементарная но я новичок а вы по-любому это знаете. ещё раз заранее спс
...
Рейтинг: 0 / 0
08.11.2010, 16:43
    #36942936
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
BelowZero,

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

Но сначала поищите тут по фразе "перебор папок" - сто раз уже вопрос обсуждался.
Запуск приложения - Shell
...
Рейтинг: 0 / 0
08.11.2010, 16:48
    #36942954
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
BelowZero, а если этого файла вообще нет на компе, тогда что??
Выполнить, будет Shell, далее адрес и файл
Shell "C:\Program Files\skype.exe
...
Рейтинг: 0 / 0
08.11.2010, 16:52
    #36942964
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
Ципихович ЭндрюBelowZero, а если этого файла вообще нет на компе, тогда что??
Выполнить, будет Shell, далее адрес и файл
Shell "C:\Program Files\skype.exe
почитай плиз что я писал... я знаю как открыть файл. но у разных людей скайп(Skype.exe) находится в разных местах
...
Рейтинг: 0 / 0
08.11.2010, 16:54
    #36942971
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
BelowZero,

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

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

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

Просить мало, надо включить мозг.
...
Рейтинг: 0 / 0
08.11.2010, 16:55
    #36942973
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
ShamanusBelowZeroвопрос думаю для многих важный и хоть кто-то обязан знать: мне нужно найти(провести поиск во всех папках и дисках) файл Skype.exe и затем запустить его. принцип:при запуске прога в невидимом режиме находит файлы с таким именем и сама запускает первый попавшийся файл. заранее спс

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

Потом "шелиш"ь коллекцию.Вуаля.
Пожалуйста.
То что нужно! можешь написать код? он вроде не длинный. плз
...
Рейтинг: 0 / 0
08.11.2010, 16:55
    #36942974
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
Shamanus надо включить мозг.или кошелек
...
Рейтинг: 0 / 0
08.11.2010, 17:01
    #36942990
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
найденные(ый) файлы скайп аккуратно записываются в листбокс... а как тогда его открыть?О_о
...
Рейтинг: 0 / 0
08.11.2010, 17:12
    #36943020
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
BelowZeroнайденные(ый) файлы скайп аккуратно записываются в листбокс... а как тогда его открыть?О_о пользуйте SRC и Spoiler

Я верно понял вопрос, нужно получить некоторый элемент листбокса?
в зависимости от среды
Код: plaintext
x=lstFiles.Text
этот код вернет выделенный элемент листбокса
...
Рейтинг: 0 / 0
08.11.2010, 17:17
    #36943030
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
Shamanus,

я нуб в VB6. я знаю что и как мне нужно делать но код для этого у меня никак не выходит( напиши готовый код как я понял в нём ведь только 2 строчки. спс
...
Рейтинг: 0 / 0
08.11.2010, 17:23
    #36943037
Ципихович Эндрю
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
BelowZero,

вот код длинный но работающий!!!!!, гланое Option Explicit есть!!!!
Что то вроде этого, не подойдёт
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
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
...
Рейтинг: 0 / 0
08.11.2010, 17:24
    #36943042
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
BelowZero,

так вместо того, чтобы добавлять их в листбокс, надо shell-ом запустить первый найденный файл и все
...
Рейтинг: 0 / 0
08.11.2010, 17:25
    #36943044
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
Ципихович ЭндрюЧто то вроде этого, не подойдёт
верно утверждаешь, не подойдет - тут нет рекурсивного просмотра папок
...
Рейтинг: 0 / 0
08.11.2010, 17:28
    #36943051
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
BelowZeroнапиши готовый код
Shamanusпросишь написать код за тебя... тогда все просто - 3 тысячи рублей - торг уместен номер кошелька вебмани или банковский перевод?
...
Рейтинг: 0 / 0
08.11.2010, 17:32
    #36943065
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
так вместо того, чтобы добавлять их в листбокс, надо shell-ом запустить первый найденный файл и все
Как?)
я знаю как провести рекурсивный поиск знаю как открывают файл... а как совместить?) ((знаю нублю но все когда-то с чего-то начинали))
...
Рейтинг: 0 / 0
08.11.2010, 17:35
    #36943067
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
BelowZero,

а мне кажется в твоем коде твоего нет. Нашел пример в интернете и себе его приписываешь.
Если я неправ объясни мне зачем нужна функция TrimNull?
...
Рейтинг: 0 / 0
08.11.2010, 17:37
    #36943073
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
ShamanusBelowZero,

а мне кажется в твоем коде твоего нет. Нашел пример в интернете и себе его приписываешь.
Если я неправ объясни мне зачем нужна функция TrimNull?
да я просто нашёл в инете готовый код в котором много лишнего и ненужного но он хотя б работает... если б я сам мог написать я б не спрашивал советов...
...
Рейтинг: 0 / 0
08.11.2010, 17:39
    #36943080
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
Shamanus ты столько исписал предложениями купить код и проверками моего знания VB6 сколько хватило бы на 3 нужных мне кода... не проще просто помочь новичку?)
...
Рейтинг: 0 / 0
08.11.2010, 17:41
    #36943084
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
Нет

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
08.11.2010, 17:42
    #36943086
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти и открыть файл
BelowZeroда я просто нашёл в инете готовый код в котором много лишнего и ненужного но он хотя б работает... если б я сам мог написать я б не спрашивал советов...

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

Место где в коде элементы кладутся в листбокс
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
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

выделенная часть кода это добавление записи в лист бокс. Удали эту строку и запускай шелом файл (имя файла и путь к нему выглядит так
Код: plaintext
Path & TrimNull(WFD.cFileName 
)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Найти и открыть файл / 25 сообщений из 154, страница 1 из 7
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]