ник: Dmitry
http://hiprog.com/index.php?option=com_content&task=view&id=205
взял отсюда.
имеем след функцию
Function fnCLPSetData(sS As String) As String
Dim hGlobalMemory As Long, lpGlobalMemory As Long
Dim hClipMemory As Long, X As Long
' Allocate moveable global memory.
'-------------------------------------------
hGlobalMemory = GlobalAlloc(GHND, Len(sS) + 1)
' Lock the block to get a far pointer
' to this memory.
lpGlobalMemory = GlobalLock(hGlobalMemory)
' Copy the string to this global memory.
lpGlobalMemory = lstrcpy(lpGlobalMemory, sS)
' Unlock the memory.
If GlobalUnlock(hGlobalMemory) <> 0 Then
fnCLPSetData = ""
GoTo l_End
End If
' Open the Clipboard to copy data to.
If OpenClipboard(0&) = 0 Then
fnCLPSetData = ""
Exit Function
End If
' Clear the Clipboard.
X = EmptyClipboard()
' Copy the data to the Clipboard.
hClipMemory = SetClipboardData(CF_TEXT, hGlobalMemory)
l_End:
fnCLPSetData = sS
End Function
все отлично,но! несколько раз проработала нормально и забила видимо память. теперь при любой попытке что нить скопировать(не обязательно в бэйсике даже) ничего не происходит. а если это в бэйсике то падает ошибка "out of memory". как это обойти?
(правда против теории что память забилась есть 1 факт что по ктрл-v ничего не вставляется. но все же..)
странно что продублировалось и сообщение вначале темы.. но всеже.
хочу добавить что в Х(X = EmptyClipboard()) передается 1 то есть очистка отрабатывает нормально. вроде бы :)