Вопрос про корзину
Код:
#define WIN32_LEAN_AND_MEAN
#define _WIN32_WINNT 0x500
#include <windows.h>
#include <shellapi.h>
#include <Winuser.h>
SHQUERYRBINFO SHQueryRBInfo = { sizeof(SHQUERYRBINFO), 1, 1 };
HRESULT hr = SHQueryRecycleBin("D:\\", &SHQueryRBInfo);
if (SUCCEEDED(hr) )
{
int gg=IntToStr(SHQueryRBInfo.i64Size);
}
#define _WIN32_WINNT 0x500
#include <windows.h>
#include <shellapi.h>
#include <Winuser.h>
SHQUERYRBINFO SHQueryRBInfo = { sizeof(SHQUERYRBINFO), 1, 1 };
HRESULT hr = SHQueryRecycleBin("D:\\", &SHQueryRBInfo);
if (SUCCEEDED(hr) )
{
int gg=IntToStr(SHQueryRBInfo.i64Size);
}
В SHQueryRecycleBin пробывал и с:\\ и просто NULL. НЕ хочет возвращать количестао файлов в корзине и их объем.
Цитата: YanMin
Господа подскажите, что делаю не так, в MSDN вроде так
В SHQueryRecycleBin пробывал и с:\\ и просто NULL. НЕ хочет возвращать количестао файлов в корзине и их объем.
Код:
#define WIN32_LEAN_AND_MEAN
#define _WIN32_WINNT 0x500
#include <windows.h>
#include <shellapi.h>
#include <Winuser.h>
SHQUERYRBINFO SHQueryRBInfo = { sizeof(SHQUERYRBINFO), 1, 1 };
HRESULT hr = SHQueryRecycleBin("D:\\", &SHQueryRBInfo);
if (SUCCEEDED(hr) )
{
int gg=IntToStr(SHQueryRBInfo.i64Size);
}
#define _WIN32_WINNT 0x500
#include <windows.h>
#include <shellapi.h>
#include <Winuser.h>
SHQUERYRBINFO SHQueryRBInfo = { sizeof(SHQUERYRBINFO), 1, 1 };
HRESULT hr = SHQueryRecycleBin("D:\\", &SHQueryRBInfo);
if (SUCCEEDED(hr) )
{
int gg=IntToStr(SHQueryRBInfo.i64Size);
}
В SHQueryRecycleBin пробывал и с:\\ и просто NULL. НЕ хочет возвращать количестао файлов в корзине и их объем.
Код:
int gg=IntToStr(SHQueryRBInfo.i64Size);
Это к чему?
Код нормально работает:
Код:
SHQUERYRBINFO SHQueryRBInfo = { sizeof(SHQUERYRBINFO), 1, 1 };
HRESULT hr = SHQueryRecycleBin("C:\\Recycled", &SHQueryRBInfo);
if (SUCCEEDED(hr) )
{
int gg=SHQueryRBInfo.i64NumItems;
ShowMessage(IntToStr(gg));
}
HRESULT hr = SHQueryRecycleBin("C:\\Recycled", &SHQueryRBInfo);
if (SUCCEEDED(hr) )
{
int gg=SHQueryRBInfo.i64NumItems;
ShowMessage(IntToStr(gg));
}
Насчет этого согласен, просто раньше выводил в Label.
Но код все равно не работает ShowMessage(IntToStr(gg)); выдает 0.
Пробовал и "с:\\Recycled" и ”c:\\” и просто NULL не работает, все время выдает 0, хотя в корзине есть удаленные файлы со всех дисков. У меня XP, на работе выдает то же самое.
Цитата: YanMin
int gg=IntToStr(SHQueryRBInfo.i64Size);
Насчет этого согласен, просто раньше выводил в Label.
Но код все равно не работает ShowMessage(IntToStr(gg)); выдает 0.
Пробовал и "с:\\Recycled" и ”c:\\” и просто NULL не работает, все время выдает 0, хотя в корзине есть удаленные файлы со всех дисков. У меня XP, на работе выдает то же самое.
Насчет этого согласен, просто раньше выводил в Label.
Но код все равно не работает ShowMessage(IntToStr(gg)); выдает 0.
Пробовал и "с:\\Recycled" и ”c:\\” и просто NULL не работает, все время выдает 0, хотя в корзине есть удаленные файлы со всех дисков. У меня XP, на работе выдает то же самое.
Перд тем как выложить код я его проверил и протестировал. У меня нормально выводит количество и размер файлов. Указывать можно просто корень диска - нормально отрабатывает. Так что проверяй свой код - скорей всего ошибка в нем.
Не знаю в чем прикол, но у меня не работает. Причем компилил на трех разных машинах – результат один. Попробовал снести и заново поставить Builder – не помогло. Винду дергать не хочется. Похоже я что-то не так делаю, но что. Может глянете мой код и разъясните, где я накололся.
Цитата: YanMin
Не знаю в чем прикол, но у меня не работает. Причем компилил на трех разных машинах – результат один. Попробовал снести и заново поставить Builder – не помогло. Винду дергать не хочется. Похоже я что-то не так делаю, но что. Может глянете мой код и разъясните, где я накололся.
Ну глянул. код работает. :)
Тогда я не знаю:mad: У меня этот код не работает на трех разных машинах. Бред какой-то. Что может быть. Какие мысли.
Цитата: YanMin
Тогда я не знаю:mad: У меня этот код не работает на трех разных машинах. Бред какой-то. Что может быть. Какие мысли.
На трех разных машинах - какая ось? Надеюсь не 95/98/Миллениум? :)
Везде XP. А подскажите мой проект компилили или мой exe-к запустился с правильным отображением результатов?
Цитата: YanMin
Везде XP. А подскажите мой проект компилили или мой exe-к запустился с правильным отображением результатов?
Я не запускаю *.ехе-файлы которые получены из не проверенного источника. Был скомпилирован твой проект без каких либо изменений. При выводе программа отобразила мессагу - "2 2" - два файла было в данный момент в корзине.
Попробовал запустить код на Visual Studio, Delphi, Borland Developer Studio 2006 все работает.
Косяк с C ++ Builder 6.0. Возможно в нем надо что-то не так объявлять, либо сама сборка корявая, у меня 10.157.
Кто, что знает по этому поводу. Может подскажете где найти нормальный билд.
Он здесь: http://rxlib.ru/Downl/Downl.htm
Респект и уважуха, все заработало.
Ларчик просто открывался.:)