Чтение ClipBoarda
От: Chaos Россия  
Дата: 18.02.02 14:06
Оценка:
Можно ли прочитать имена файлов помещенных в КлипБорд?

И еще:
И как можно полцчить Адрес из верхнего открытого Эксплорера?

Заранее благодарен
Re: Чтение ClipBoarda
От: Edward Россия  
Дата: 18.02.02 14:19
Оценка:
Здравствуйте Chaos, Вы писали:

C>Можно ли прочитать имена файлов помещенных в КлипБорд?


DragQueryFile

C>И еще:

C>И как можно полцчить Адрес из верхнего открытого Эксплорера?

C>Заранее благодарен


не совсем понятно, что имеется ввиду
Re[2]: Чтение ClipBoarda
От: Chaos Россия  
Дата: 18.02.02 17:15
Оценка:
Здравствуйте Edward, Вы писали:


C>>И еще:

C>>И как можно полцчить Адрес из верхнего открытого Эксплорера?

C>>Заранее благодарен


E>не совсем понятно, что имеется ввиду


Имеется ввиду по горячей клавише получить адрес експлорера на котором нажата горячая клавиша...
Re[2]: Чтение ClipBoarda
От: Chaos Россия  
Дата: 18.02.02 18:02
Оценка:
Здравствуйте Edward, Вы писали:

C>>Можно ли прочитать имена файлов помещенных в КлипБорд?


E>DragQueryFile


А поподробнее можно? Не очень понятно что передавать в первый параметр функции...
Если передать ClipBoard(), то ничего не получается... :(


int maxp=100;
char fName[100];
DragQueryFile(Clipboard(),0,fName,maxp);


Не возвращает fName :(

Why?
Re[3]: Чтение ClipBoarda
От: Patalog Россия  
Дата: 20.02.02 07:34
Оценка:
Здравствуйте Chaos, Вы писали:
[skip]
C>
C>int maxp=100;
C>char fName[100];
C>DragQueryFile(Clipboard(),0,fName,maxp);
C>


C>Не возвращает fName


C>Why?


Пример: (при условии, что "имена файлов помещенных в КлипБорд" помещены туда сомандой Copy\Cut в Explorere, т.е. в формате CF_HDROP)

BOOL res = ::OpenClipboard();
if(res) {
    HDROP drop = reinterpret_cast<HDROP>(::GetClipboardData(CF_HDROP));
    const int file_count = ::DragQueryFile(drop, 0xFFFFFFFF, NULL, 0);
    for (int i = 0; i < count; i++) {
                const int buf_size = ::DragQueryFile(drop, i, NULL, 0);
                char* file_name = new char[buf_size + 1]; // +1 - include null character
        ::DragQueryFile(drop, i, file_name, buf_size);
                //Do something with file_name
                delete [] file_name;
        }
        ::CloseClipboard();
}


ЗЫ. По идее для корректности нуна еще проверку IsClipboardFormatAvailable вставить... Ну да авось и так покатит
Почетный кавалер ордена Совка.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.