Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: MSDN Добавлено: 27.09.02 19:47  

Автор вопроса:  Smith | ICQ: adamis@list.ru 
Что такое MSDN и для чего она нужна?

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 MAGNUS



Вопросов: 12
Ответов: 430
 Профиль | | #1 Добавлено: 27.09.02 19:54

Отрок! Слышал ли ты когда нибудь выражение RTFM ? :)

Вот MSDN и есть эта самая FM

MicroSoft Developer Network

База знаний, мануалка...

Ответить

Номер ответа: 2
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #2
Добавлено: 27.09.02 20:12

Попробуй, может поможет.

За все файловые операции отвечает функция SHFileOperation, которую мы и будем беспощадно использовать. Сначала объявим. (Сразу предупрежу — объявление берите отсюда. У меня в API Viewer'e оно почему-то было неправильное… Пришлось самому переписать:)

Private Declare Function SHFileOperation Lib "Shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

“Что-то мало тут параметров” — скажет внимательный читатель. И будет прав, их мало, всего один… Зато какой. То есть, этой функции передается некая структура, которая перед вызовом определенным образом заполняется. Смотрим структуру (API Viewer)

Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As String
End Type

Ага. Вот тут-то собака и порылась. По порядку.
hwnd - handle вызывающего окна.
wFunc - собственно, что делать будем?
pFrom - а откуда?
pTo - и куда?
fFlags - особенные фичи
fanyOperationsAborted - возвращается, если нас прервали…
bNameMappings - долго объяснять, этот параметр нам не особо нужен :)
lpszProgressTitle - заголовок окна

Так, тут вроде все понятно. hWnd у нас всегда есть, а вот остальное… Привожу пример.

Option Explicit
Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As String
End Type
Private Declare Function SHFileOperation Lib "Shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Sys As SHFILEOPSTRUCT
Private Const FO_COPY = &H2&
Private Const FO_DELETE = &H3&
Private Const FO_MOVE = &H1&
Private Const FO_RENAME = &H4&
Private Const FOF_SILENT = &H4
Private Const FOF_SIMPLEPROGRESS = &H100
Private Const FOF_NOCONFIRMATION = &H10
Private Const FOF_NOCONFIRMMKDIR = &H200
Private Const FOF_RENAMEONCOLLISION = &H8

Private Sub Form_Load()
Me.Show
Sys.wFunc = FO_MOVE
Sys.pFrom = "c:\temp\*.*"
Sys.pTo = "d:\temp"
Sys.hwnd = Form1.hwnd
Sys.fFlags = FOF_SIMPLEPROGRESS
Call SHFileOperation(Sys)
End Sub

Вопросы? То есть, после заполнения структуры, мы получим результат, а именно, вызовем функцию, и она нам все сделает. Самое интересное, так это флаги, которые она поддерживает. Пишу список…

FOF_NOCONFIRMATION Говорит "Да для всех" на все тупые вопросы
FOF_NOCONFIRMMKDIR Не спрашивает, надо ли создавать папку, если это нужно.
FOF_RENAMEONCOLLISION Переименовывать файл, если такое имя уже есть.
FOF_SILENT Молчать как рыба, то есть не выводить никаких окошек.
FOF_SIMPLEPROGRESS Показывать окошко с процессом выполнения.

Ответить

Номер ответа: 3
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #3
Добавлено: 27.09.02 20:24

Прошу прощения, это для Левона

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам