Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Проблема с захватом оконной процедуры Экселя.
 
Не получается переопределить оконную процедуру Экселя.  
Public Const GWL_WNDPROC = -4  
 
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Long) As Long  
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long  
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long  
 
Sub SetNewWindProc()  
Dim hWnd As Long  
hWnd = Application.hWnd  
OldWindowProc = GetWindowLong(hWnd, GWL_WNDPROC)  
OldWindowProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf WindowProc)  
End Sub  
 
Public Function WindowProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long  
'Пока ничего не делаем  
WindowProc = CallWindowProc(NewWindowProc, hWnd, Msg, wParam, lParam)  
End Function  
 
OldWindowProc  в обоих случаях возвращает отрицательное значение и, как следствие, после вызова SetWindowLong Excel погибает. Для задания/получения других свойств окна, не GWL_WNDPROC, всё работает нормально.
Прочитать поле, содержащее и текст и данные через ODBC
 
Имеется книга с данными. Какое-то поле содержит и текст и числа. При подключении к этой таблице через ODBC с поля читаются только числа. Как можно прочитать всё, не внося никаких изменений в книгу 2 ?
Задачи со звёздочкой (*)
 
Предлагаю создать такую тему, где любители "посушить мозги" могли бы отвести душу! :-) А то простые и однотипные вопросы уже поднадоели :-)  
 
И так, предлагаю задуматься вот над чем:  
Все знают игру "Балда" (её можно найти в играх на Меил.ру, если войти в почту), а в наше время её называли "Республика". Есть квадратная матрица , в центре которой написано слово. Требуется, добавляя одну букву рядом с другими, образовать новое слово, чтобы оно было как можно длиннее. Уточнить условие игры можно на mail.ru. Вот такая вот на мой взгляд интересная и непростая задачка ;-)
Страницы: 1
Наверх