Форум: "WinAPI";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
ВнизGet Application Title Найти похожие ветки
← →
d_oleg (2003-11-28 12:23) [0]Помогите пожалуйста - средствами API нужно получть заголовок приложения. В MSDN описана ассемблерная вставка:
mov ah, 16h ; Windows multiplex function
mov al, 8Eh ; VM Title
mov di, seg AppTitle ; see below
mov es, di
mov di, offset AppTitle
mov cx, Size ; see below
mov dx, 2 ; Get Application Title
int 2Fh
cmp ax, 1
je success
но когда я её вставляю в делфи в виде:
function GetApplicationTitle: String;
var
ResultBuffer: pChar;
resultBufPtr: Pointer;
buflen: Word;
begin
resultBufPtr := @ResultBuffer;
buflen := MaxWord;
asm
mov ah, 16h // Windows multiplex function
mov al, 8Eh // VM Title
mov di, seg resultBufPtr
mov es, di
mov di, offset resultBufPtr
mov cx, buflen
mov dx, 2 // Get Application Title
int 2Fh
cmp ax, 1
end;
компилятор ругается на 3ю строчку ассемблерного кода (mov di, seg resultBufPtr), говорит Inline assembler syntax error. В чём-же там ошибка?
← →
Dimka Maslov (2003-11-28 12:32) [1]Тебе где надо получать заголовок в DOS программе работающей под Windows? Или всё-таки в Delphi? Во втором случае код 32-битный и адресное пространство линейное. Но всё это тебе не понадобится. А понадобится тебе Application.Title.
← →
d_oleg (2003-11-28 12:37) [2]ну не нужен мне application.title. Ну не хочу я Forms за собой тянуть, ибо программулинка на 2 действия и окно тоже через API делается. В чём в ассемблере-то проблема, кто знает?
← →
clickmaker (2003-11-28 12:55) [3]
> d_oleg © (28.11.03 12:37) [2]
Если одно окно, то его заголовок и есть то, что тебе нужно
← →
Dimka Maslov (2003-11-28 13:30) [4]В примере приведён способ получения заголовка окна Windows, в котором работает приложение DOS. И работать это код будет, если его откомпилировать в турбо-паскале. В Delphi создаются 32-битные приложения для Windows с линейным адресным пространством в них не может быть ни сегмента ни смещения. А заголовком приложения будет то, что ты сам задашь при создании окна на апи.
← →
Digitman (2003-11-28 16:03) [5]
> ну не нужен мне application.title. Ну не хочу я Forms за
> собой тянуть
ну и не тяни ! можно подумать - заставляет тебя кто-то)
но и головой чуть-чуть работать надо тоже !
открываешь этот модуль , ищешь соотв.метод и берешь его алгоритм за основу ! делов-то)
function TApplication.GetTitle: string;
var
Buffer: array[0..255] of Char;
begin
if FHandleCreated then
SetString(Result, Buffer, GetWindowText(FHandle, Buffer,
SizeOf(Buffer)))
else
Result := FTitle;
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.033 c