Cyph3r Posted May 4, 2014 Share Posted May 4, 2014 Arkadaşlar bir paket programın richtext alanına müdahale etmek istiyorum ancak başarılı olamadım... autoitscript sitesinde benzer bir soruna ControlGetHandle() + _GUICtrlRichEdit_GetText() kullanın denmiş.... $pencere = WinWait("[CLASS:TfmAdaParsel]","") $edinme = ControlGetHandle($pencere, "", "TDBWPRichText1") _GUICtrlRichEdit_ReplaceText($edinme, "testttt") şeklinde salladım ama yemedi :) Acaba yanlış mı kullanıyorum yoksa başka bir sorun mu var? Richtext olan kısım programın ana penceresinin üstünde bir dialog penceresi olarak bulunuyor... Quote Link to comment Share on other sites More sharing options...
DivaneTR Posted May 5, 2014 Share Posted May 5, 2014 (edited) Abi ControlSetText kullanmanda fayda var, bu şekilde yazdığın kodlar çok mantıklı gelmedi. Not defteri için kullanım bu şekilde, kullandığın programa göre uyarlarsın. ControlSetText("[CLASS:Notepad]","","Edit1","Divaneeeee") Edited May 5, 2014 by DivaneTR Quote Link to comment Share on other sites More sharing options...
Cyph3r Posted May 5, 2014 Author Share Posted May 5, 2014 Abi ControlSetText kullanmanda fayda var, bu şekilde yazdığın kodlar çok mantıklı gelmedi. Not defteri için kullanım bu şekilde, kullandığın programa göre uyarlarsın. ControlSetText("[CLASS:Notepad]","","Edit1","Divaneeeee") Aslında mantıksız doğru, biraz kısa kestim orayı... :D olayın Richtext objesinde yazıyı bul, sonra seç ve sonrasında değiştir gibi bir sırayla gitmesi gerekiyor sanki :huh: Çünkü, oradaki gibi tek kelime olmayacak, icabında bir cümle olacak orada...Yardım dosyasında hep _GUICtrlRichEdit_Create ile kendi oluşturmuş bu objeyi ve onun üzerinde işlem yapmış... Harici bir richtext alanının handle si ile işlem yapılamıyor mu acaba onu arıyorum... controlsettext işe yaramıyor ayrıca :closedeyes: Quote Link to comment Share on other sites More sharing options...
DivaneTR Posted May 5, 2014 Share Posted May 5, 2014 Abi programın boyutu çok büyük değilse gönderebilirsen incelerim, verdiğim kod işe yarar da, tab olayı işi bozuyor. Edinme sebebi seçiliyken richtext ortaya çıkıyor çünkü. Quote Link to comment Share on other sites More sharing options...
Cyph3r Posted May 5, 2014 Author Share Posted May 5, 2014 Program lisanlı Ömercim, kursan çalıştıramayacaksın zaten... ControlSetText denedim çalışmadı ama ControlSend ile yazı yazılabiliyor... Ancak kelime arama bulma değiştirme işi nasıl olacak bilemedim... Ben _GUICtrlRichEdit.... zorluyorum halen tık yok :D Quote Link to comment Share on other sites More sharing options...
MostWanted Posted May 9, 2014 Share Posted May 9, 2014 _GUICtrlRichEdit_ReplaceText($edinme, "testttt") richtext'teki texti değiştirmek için kullanılır doğru ama kendi programın içinde bulunan richtext için :D Orda bi yanlışlık olmuş. $pencere = WinWait("[CLASS:TfmAdaParsel]","") $icindekiyazi = ControlGetText($pencere, "", "TDBWPRichText1") ; $yeniyazi = StringReplace($icindekiyazi, "aradığın yazı", "değiştireceğin yazı"); $icindekiyazi = ControlSetText($pencere, "", "TDBWPRichText1", $yeniyazi); ;ControlSend ile oluyorsa onla yeniden düzenlersin :) Quote Link to comment Share on other sites More sharing options...
Cyph3r Posted May 9, 2014 Author Share Posted May 9, 2014 Valla sallayabildiğim kadar türlü fantezi denendi mosty... :) programın başka bir sekmesindeki inputtan veri alabiliyorsun ama bu richtext içinden veri alamıyorsun... richtext objesine veri girebiliyorsun ama okuyamıyorsun, boş veriyor... aşağıda verdiğim resimlerde yanlış birşey yok dimi? [spoiler] [/spoiler] Quote Link to comment Share on other sites More sharing options...
MostWanted Posted May 9, 2014 Share Posted May 9, 2014 (edited) $pencere = WinWait("[CLASS:TfmAdaParsel]","") ControlSend($pencere, "", "TDBWPRichText1" , "^a"); ControlSend($pencere, "", "TDBWPRichText1" , "^c"); $icindekiyazi = ClipGet() $yeniyazi = StringReplace($icindekiyazi, "aradığın yazı", "değiştireceğin yazı"); $icindekiyazi = ControlSend($pencere, "", "TDBWPRichText1", $yeniyazi); Fantezi bitmez :) Tek sorun kopyala yapıştır kısmını kullanıyor ne yazık ki. Edited May 9, 2014 by MostWanted Quote Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted May 9, 2014 Share Posted May 9, 2014 Yalnız şöyle bir durum var; Programın içinde metin onun içinde belirli bir kesiti almak gerekiyor. Onu da StringInStr ya da StringRegExpReplace ile aratıp değiştirmek gerekiyor anladığım kadarıyla :db: Quote Link to comment Share on other sites More sharing options...
Cyph3r Posted May 9, 2014 Author Share Posted May 9, 2014 @MostWanted, eline koluna sağlık... :) sonuç olarak evet aynen istediğim görevi yerine getirdi... ancak teknik olarak bazı sıkıntılar var. Resimlerde temsili olarak tek kelime yazmıştım, normalde orada 25-30 satır bir yazı var ve matbu bir şablona çıktı alınacak şekilde biçimlendirmesi yapılmış... Kodlar istenen kelimeyi değiştiriyor ama tüm cümleyi kelime kelime tekrardan yazdığı için tüm biçimlendirmeler kayboluyor :) Quote Link to comment Share on other sites More sharing options...
MostWanted Posted May 10, 2014 Share Posted May 10, 2014 Demek istediğini tam olarak anlayamadım abi, küçük bi tane değiştirilecek yazı, olması gereken yazı ve bizim programın o yazıyı nasıl çevirdiğini örnek olarak verirsen bi çözüm bulmaya çalışabilirim. Quote Link to comment Share on other sites More sharing options...
DivaneTR Posted May 10, 2014 Share Posted May 10, 2014 Arkadaşlar bence TabControl kaynaklı bir sıkıntı var. 'Edinme sebebi' sekmesinin aktif olduğunu kontrol edip controlleri gönderirse sorun olmayabilir. Abi istersen bir de öyle yap. Quote Link to comment Share on other sites More sharing options...
DivaneTR Posted May 10, 2014 Share Posted May 10, 2014 (edited) TabControl ile ilgili birşeyler karaladım, bende sorun çıkarmadı, istediğim gibi çalışıyor #include <GuiTab.au3> $Handle = ControlGetHandle("[CLASS:TfmAdaParsel]", "", "SysTabControl321") ; Tab objesinin handle'ını alalım önce $Tab = _GUICtrlTab_GetCurSel($Handle) ; Seçilen tab hangisi onu öğrenelim If $Tab = 2 Then ; Edinme sebebi sekmesi aktif ise ControlSetText("[CLASS:TfmAdaParsel]", "", "TDBWPRichText1", "ömer") ; Metni değiştirirelim EndIf Abi 'SysTabControl321' yazan yere TabControl objesinin ID bilgilerini yazıp denermisin. Edited May 10, 2014 by DivaneTR Quote Link to comment Share on other sites More sharing options...
Cyph3r Posted May 11, 2014 Author Share Posted May 11, 2014 Mosty... yazının orjinali bu şekilde.... [spoiler][/spoiler] Örnek olarak yazıdaki tüm "Kadastro" kelimelerini "Orman" olarak değiştirmesini istedim... değişim başarılı ancak, kırmızı çerçeve ile gösterdiğim şekilde textin biçimi bozuluyor... [spoiler][/spoiler] Divane, dostum bu programın tab anlayışı biraz değişik :D tüm tabların class ve ID bilgileri aynı çıktı... :huh: Quote Link to comment Share on other sites More sharing options...
mesale0077 Posted May 11, 2014 Share Posted May 11, 2014 kullanmış olduğunuz programın adı nedir acaba merak ettim ,bir mahsuru yoksa söyleyebilirmisiniz Valla sallayabildiğim kadar türlü fantezi denendi mosty... :) programın başka bir sekmesindeki inputtan veri alabiliyorsun ama bu richtext içinden veri alamıyorsun... richtext objesine veri girebiliyorsun ama okuyamıyorsun, boş veriyor... aşağıda verdiğim resimlerde yanlış birşey yok dimi? [spoiler][/spoiler] Cyph3r - PM attım Quote Link to comment Share on other sites More sharing options...
DivaneTR Posted May 11, 2014 Share Posted May 11, 2014 Abi tabiki de aynı olacak, zaten orda tek tabcontrol var, diğerleri onun sayfaları. Sen yazdığım kod ile tabcontrol içindeki edinme sebebi sekmesinin aktif olduğunu kontrol edeceksin, sonra kontrolleri göndereceksin. Düzenleyip denedin mi? Kullandığın program Delphi ile yazılmış, delphi ile yazılan başka programlarda da test ettim. Quote Link to comment Share on other sites More sharing options...
MostWanted Posted May 12, 2014 Share Posted May 12, 2014 $pencere = WinWait("[CLASS:TfmAdaParsel]","") If _ClipBoard_Open($pencere) Then ; Show clipboard formats available MemoWrite("Clipboard formats ..: " & _ClipBoard_CountFormats()) ; Enumerate clipboard formats Do $iFormat = _ClipBoard_EnumFormats($iFormat) If $iFormat <> 0 Then $iCount += 1 MemoWrite("Clipboard format " & $iCount & " .: " & _ClipBoard_FormatStr($iFormat)) EndIf Until $iFormat = 0 ; Close the clipboard _ClipBoard_Close() EndIf Şunu çalıştırır mısın abi?Bakalım sonuç olarak ne gelecek.Bir de önce kod için ControlSend de text yerine ^v yollar mısın bi de onu deneyelim. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.