PDA

Просмотр полной версии : CallFunction и строки


PRO
06.11.2007, 20:42
Идея скрипта такая - хочу писать текущую проигрываемую в винампе песню в трейд чат) Попытка решения номер 1: начинаю писать алгоритм выдирания песни прямо в скрипте, вызывая функции FindWindow, GetWindowText из user32.dll. Обламываюсь на GetWindowText - там нужен адрес буфера куда нужно помещать полученный текст. Ввожу переменную song типа string, array[0..x] of char, variant - ничего не делает, выдает акцесс вайлейшн или виснет случайным образом, если пишу её в параметре как @song. Если просто song - глюков нет, но текст в переменную тоже не приходит. Попытка номер 2: написал внешнюю библиотеку, которая экспортирует функцию без параметров, получающую текст песни и возвращающую адрес на буфер с текстом, переведенным в юникод. Проблема - как разименовать ссылку, чтобы можно было записать название песни в buf? Использование ^ выдает ошибку. Конструкция типа CallFunction(hUser32,'MessageBoxW',4,[nil,CallFunction(hwa2phx,'GetSong',0,[0]),'123',0]) работает успешно. Либа прилагается, надеюсь на помощь)

xkor
07.11.2007, 17:11
покажи реализацию первого алгоритма, мне кажется ты там строку несовсем верно использовал

PRO
21.11.2007, 00:09
Да я его стер уже.. GetWindowText передавлся параметр @song, MessageBox тоже @song.. Выдавался мессажбокс с текстом "song".. Я уже почитал учебник по фастскрипту, работа с указателями там не реализована.. А жаль