Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2010, 16:39   #1
madboy4ik
 
Регистрация: 14.01.2010
Сообщений: 6
По умолчанию Как получить адрес String строки или преобразовать String

Есть форма и на ней Edit
На делфи есть такой код
Код:
h := FindWindow('TForm1', nil); 
   h2 := FindWindowEx(h, 0, 'TEdit', nil);
        SendMessage(h2, WM_SETTEXT, 0, LParam(PChar('Текст ищем')));
я использую jna для вызова API функций и пытаюсь переписать этот код
Код:
public interface User32 extends W32API{

	    User32 INSTANCE = (User32)Native.loadLibrary("user32", User32.class, DEFAULT_OPTIONS);
	    int SendMessage(HWND hWnd, int msg, int wParam, int lParam)
	}
и у меня возникла проблема мне lParam должен принимать String-овое значение, но у меня в функции оно int
поменять на String не кактит

подскажите пожалуйста может можно преобразовать строку в int или как получить адрес строки ?

на С это делали вот так
Код:
SendMessage(username, WM_SETTEXT, 0, (int) &MY_NAME);
madboy4ik вне форума Ответить с цитированием
Старый 14.01.2010, 16:51   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

Цитата:
и у меня возникла проблема мне lParam должен принимать String-овое значение, но у меня в функции оно int
что-то вроде...
Код:
public String oNum(int value) { //формат вывода
return new String(""+value);}
не совсем понятно, что же вы хотите, строку в int или int в строку...
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 14.01.2010 в 16:54.
raxp вне форума Ответить с цитированием
Старый 14.01.2010, 17:03   #3
madboy4ik
 
Регистрация: 14.01.2010
Сообщений: 6
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
что-то вроде...
Код:
public String oNum(int value) { //формат вывода
return new String(""+value);}
не совсем понятно, что же вы хотите, строку в int или int в строку...
строку String в int
есть строка
Код:
final static String NAMEWIN ="File Upload";
мне нужно её передать как lParam в функцию
Код:
int SendMessage(HWND hWnd, int msg, int wParam, int lParam);
madboy4ik вне форума Ответить с цитированием
Старый 14.01.2010, 17:08   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

Код:
Integer.parseInt(String stroka)
но не забывайте перед использованием убирать лишние пробелы и символы типа точек, запятых...

upd
-------

нет... так не прокатит, это вы смешиваете работу с api... вам нужно получить указатель на строку для передачи в sendmessage...
а вот так не пробовали SendMessage(username, WM_SETTEXT, 0, lparam("File Upload")); ?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 14.01.2010 в 17:13.
raxp вне форума Ответить с цитированием
Старый 14.01.2010, 17:18   #5
madboy4ik
 
Регистрация: 14.01.2010
Сообщений: 6
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
Код:
Integer.parseInt(String stroka)
но не забывайте перед использованием убирать лишние пробелы и символы типа точек, запятых...

upd
-------

нет... так не прокатит, это вы смешиваете работу с api... вам нужно получить указатель на строку для передачи в sendmessage...
а вот так не пробовали SendMessage(username, WM_SETTEXT, 0, lparam("File Upload")); ?
у меня как раз SendMessage апишная фунцкия

пробовал и так делать ( ругаеться что нужно созадать lParam(String)
madboy4ik вне форума Ответить с цитированием
Старый 14.01.2010, 19:18   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

вообще, если вы хотите на api передавать что-то вроде текста, то нужно завести тип TCopyDataStruct, заполнить его и используя сообщение WM_COPYDATA передать в sendmessage:
Код:
TCopyDataStruct Struct;
...
заполняем struct
...
SendMessage(hwnd, WM_COPYDATA, 0, lparam(Struct))
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 15.01.2010, 11:57   #7
madboy4ik
 
Регистрация: 14.01.2010
Сообщений: 6
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
вообще, если вы хотите на api передавать что-то вроде текста, то нужно завести тип TCopyDataStruct, заполнить его и используя сообщение WM_COPYDATA передать в sendmessage:
Код:
TCopyDataStruct Struct;
...
заполняем struct
...
SendMessage(hwnd, WM_COPYDATA, 0, lparam(Struct))
спасибо за совет
madboy4ik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MailItemPtr или IMessage как получить e-mail адрес? Iskuzer Общие вопросы C/C++ 0 26.10.2008 14:27
как узнать string или Real Влажимир Общие вопросы Delphi 2 11.04.2008 17:06
Преобразовать из string в array of char vitalik007 Общие вопросы Delphi 6 07.09.2007 01:15
Как преобразовать TextFile в String? DragonionS Паскаль, Turbo Pascal, PascalABC.NET 1 06.06.2007 18:38
Как из string получить PChar??? sis Компоненты Delphi 4 11.02.2007 16:58