On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 274
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.04.07 13:52. Заголовок: Как из хХарбора скопировать текст в буфер Windows ?


Всем привет.

Кто подскажет пример копирования текста в буфер обмена Windows и обратно, для чистого хХарбор ?
Заранее спасибо за ответ.


Спасибо: 0 
Профиль
Ответов - 6 [только новые]


модератор




Пост N: 468
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 07.04.07 19:26. Заголовок: Re:




#pragma BEGINDUMP

#define HB_OS_WIN_32_USED
#define _WIN32_WINNT 0x0400
#include <windows.h>
#include "hbapi.h"
#include "hbapiitm.h"

HB_FUNC ( COPY2CLIPBOARD )
{
HGLOBAL hglbCopy;
char * lptstrCopy;
char * cStr = hb_parc( 1 );
int nLen = strlen( cStr );


if ( !OpenClipboard( GetActiveWindow() ) )
return;

EmptyClipboard();

hglbCopy = GlobalAlloc( GMEM_DDESHARE, (nLen+1) * sizeof(TCHAR) );
if (hglbCopy == NULL)
{
CloseClipboard();
return;
}

// Lock the handle and copy the text to the buffer.

lptstrCopy = (char*) GlobalLock( hglbCopy );
memcpy( lptstrCopy, cStr, nLen * sizeof(TCHAR));
lptstrCopy[nLen] = (TCHAR) 0; // null character
GlobalUnlock(hglbCopy);

// Place the handle on the clipboard.
SetClipboardData( CF_TEXT, hglbCopy );

CloseClipboard();
}

#pragma ENDDUMP

Использование:

Copy2Clipboard('My Text')

Поздравляю с наступающей пасхой!


Спасибо: 0 
Профиль
постоянный участник




Пост N: 275
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.04.07 22:28. Заголовок: Re:


И тебя с пасхой.
Спасибо большое Григорий !
Выручил. Пойду "прикручивать" к своей проге.


Спасибо: 0 
Профиль
постоянный участник




Пост N: 276
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.04.07 07:00. Заголовок: Re:


Функция работает. Классно. Особенно если мемо-поля нужно копировать.
А теперь юзера спрашивают обратную операцию (и как я сам не подумал об этом).

Как из буфера обмена Windows считать данные ?

Заранее спасибо за ответ.

Спасибо: 0 
Профиль
постоянный участник




Пост N: 277
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.04.07 22:50. Заголовок: Re:


Григорий !!!
Выручи еще раз, дай пожалуйста обратную функцию - считывания из буфера обмена Windows в хХарбор.

заранее спасибо.


Спасибо: 0 
Профиль
модератор




Пост N: 475
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 24.04.07 14:56. Заголовок: Re:


Andrey пишет:

 цитата:
Как из буфера обмена Windows считать данные ?




#pragma BEGINDUMP

#define HB_OS_WIN_32_USED
#define _WIN32_WINNT 0x0400
#include <windows.h>
#include "hbapi.h"
#include "hbapiitm.h"

HB_FUNC ( RETRIVETEXTFROMCLIPBOARD )
{
if ( !OpenClipboard( GetActiveWindow() ) )
return;
hb_retc(GetClipboardData( CF_TEXT ));
CloseClipboard();
}

#pragma ENDDUMP

Использование:

cText := RetriveTextFromClipboard()



Спасибо: 0 
Профиль
постоянный участник




Пост N: 278
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.04.07 22:42. Заголовок: Re:


Спасибо Григорий !


Спасибо: 0 
Профиль
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 310
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет