Как очистить корзину?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
i_mark
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 28.02.2003 (Пт) 14:08
Откуда: Russia

Как очистить корзину?

Сообщение i_mark » 02.04.2003 (Ср) 9:25

Подскажите. Наверняка функция какая-нибудь есть.

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 02.04.2003 (Ср) 9:44

Вездесущий API-Guide. пример из него
Код: Выделить всё
Const SHERB_NOCONFIRMATION = &H1
Const SHERB_NOPROGRESSUI = &H2
Const SHERB_NOSOUND = &H4
Private Type ULARGE_INTEGER
  LowPart As Long
  HighPart As Long
End Type
Private Type SHQUERYRBINFO
  cbSize As Long
  i64Size As ULARGE_INTEGER
  i64NumItems As ULARGE_INTEGER
End Type
Private Declare Function SHEmptyRecycleBin Lib "shell32.dll" Alias "SHEmptyRecycleBinA" (ByVal hwnd As Long, ByVal pszRootPath As String, ByVal dwFlags As Long) As Long
Private Declare Function SHUpdateRecycleBinIcon Lib "shell32.dll" () As Long
Private Declare Function SHQueryRecycleBin Lib "shell32.dll" Alias "SHQueryRecycleBinA" (ByVal pszRootPath As String, pSHQueryRBInfo As SHQUERYRBINFO) As Long
Private Sub Form_Load()
    'KPD-Team 2000
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim RBinInfo As SHQUERYRBINFO, Msg As VbMsgBoxResult
    RBinInfo.cbSize = Len(RBinInfo)
    SHQueryRecycleBin vbNullString, RBinInfo
    If (RBinInfo.i64Size.LowPart And &H80000000) = &H80000000 Or RBinInfo.i64Size.HighPart > 0 Then
        Msg = MsgBox("Your Recycle Bin consumes over 2 gigabytes right now!" + vbCrLf + "Do you want to empty it?", vbYesNo + vbQuestion)
    Else
        Msg = MsgBox("Your Recycle Bin consumes" + Str$(RBinInfo.i64Size.LowPart) + " bytes right now." + vbCrLf + "Do you want to empty it?", vbYesNo + vbQuestion)
    End If
    If Msg = vbYes Then
        SHEmptyRecycleBin Me.hwnd, vbNullString, 0
        SHUpdateRecycleBinIcon
    End If
End Sub
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

i_mark
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 28.02.2003 (Пт) 14:08
Откуда: Russia

Сообщение i_mark » 02.04.2003 (Ср) 11:25

Спасибо! Все ясно.

i_mark
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 28.02.2003 (Пт) 14:08
Откуда: Russia

Сообщение i_mark » 02.04.2003 (Ср) 16:23

Оказалось не все ясно. Как избавиться от вылезающего вопроса, хочу ли действительно удалить оттуда все.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 02.04.2003 (Ср) 16:25

Читаем описание функции в MSDN:



dwFlags

One or more of the following values: SHERB_NOCONFIRMATION No dialog box confirming the deletion of the objects will be displayed.

SHERB_NOPROGRESSUI No dialog box indicating the progress will be displayed.

SHERB_NOSOUND No sound will be played when the operation is complete.

i_mark
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 28.02.2003 (Пт) 14:08
Откуда: Russia

Сообщение i_mark » 02.04.2003 (Ср) 16:26

Ага, сам, кажется, нашел.

i_mark
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 28.02.2003 (Пт) 14:08
Откуда: Russia

Сообщение i_mark » 02.04.2003 (Ср) 16:27

Вот, RayShade, успел.

winnydows
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 12.02.2006 (Вс) 2:38

Сообщение winnydows » 02.05.2006 (Вт) 2:51

А как очистить корзину в VB.NET (2005) ? Me.hwnd выдаёт "Is Not A Member Of ..."

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.05.2006 (Вт) 6:33

Судя по второму предложению, прежде чем начать писать на VB .NET, автору вопроса следует почитать ту массу статей (на русском, между прочим, языке), в которой описываются различия vb .net и vb6. Потом, как следующий шаг, научиться пользоваться клавишей F2.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

winnydows
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 12.02.2006 (Вс) 2:38

Сообщение winnydows » 02.05.2006 (Вт) 20:27

Как и бошьшинство топиков на этом форуме ничего кроме посылания. Видимо просто изза того что не знают как решить проблему. Если не знаете не пишите. Я задал конкретный вопрос и хочу услышать конкретный ответ. Если кто то уже знает как почему бы просто не сказать , а не выёжваться в миллионный раз упоминая MSDN.
По поводу предыдущего вопроса: каким интерестно местом Object Browser поможет для изучения Native DLL ?
По теме (корзина): Object Browser слегка помог. Может не совсем правильно конечно или совсем не правильно, но корзина стала очищаться. Только дебагер ругается:
A call to PInvoke function 'OSManager!OSManager.Clean::SHEmptyRecycleBin' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature.

