Цитата:
Цитата garynich
С Ctrl+C у меня тоже ничего не получается. Использую NotePad++, в него название не вставляется. »
|
Я же уже написал, что не вставится и написал почему не вставится. Программистам Майкрософта было лень наряду с другими данными вставить в буфер обмена данные с форматом CF_UNICODETEXT. Но программно не составит труда проверить и если есть, то получить данные из формата CF_HDROP. Примерно таким способом (неужели я отвечаю программисту?):
читать дальше »
Код:
HANDLE Clipboard::GetData(UINT uFormat)
{
if (UseInternalClipboard)
{
if (InternalClipboardOpen)
{
for (size_t I=0; I < ARRAYSIZE(hInternalClipboard); ++I)
{
if (uInternalClipboardFormat[i] != 0xFFFF && uInternalClipboardFormat[i] == uFormat)
{
return hInternalClipboard[i];
}
}
}
return (HANDLE)nullptr;
}
return GetClipboardData(uFormat);
}
...
hClipData=GetData(CF_HDROP);
if (hClipData)
{
LPDROPFILES Files=reinterpret_cast<LPDROPFILES>(GlobalLock(hClipData));
if (Files)
{
LPCSTR StartA=reinterpret_cast<LPCSTR>(Files)+Files->pFiles;
LPCWSTR Start=reinterpret_cast<LPCWSTR>(StartA);
string strClipText;
if(Files->fWide)
{
while(*Start)
{
size_t l1=strClipText.GetLength();
strClipText+=Start;
Start+=strClipText.GetLength()-l1;
Start++;
if(*Start)
{
strClipText+=L"\r\n";
}
}
}
else
{
while(*StartA)
{
size_t l1=strClipText.GetLength();
strClipText+=StartA;
StartA+=strClipText.GetLength()-l1;
StartA++;
if(*StartA)
{
strClipText+=L"\r\n";
}
}
}
if(!strClipText.IsEmpty())
{
ClipText=reinterpret_cast<LPWSTR>(xf_malloc((strClipText.GetLength()+1)*sizeof(WCHAR)));
wcscpy(ClipText, strClipText);
}
GlobalUnlock(hClipData);
}
}
...
Цитата:
Цитата Morpheus
Спросим у автора темы, может ли он научить программу вычленять из кучи хлама нужное? »
|
Ээээ... А я думал, что программистам из MS было просто лень, а оказывается они мастера накидать кучу хлама! Среди которого трудно найти что-то нужное, да? :yes:
Может завяжем уже с упражнениями в остроумии? Блокнот не должен воспроизводить фильмы в HD качестве, к Блокноту вообще никаких претензий. Претензии к тому программисту, который делал копирование данных в буфер обмена при нажатии Ctrl+C из Explorer'а. Могли бы еще добавить и простой текстовый список файлов, было бы удобнее. Но не подумали/поленились/решили что оно никому не надо...