Люди, помогите плизз! не могу получить и установить текст в текстовом поле чужого окошка. Первый раз, посылая сообщение WM_GETTEXT мне возвращается значение IN01, хотя в поле ничего нету. Потом, когда я отсылаю WM_SETTEXT содержимое поя не изменятся, но при следующей посылке WM_GETTEXT в ответ получаю то, что передавал при WM_SETTEXT. При всем этом содержимое поля не меняется. Помогите, как быть? П.С. хендл окна получаю посредством WindowFromPoint(Mouse.CursorPos)
Ты же сам писал, что удалось... и назад получил, просто для какого-то другого элемента так можно долго гадать, выкладывай наработки
наработки показывать смысла нету. все стандартно. функцией WindowFromPoint получаю хэндл элемента. Зарегил хоткей, навожу на поле для ввода курсор, нажимаю горячие клавиши и сохраняю хэндл для дальнейшего использования. Потом отправляю сообщение WM_GETTEXT, но в ответ получаю не содержимое текстового поля, а скорее всего его имя. Далее отправляю WM_SETTEXT - визуально ничего не меняется, но при следующей отправке WM_GETTEXT получаю значение, которое я сам и установил. При этом всем, если использовать SetWindowPos - меняется положение именно того элемента, который мне нужен. Также читал, что с помощью функции GetWindowText и SetWindowText невозможно получить текст из текстового поля, но все же решил попробовать - результат такой же как и при отправке сообщений WM_GETTEXT и WM_SETTEXT. Подскажите, что еще можно использовать для таких целей? Впервые столкнулся с ткой проблемой
потому и говорю что ты не тот хендл получаешь... попробуй через GetWindowText получать содержимое, через GetClassName имя
Webbrowser и фреймы Всем привет! Пишу кликер. Нужно найти ссылки из всех фреймов на страничке в Webbrowser. Причем фреймы загружены с других доменов (реклама гугла). Из всей информационной каши в интернете по этому вопросу понял только, что какая то защита от Xss не дает это сделать. Тем не менее нашел где то этот код: Code: procedure TForm1.Button1Click(Sender: TObject); var u : variant; v : IDispatch; s : string; procedure RecurseLinks(htmlDoc: variant); var BodyElement : variant; ElementCo: variant; HTMLFrames: variant; HTMLWnd : variant; j, i : integer; begin if VarIsEmpty(htmlDoc) then exit; BodyElement := htmlDoc.body; if BodyElement.tagName = 'BODY' then begin ElementCo := htmlDoc.links; j := ElementCo.Length - 1; for i := 0 to j do begin u := ElementCo.item(i); s := u.href; listLinks.Items.Add(s); end; end; HTMLFrames := htmlDoc.Frames; j := HTMLFrames.length - 1; for i := 0 to j do begin HTMLWnd := HTMLFrames.Item(i); RecurseLinks(HTMLWnd.Document); end; end; // RecurseLinks begin v := Wb.document; listLinks.Clear; RecurseLinks(v); end; По идее должен выдавать список всех ссылок, включая фреймы. Но на деле выдается ошибка "Отказано в доступе"! Помогите пожалуйста решить проблему!!!
GetWindowText - точно такой же результат как и отправка WM_GETTEXT. С помощью GetClassName получил Qwidget, пробежался по элементах на форме GetClassName - все Qwidget GetWindowText или WM_GETTEXT ни к одному элементу на форме не возвращает верный результат.
Подскажите пожайлуста как можно сделать так чтобы передать из приложения VCL на дельфи данные для поиска например багов в Google и получить ответ в этом приложении например в Memo (взаимодействие дельфи и поискового сервера Google)
Скорее всего именно по этому... Qwidget это один хендл и все элементы, которые в нём своих хендлов скорее не имеют... К нему нужно наверное не через winapi стучаться
как зделать так: открываем файл .sec а в проге он открывается уже в txt и наоборот, создаю или открываю файл txt а сохраняю уже в .sec НО уже в Юникоде подскажите плиз
немного недопонял на счет .sec , но все же: Code: var list:TStringList; begin list:=TStringList.Create; list.LoadFromFile('111.txt'); // открываем вин list.Text:=utf8encode(list.Text); list.SaveToFile('222.txt'); // сохраняем юник list.Free; end; utf8decode - из юника в вин
спасибо, а .sec это формат файла скрипта для проги, который читается в блокноте да и подскажите как вообще зделать чтоб прога выводила из файла .sec текст в Memo?
спасибо, а как подключить модуль на этот файл, а то прога не переводит его в нормальный текст да и как зделать допустим. чтоб программа запускала bat ? не просто сам батник а какуюто функцию из него, например батник отвечает за раскодирование фалов, вот и мне нужно при нажатии в самой проге раскодироват файл вставил батник теперь проблемма как зделать допустим чтобы я выбрал файл через OpenDialog и этот файл обрабатывался батником?
Form1.OpenDialog1.Execute; //Открыть диалог Form1.Memo1.Lines.Add(Form1.OpenDialog1.FileName); //Отобразить полный путь до файла в мемо
Подскажите: мне надо чтобы когда открывает какуюнибудь папку , то в программе отображались все файлы с этой папки списком, потом выделить любой файл и декодировать (из dat в txt) декодировщик у меня есть , но как подключить его к программе?