Hwnd получаю таким вот кривым способ:
Код: Выделить всё
Public Class Clean
    Private Declare Function SHEmptyRecycleBin Lib "shell32.dll" Alias "SHEmptyRecycleBinA" (ByVal hwnd As Long, ByVal pszRootPath As String, ByVal dwFlags As Long) As Long

    Public ReadOnly Property Hwnd() As System.IntPtr
        Get
        End Get
        'Set(ByVal value As System.IntPtr)
        'End Set
    End Property

    Sub EmptyRecycleBin()
        SHEmptyRecycleBin(Me.Hwnd, vbNullString, 0)
    End Sub
End Class

Вопрос , как это сделать правильно чтобы дебагер заткнулся ?
Последний раз редактировалось winnydows 02.05.2006 (Вт) 21:21, всего редактировалось 1 раз.

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 02.05.2006 (Вт) 21:07

winnydows
А ты заплатил за конкретный ответ? Почему мы должны тратить время для нахождения за тебя конкретного ответа на твой конкретный вопрос. Тебе сказали где искать уже.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 02.05.2006 (Вт) 21:23

winnydows, почитай.
Конкретно для тебя процитирую один абзац.
Часто тот, кто посылает один из подобных ответов, имеет под рукой руководство или web-страницу с необходимой вам информацией, и смотрит на нее, когда набирает ответ. Эти ответы означают, что, по его мнению, во-первых, необходимую вам информацию легко найти и, во-вторых, вы большему научитесь при поиске информации, чем если вам ее преподнесут под нос на тарелочке.
Вас это не должно возмущать; по хакерским стандартам, он оказал вам достаточное уважение уже тем, что не проигнорировал вопрос. Вы должны поблагодарить ответившего за его отеческую доброту.
Lasciate ogni speranza, voi ch'entrate.

winnydows
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 12.02.2006 (Вс) 2:38

Сообщение winnydows » 02.05.2006 (Вт) 21:25

@FAKK2
Ты что то напутал. Это ФОРУМ , а не суппорт.Или это форум за деньги ? И трятят время тут кому это интерестно, но тут видимо только любители пофлудить.

@alibek
Я уже не один день копаю эту тему и в MSDN и вообще в инете. И написал сюда как в последнюю инстацию. Что нельзя просто сказать что не знаете ? Чего всякую херню то писать ?

@all
Название ветки ни о чём не говорит "Visual Basic для новичков" ?
Почему по вашему мнению новичёк должен всё знать ещё не успев научиться ? Имеется ввиду Visual Basic.

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 02.05.2006 (Вт) 21:51

winnydows
Именно этим форум и отличается от суппорта. В суппорте тебе платят за то что бы ты отвечал на все, даже самые тупые вопросы. А форум это чисто добровольное занятие и право же по десять раз повторять одно и то же надоедает.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.05.2006 (Ср) 3:27

winnydows
Видимо, подход к самообразованию у нас отличается.

Я бы, если бы перед мной встала проблема поиска hwnd в .net, почитал бы те статьи, на которые я тебе указал. И там я бы нашёл, как теперь называется hwnd в .net. Дя тех, кто не умеет/не хочет/не любит/не знает как искать, могу дать полную ссылку: http://msdn.microsoft.com/library/rus/v ... sicnet.asp
Как нетрудно убедиться, полная ссылка принадлежит той части дерева, на которое была дана ссылка изначально.
Хочу подчеркнуть, что её нахождение не зависит от знаний VB. Только здравый смысл и умение пользоваться кнопкой Найти.
Да, на этом форуме тебя скорее будут заставлять думать, чем дадут ответ. Если это неприемлемо, других форумов тоже немало.

Но даже если бы я не нашёл статью, я бы взял код на VB, вызывал бы студийный Upgrade Wizard, проапгрейдил бы код и увидел бы всё, что требуется.

А F2 - как раз для изучения свойств класса Form, а не native dll.


А замена long на integer - это вообще настолько базовый момент, что стоит забыть о своём "задал конкретный вопрос и хочу получить конкретный ответ", потому что конкретный ответ, при наличии таких пробелов, не поможет. Начни таки читать приведённую документацию с начала.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.05.2006 (Ср) 10:00

Я бы еще дал замечание за брань. Вырежь, пока еще не поздно.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 40

    TopList