Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.031 c
1-16374
Pasha_
2004-01-23 22:34
2004.02.06
Class TPanel not found


1-16434
Oleg_
2004-01-21 18:08
2004.02.06
Русские названия в intallshield


3-16175
NewD
2004-01-14 07:03
2004.02.06
Отчет по шаблону в MS WORD


8-16516
Винни Пух
2003-10-04 20:46
2004.02.06
Volume


14-16663
Vit@ly
2004-01-17 23:09
2004.02.06
Проверить себя, если интересно





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский