Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 1240
Благодарности: 275

Профиль | Отправить PM | Цитировать


Цитата 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 было просто лень, а оказывается они мастера накидать кучу хлама! Среди которого трудно найти что-то нужное, да?

Может завяжем уже с упражнениями в остроумии? Блокнот не должен воспроизводить фильмы в HD качестве, к Блокноту вообще никаких претензий. Претензии к тому программисту, который делал копирование данных в буфер обмена при нажатии Ctrl+C из Explorer'а. Могли бы еще добавить и простой текстовый список файлов, было бы удобнее. Но не подумали/поленились/решили что оно никому не надо...

Отправлено: 15:00, 30-03-2012 | #13