Автор | Сообщение |
|
| постоянный участник
|
Пост N: 295
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.07.07 22:50. Заголовок: Где можно взять примеры работы с OLE Open Office
Всем привет. В связи с борьбой с пиратами нужно переползать на открытый ОФИС. А как работать с этим OLE в хХарборе - я не знаю. Может кто-нибудь поделиться примерами ? Заранее благодарю.
|
|
|
Ответов - 34
, стр:
1
2
All
[только новые]
|
|
|
| Администратор
|
Пост N: 555
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.07.07 07:44. Заголовок: Re:
Неоднократно уже давал этот пример в самых разных местах Function BrwToZxc(oB) // ------------------------------------------------------------- // Экспорт обьекта Browse в OpenOffice Calc // ------------------------------------------------------------- Local oStarManager, oStarDesktop, oDocument, oSheet, oRange Local nRow := 1, nCol, nCol2, nMerge, oCol, cGrid Local acHead := {}, lFoot := .f., x, ser Local nStyle oStarManager := NewOle('com.sun.star.ServiceManager') if oStarManager # nil Begin sequence oStarDesktop := oStarManager:createInstance('com.sun.star.frame.Desktop') oDocument := oStarDesktop:LoadComponentFromURL(; 'private:factory/scalc',; '_blank',; 0,; {}) oSheet:=oDocument:Sheets:getByIndex(0) nRow := 1 for nCol := 1 TO oB:ColCount oCol := oB:GetColumn(nCol) oRange := oSheet:getCellByPosition(nCol-1, nRow-1) if ! Empty(oCol:oHeader:aTitles[nRow]) oRange:SetString(OemToAnsi(oCol:heading)) zcCellBorder(oRange, 9) endif next if nRow > 0 zcCellBorder(oSheet:getCellRangeByPosition(0,0,oB:ColCount-1,0), 8) zcCellBorder(oSheet:getCellRangeByPosition(0,nRow-1,oB:ColCount-1,nRow-1), 9) oSheet:TitleRows:StartRow := 1 oSheet:TitleRows:EndRow := nRow oSheet:PrintTitleRows := .t. endif oB:GoTop() while ! oB:HitBottom nRow++ for nCol := 1 to oB:ColCount oCol := oB:GetColumn(nCol) x := Eval(oCol:Block) if ! Empty(x) .and. ValType(x) == 'C' .and. ! Empty(Val(StrTran(x, "'", ''))) x := Val(StrTran(x, "'", '')) elseif ValType(x)=='D' x := DTOC(x) endif if oCol:cargo # nil .and. len(oCol:cargo) >= 6 .and.; ValType(oCol:cargo[6]) == 'C' .and. oCol:cargo[6] = '$' oSheet:getCellByPosition(nCol-1, nRow-1):NumberFormat := 2 endif if ! Empty(x) if ValType(x) == 'C' oSheet:getCellByPosition(nCol-1, nRow-1):SetString(x) else oSheet:getCellByPosition(nCol-1, nRow-1):SetValue(x) endif endif next oB:Down() enddo if oB:lFoots nRow++ zcCellBorder(oSheet:getCellRangeByPosition(0,nRow-1,oB:ColCount-1,nRow-1), 8) for nCol := 1 to oB:ColCount if ! Empty(oB:GetColumn(nCol):footing) x := oB:GetColumn(nCol):footing if ! Empty(Val(StrTran(x, "'", ''))) x := Val(StrTran(x, "'", '')) // elseif oB:GetColumn(nCol):nAjuste = 38 // x := Val(x) endif oSheet:getCellByPosition(nCol-1, nRow-1):SetString(x) endif next endif for nCol := 1 to oB:ColCount oSheet:getColumns():getByIndex(nCol-1):OptimalWidth := .t. next end endif Return nil Static func zcCellBorder(oRange, nNSEW) Local oBorder := oRange:TableBorder Local oLine if nNSEW == 8 oLine := oBorder:TopLine elseif nNSEW == 9 oLine := oBorder:BottomLine elseif nNSEW == 10 oLine := oBorder:RightLine elseif nNSEW == 7 oLine := oBorder:LeftLine endif oLine:OuterLineWidth := 10 oLine:InnerLineWidth := 0 if nNSEW == 8 oBorder:TopLine := oLine elseif nNSEW == 9 oBorder:BottomLine := oLine elseif nNSEW == 10 oBorder:RightLine := oLine elseif nNSEW == 7 oBorder:LeftLine := oLine endif oRange:TableBorder := oBorder Return nil
|
|
|
|
| Администратор
|
Пост N: 557
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.07.07 08:50. Заголовок: Re:
|
|
|
|
| постоянный участник
|
Пост N: 296
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.07.07 12:09. Заголовок: Re:
Паша, спасибо большое.
|
|
|
|
| Администратор
|
Пост N: 558
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.07.07 12:26. Заголовок: Re:
Не заметил, еще нужна функция: Static func NewOle(cServer) Local oServer, hObj Begin sequence hObj := CreateOleObject( cServer ) if OleError() == 0 oServer := TOleAuto():new( hObj ) #ifdef __HARBOUR__ oServer:cClassName := cServer #endif endif end if oServer == nil Alert('Ошибка инициализации OLE:' + cServer) endif Return oServer если что-то выдираешь из своей библиотеки, обязательно попадется какая-то нестандартная функция
|
|
|
|
| Администратор
|
Пост N: 559
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.07.07 14:22. Заголовок: Re:
Вот сам наконец-то решил оседлать OO-writer, и еще маленький примерчик Задача: открыть документ и на место закладки вставить значение func OOWriter(cFile, cBookmark, cValue) Local oStarManager, oStarDesktop, oDocument Local oBookmarks, oBookmark cFile := StrTran(cFile, "\", "/") cFile := StrTran(cFile, " ", "%20") cFile := "file:///" + cFile oStarManager := NewOle('com.sun.star.ServiceManager') if oStarManager # nil Begin sequence oStarDesktop := oStarManager:createInstance('com.sun.star.frame.Desktop') oDocument := oStarDesktop:LoadComponentFromURL(; cFile,'_blank', 0, {}) oBookmarks := oDocument:getBookmarks() oBookmark := oBookmarks:GetByName(cBookmark) oBookMark:getAnchor:setString(cValue) retu nil
|
|
|
|
| постоянный участник
|
Пост N: 297
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.07.07 21:25. Заголовок: Re:
Спасибо большое, Паша !!! А можно ли одновременно установить OpenOffice и MsOffice ? И как тогда это вместе будет работать ?
|
|
|
|
| |
Пост N: 775
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.07.07 21:35. Заголовок: Re:
Andrey пишет: цитата: | А можно ли одновременно установить OpenOffice и MsOffice ? |
| Вот и пробни ;)
|
|
|
|
| постоянный участник
|
Пост N: 298
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.07.07 22:20. Заголовок: Re:
Спасибо Дима за добрые пожелания...., а я то думал что сие мне делать не придется ....
|
|
|
|
| Администратор
|
Пост N: 560
Зарегистрирован: 23.05.05
|
|
Отправлено: 26.07.07 12:20. Заголовок: Re:
конечно можно я в своих программах в тулбаре помещаю 2 кнопки - экспорт в эксель и оо-калк если соответствующий офис установлен, работает, ну а на нет суда нет
|
|
|
|
| |
Пост N: 18
Зарегистрирован: 31.05.07
|
|
Отправлено: 30.07.08 15:37. Заголовок: Добрый день уважаемы..
Добрый день уважаемые! А может кто нибудь подсказать, как узнать закончил SCalc печатать файл или нет? Просто столкнулся с проблемой во время закрытия документа с параметрами Hidden = .t., который был отправлен на печать. Может у кого ссылка есть на мануал про эту тему или просто кусочек кода завалялся??? Помогите, плиз...
|
|
|
|
| |
Пост N: 19
Зарегистрирован: 31.05.07
|
|
Отправлено: 01.08.08 09:00. Заголовок: Корректировочки
Ну соврал малость... свойства HIDDEN это было сделано на ООо Васике, в его родной среде цитата: | DIM oProperty AS NEW com.sun.star.beans.PropertyValue SET oProperty.Name = "Hidden" SET oProperty.Value = True |
| Так у меня и не получилось на xHb создать невидимый документ Может у кого получилось? подскажите пожалуйста... а по поводу предидущего сообщения нашел коечто http://www.oooforum.org/forum/viewtopic.phtml?t=4922 ... по крайней мере узнал как это делать из-под ООо Васика.
|
|
|
|
|
| Администратор
|
Пост N: 954
Зарегистрирован: 23.05.05
|
|
Отправлено: 01.08.08 12:34. Заголовок: spair2k пишет: Ну с..
spair2k пишет: цитата: | Ну соврал малость... свойства HIDDEN это было сделано на ООо Васике, в его родной среде цитата: DIM oProperty AS NEW com.sun.star.beans.PropertyValue SET oProperty.Name = "Hidden" SET oProperty.Value = True Так у меня и не получилось на xHb создать невидимый документ Может у кого получилось? подскажите пожалуйста... |
| oStarDesktop := oStarManager:createInstance('com.sun.star.frame.Desktop') oProperty := oServiceMamager:bridge_GetStruct("com.sun.star.beans.PropertyValue") oProperty:Name := "Hidden" oProperty:Value := .T. Return oStarDesktop:LoadComponentFromURL(; cFile, '_blank', 0, {oProperty})
|
|
|
|
| постоянный участник
|
Пост N: 146
Зарегистрирован: 13.10.05
|
|
Отправлено: 09.08.09 10:19. Заголовок: OpenOffice уже отк..
OpenOffice уже открывается. А как открыть имеющийся файл или шаблон для заполнения?
|
|
|
|
| Администратор
|
Пост N: 1198
Зарегистрирован: 23.05.05
|
|
Отправлено: 10.08.09 08:23. Заголовок: Vlad04 пишет: А как..
Vlad04 пишет: цитата: | А как открыть имеющийся файл или шаблон для заполнения? |
| oStarManager := TOleAuto():New('com.sun.star.ServiceManager') oStarDesktop := oStarManager:createInstance('com.sun.star.frame.Desktop') cFile := StrTran(cFile, "\", "/") cFile := StrTran(cFile, " ", "%20") cFile := "file:///" + cFile aProps := {} oStarDesktop:LoadComponentFromURL(; cFile, '_blank', 0, aProps)
|
|
|
|
| |
Пост N: 146
Зарегистрирован: 05.10.06
|
|
Отправлено: 26.02.16 12:40. Заголовок: А как можно вставить..
А как можно вставить картинку в ячейку и отформатировать ячейку в размер картинки с привязкой картинки к ячейке?
|
|
|
|
| |
Пост N: 147
Зарегистрирован: 05.10.06
|
|
Отправлено: 27.02.16 17:44. Заголовок: как вставить картинк..
как вставить картинку разобрался: Скрытый текст oFrame:=oDocument:CurrentController:Frame dispatcher:=oStarManager:createInstance("com.sun.star.frame.DispatchHelper") arg1:=oStarDesktop:bridge_GetStruct("com.sun.star.beans.PropertyValue") arg2:=oStarDesktop:bridge_GetStruct("com.sun.star.beans.PropertyValue") arg3:=oStarDesktop:bridge_GetStruct("com.sun.star.beans.PropertyValue") arg1:Name:="FileName" arg1:Value:="file:///D:/IMAGE/24.JPG" arg2:Name:="FilterName" arg2:Value:="JPEG - Joint Photographic Experts Group" arg3:Name:="AsLink" arg3:Value:=.F. arg:={arg1,arg2,arg3} dispatcher:executeDispatch(oFrame,".uno:InsertGraphic","",0,arg)
| А вот отформатировать ее по размеру не получается. Может кто знает как можно это сделать?
|
|
|
|
| |
Пост N: 5489
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.02.16 18:07. Заголовок: MIKHAIL Возможно на..
|
|
|
|
| |
Пост N: 148
Зарегистрирован: 05.10.06
|
|
Отправлено: 16.03.16 13:22. Заголовок: После работы с докум..
После работы с документом, закрываю его oDoc:close(.t.), но Open Office висит в памяти и блокирует временные фалы. Если же закрывать приложение через oStarDesktop:terminate() то он закрывает и другие открытые документы (writer и calc ). Как корректно закрывать процесс вызванный именно работой приложения и не затрагивать остальные открытые документы ?
|
|
|
|
| |
Пост N: 179
Зарегистрирован: 21.04.13
|
|
Отправлено: 16.03.16 22:18. Заголовок: Документация...
|
|
|
|
| постоянный участник
|
Пост N: 4958
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.06.16 18:27. Заголовок: Есть исходник 2007г...
Есть исходник 2007г. вызова Open Office на хХарборе. Работает до сих пор. Перетащил на МиниГуи - вешает задачу намертво. Подскажите пожалуйста, где ошибка ? Скрытый текст /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= От: Логошный Сергей <?????@yandex.ru> Кому: мне Написано: 16 августа 2007 г., 9:18:59 Тема: OpenOffice. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */ FUNCTION OpenWriter(cFile) LOCAL oDoc, oApp , oDeskTop, aPr, aProp, oPr, oProperty LOCAL bLastHandler, objLocal, cMsg, FileURL FileURL:='file://localhost/'+StrTran(cFile,'\','/') /* пробовал так делать - не пошло тоже cFile := StrTran(cFile, "\", "/") cFile := StrTran(cFile, " ", "%20") FileURL:= "file://" + cFile */ MsgDebug( cFile , FileURL ) // создаём окно ожидания с потоком //WaitThreadCreate( 'Вызываю Open Office...' ) bLastHandler := ERRORBLOCK( { | objErr | MyHandler( objErr, .T.) }) BEGIN SEQUENCE oApp:= TOleAuto():new("com.sun.star.ServiceManager") RECOVER USING objLocal cMsg := "Не могу запустить - Open Office !;; (Не установлен на этом компьютере !);" MsgStop(cMsg,"Ошибка!") RETURN NIL END ERRORBLOCK( bLastHandler ) // "Запускаю - Open Office !;; (Найден на этом компьютере !);" oDeskTop:=oApp:createInstance("com.sun.star.frame.Desktop") aProp:=Array(1) aPr:=Array(1) oProperty:=oApp:Bridge_GetStruct("com.sun.star.beans.PropertyValue") oProperty:Name:= "AsTemplate" oProperty:Value:= .T. aProp[1]:=oProperty oDoc:=oDeskTop:LoadComponentFromURL(FileURL,"_blank", 0,aProp) oPr:=oApp:Bridge_GetStruct("com.sun.star.beans.PropertyValue") oPr:Name:="FilterName" oPr:Value:="Rich Text Format" aPr[1]:=oPr oDoc:storeAsURL(FileURL,aPr) //WaitThreadClose() // закрыть окно "ожидания" RETURN '' FUNCTION MyHandler (objError, lLocalHandler) IF lLocalHandler BREAK objError ENDIF RETURN NIL
|
|
|
|
|
| |
Пост N: 160
Зарегистрирован: 05.10.06
|
|
Отправлено: 18.08.16 17:52. Заголовок: Andrey пишет: "..
Andrey пишет: у меня так "file:///"
|
|
|
|
|
| Администратор
|
Пост N: 3574
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.07.17 16:12. Заголовок: Хозяйке на заметку (..
Хозяйке на заметку (полезные рецепты): В OpenOffice Calc пожно заполнять значения сразу диапазону ячеек, состоящему из нескольких строк. Пример (несамодостаточный): ... nRow := 10 nCol := 1 oRange := oSheet:getCellRangeByPosition(nCol-1, nRow-1, nCol+1, nRow) oRange:setDataArray({{1,2,"Example"},{4,5,"fill"}}) Причем для OO не надо создавать двумерный массив, как это требует MS Excel, а достаточно передать одномерный массив Variant, каждый элемент которого является подмассовом, как это и делает harbour hbwin
|
|
|
|
| постоянный участник
|
Пост N: 5969
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.07.18 18:14. Заголовок: Всем привет. Как зак..
Всем привет. Как закрыть Эксель, знаю: oExcel:Application:Quit() А как закрыть OO Calc незнаю. Может кто подскажет ? И ещё один вопрос по Калку. Как окно с Калком вывести на передний план ? В Экселе это просто: hWnd := oExcel:hWnd // хендл окна Excel ShowWindow( hWnd, 6 ) // MINIMIZE windows ShowWindow( hWnd, 3 ) // MAXIMIZE windows BringWindowToTop( hWnd ) // a window on the foreground
|
|
|
|
| Администратор
|
Пост N: 3778
Зарегистрирован: 23.05.05
|
|
Отправлено: 19.07.18 08:17. Заголовок: Andrey пишет: А как..
Andrey пишет: цитата: | А как закрыть OO Calc незнаю. Может кто подскажет ? |
| гугль сразу же подсказал: oDoc:close(.t.)
|
|
|
|
| постоянный участник
|
Пост N: 5972
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.07.18 12:17. Заголовок: Pasha пишет: oDoc:c..
Pasha пишет: СПАСИБО ! А как быть со вторым вопросом ?
|
|
|
|
| |
Пост N: 6876
Зарегистрирован: 17.05.05
|
|
Отправлено: 19.07.18 13:32. Заголовок: Andrey пишет: А как..
Andrey пишет: цитата: | А как быть со вторым вопросом ? |
| Помнится ты с MS WORD тоже долго парился на эту тему , попробуй в нее заглянуть , мож поможет.
|
|
|
|
| постоянный участник
|
Пост N: 5973
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.07.18 14:25. Заголовок: Не, не то... Как пол..
Не, не то... Как получить хендл окна с Калком ? Для Экселя так: hWnd := oExcel:hWnd // хендл окна Excel
|
|
|
|
| |
Пост N: 6877
Зарегистрирован: 17.05.05
|
|
Отправлено: 19.07.18 14:30. Заголовок: Andrey Попробуй гуг..
Andrey Попробуй гугл спросить Вот тут обсуждали тему тут
|
|
|
|
| постоянный участник
|
Пост N: 5974
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.07.18 17:32. Заголовок: Спасибо Дима. Код п..
Спасибо Дима. Код перевести не смог. Сделал по старинке - перебором окон, как для Ворда. Только срабатывает код ОДИН раз, если есть открытое окно уже с Калком, то повторный перевод окна на передний план не срабатывает. По ссылке что ты дал, там об этом и говорилось. Кому интересно, вот код: Скрытый текст
.... If lActivate oDoc:getCurrentController:getFrame:getContainerWindow:setVisible( .t. ) SetCalcWindowToForeground(cFile) Else oDoc:close(.t.) // закрыть Calc EndIf RETURN Nil ////////////////////////////////////////////////////////////////////// // окно Calc на передний план STATIC FUNCTION SetCalcWindowToForeground(cFile) LOCAL hWnd, cTitle // поиск ХЕНДЛА открытого окна документа cTitle := hb_FNameNameExt(cFile) + " - OpenOffice Calc" hWnd := FindWindowEx(,,, cTitle ) IF hWnd == 0 MsgStop("Не нашёл окно: " + cTitle, "Error") ENDIF IF hWnd > 0 ShowWindow( hWnd, 6 ) // MINIMIZE windows ShowWindow( hWnd, 3 ) // MAXIMIZE windows BringWindowToTop( hWnd ) // A window on the foreground ENDIF RETURN NIL
|
|
|
|
|
| постоянный участник
|
Пост N: 6728
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.06.20 12:23. Заголовок: Andrey пишет: Как п..
Andrey пишет: цитата: | Как получить хендл окна с Калком ? Для Экселя так: hWnd := oExcel:hWnd // хендл окна Excel |
| Возвращаюсь опять к этому вопросу ! Как получить хендл окна для OO Calc и для LibreOffice ? Пример MiniGUI\SAMPLES\Advanced\Tsb_Export\demo.exe работает и под LibreOffice Только там настроено переключение окна на OO Calc. Как сделать универсальной функцию: // окно Calc на передний план // срабатывает только если нет окна ОО Calc на рабочем столе компа. STATIC FUNCTION SetCalcWindowToForeground(cFile) LOCAL hWnd, cTitle // поиск ХЕНДЛА открытого окна документа cTitle := hb_FNameNameExt(cFile) + " - OpenOffice Calc" hWnd := FindWindowEx(,,, cTitle ) IF hWnd == 0 MsgStop("Не нашёл окно: " + cTitle, "Error") ENDIF IF hWnd > 0 ShowWindow( hWnd, 6 ) // MINIMIZE windows ShowWindow( hWnd, 3 ) // MAXIMIZE windows BringWindowToTop( hWnd ) // A window on the foreground ENDIF RETURN NIL
|
|
|
|
| постоянный участник
|
Пост N: 3268
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.06.20 12:49. Заголовок: Andrey пишет Как пол..
Andrey пишет цитата: | Как получить хендл окна для OO Calc и для LibreOffice ? |
| В hmg есть ф-я EnumWindows(), попробуй через нее определить LOCAL ahWnd := EnumWindows() FOR nI := 1 TO Len(ahWnd) ? nI, , ahWnd[ nI ], GetClassName(ahWnd[ nI ]), GetWindowText(ahWnd[ nI ]) NEXT в списке найди ClassName и Text для нужных окон потом по ним получи нужные handle *-----------------------------------------------------------------------------* STATIC FUNCTION myGetWindowHandles( cText, cClass, lLogOut ) *-----------------------------------------------------------------------------* LOCAL i, h, t LOCAL aWnd := EnumWindows() LOCAL aTmp := {} LOCAL aRet := {} IF empty(cClass); aTmp := aWnd ELSE ; AEVal(aWnd, {|hw| iif( GetClassName(hw) == cClass, AAdd( aTmp, hw ), )}) ENDIF IF ! empty(cText) .and. HB_ISCHAR(cText) .and. Len(aTmp) > 0 FOR EACH h IN aTmp t := GetWindowText( h ) IF cText $ t ; AAdd( aRet, h ) ENDIF NEXT ELSE aRet := aTmp ENDIF IF ! Empty(lLogOut) FOR i := 1 TO Len(aTmp) t := GetWindowText(aTmp[ i ]) _FileLog( str(i, 5), aTmp[ i ], GetClassName(aTmp[ i ]), t ) NEXT ENDIF RETURN aRet
|
|
|
|
|
| постоянный участник
|
Пост N: 6729
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.06.20 11:53. Заголовок: SergKis пишет: в сп..
SergKis пишет: цитата: | в списке найди ClassName и Text для нужных окон |
| А без класса нельзя ? Нет у меня LibreOffice . Не знаю какой класс для него используется.
|
|
|
|
| постоянный участник
|
Пост N: 3269
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.06.20 12:07. Заголовок: Andrey У тебя текст..
Andrey У тебя текст ф-ии перед глазами, разберись, запусти myGetWindowHandles( , , .T. ) поправь только (я из своей версии переносил) _FileLog( .T., str(i, 5), aTmp[ i ], GetClassName(aTmp[ i ]), t ) Получишь весь список handle окон с классами и title текстом Если запустишь где уст. LibreOffice узнаешь имя класса (у меня тоже его нет). Вопрос. Меняется ли имя класса от версии ? Если знаешь кусок текста в title окна для LibreOffice, задай его.
|
|
|
|
| постоянный участник
|
Пост N: 6730
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.06.20 12:12. Заголовок: SergKis пишет: запу..
SergKis пишет: цитата: | запусти myGetWindowHandles( , , .T. ) |
| Запустил. Переделываю его под себя. SergKis пишет: цитата: | Если знаешь кусок текста в title окна для LibreOffice, задай его. |
| Да делаю поиск по имени файла.
|
|
|
Ответов - 34
, стр:
1
2
All
[только новые]
|
|