Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с ярлыками, формат файла арлыка

40K
16 августа 2008 года
KATARINKA88
9 / / 16.08.2008
Здравствуйте, нужна помощь с написание проги на асме. Нужно написать программу чтоб выводила информацию о формате файла .lnk(ярлык) Как это можно сделать не используя интерфейсы. Пробовала через смещения т.е. высчитывать в hex но смогла только вывести рабочий киталог и путь к иконке, а нужно еще как отображается окно при старте приложения и сочетание горячих клавишь ну и сам номер иконки но я не могу понять где они находятся. Может кто знает подскажите! :confused:
1.6K
16 августа 2008 года
Vov4ick
476 / / 01.02.2007
google
40K
16 августа 2008 года
KATARINKA88
9 / / 16.08.2008
спасибо за ссылки но то что меня интересовало я не нашла в документации я не совсем понимаю они советуют делать черз интерфейс IShellLink но я вообще незнаю как им пользоваться можно как нибудь по другому?
9
16 августа 2008 года
Lerkin
3.0K / / 25.03.2003
Вы, вообще, по ссылкам ходили? Хотя бы по первым двум. Нормально расписан формат .lnk безо всяких интерфейсов.
40K
17 августа 2008 года
KATARINKA88
9 / / 16.08.2008
конечно ходила но я же написала что по этой документации не совсем поняла как сделать!
1.6K
17 августа 2008 года
Vov4ick
476 / / 01.02.2007
Создаём файл *.LNK, пишем в него что нужно согласно документации, закрываем файл.
Если есть конкретные вопросы, пожалуйста.
40K
18 августа 2008 года
KATARINKA88
9 / / 16.08.2008
Вы уж извините плохо разбираюь в этом можно поподробнее и как это будет выглядеть приметно?
261
18 августа 2008 года
ahilles
1.5K / / 03.11.2005
смотрим этот документ http://www.i2s-lab.com/Papers/The_Windows_Shortcut_File_Format.pdf . Создаём файл *.LNK записывает туда данные согласно этому документу и смотрим что получилось. Если всё как надо, значит вы отлично усвоили этот формат.
40K
18 августа 2008 года
KATARINKA88
9 / / 16.08.2008
не могу перейти по ссылке

Цитата: Vov4ick
Создаём файл *.LNK, пишем в него что нужно согласно документации, закрываем файл.
Если есть конкретные вопросы, пожалуйста.


что писать согласно документации не пойму напишите хоть один пример дальше попробую разобраться. Пожалуйста!

40K
18 августа 2008 года
KATARINKA88
9 / / 16.08.2008
.386
.model flat, stdcall
option casemap:none

include C:/masm32/include/windows.inc
include C:/masm32/include/kernel32.inc
include C:/masm32/include/user32.inc
include C:/masm32/include/masm32.inc
include C:/masm32/include/comdlg32.inc
includelib C:/masm32/lib/kernel32.lib
includelib C:/masm32/lib/user32.lib
includelib C:/masm32/lib/masm32.lib
includelib C:/masm32/lib/comdlg32.lib

.data
ofn OPENFILENAME <>
FilterString db "File format LNK (*.lnk)",0,"*.lnk",0,0
AppName db "Format LNK",0
FileError db "Error open",0
hCons dd 0
b1 db "Format LNK file: ",17h,0
b2 db 0ah,0
b3 db "Flags: ",20h,0
b5 db "File attributes: ",20h,0
b6 db "File length: ",20h,0
b7 db "Icon number: ",20h,0
b8 db "ShowWnd value: ",20h,0
b9 db "Hot key:",20h,0
b10 db "Patch to Icon: ",15h,0
b11 db "Rabochaya papka: ",17h,0
b12 db "Description: ",13h,0
buffer db 512 dup(?)

dwFileSize dd 0
hFile dd 0


.code
start:
invoke GetStdHandle,STD_OUTPUT_HANDLE
mov hCons,eax

mov ofn.lStructSize,SIZEOF ofn
mov ofn.lpstrFilter,OFFSET FilterString
mov ofn.lpstrFile, OFFSET buffer
mov ofn.nMaxFile, 512
mov ofn.Flags, OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST or OFN_LONGNAMES or OFN_EXPLORER or OFN_HIDEREADONLY

invoke GetOpenFileName, offset ofn
.if eax!=TRUE
invoke MessageBox, 0, offset FileError,offset AppName,MB_OK+MB_ICONERROR
invoke ExitProcess,0
.endif

invoke CreateFile, offset buffer, GENERIC_READ,FILE_SHARE_READ, 0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL
.if eax==INVALID_HANDLE_VALUE
invoke MessageBox, 0, offset FileError,offset AppName,MB_OK+MB_ICONERROR
invoke ExitProcess,0
.endif
mov hFile, eax

invoke GetFileSize,hFile,0
mov dwFileSize,eax
invoke ReadFile,hFile,offset mass,dwFileSize,offset cWritten,NULL


invoke CloseHandle, hFile
invoke ExitProcess,0

end start
вот этот кусок открывает файл формата lnk и в переменных написано какую инфу нужно вывести? что дальше делать чем пользоваться
261
18 августа 2008 года
ahilles
1.5K / / 03.11.2005
ну так сдесь ничего и не написано
1.8K
20 августа 2008 года
Evgeni
188 / / 14.06.2006
Katarinka, впринципе у вас есть все: создайте масси размером в 1024 байта (для надежности), ну а потом запихните туда файл спомощью функции ReadFile, ну а потом последователь читайте из массива необходимыее для вас поля и выводите их хоть спомощью MessageBox)
40K
25 августа 2008 года
KATARINKA88
9 / / 16.08.2008
спасибо!! попробую!)
40K
25 августа 2008 года
KATARINKA88
9 / / 16.08.2008
Evgeni что то не совсем получается не могли бы помочь?насколько я поняла сначала делаем так
invoke ReadFile,hFile,offset mass,dwFileSize,offset cWritten,NULL
читаем файл затем чтобы вывести сообщение можно использовать функцию WriteConsole примерно так:
invoke WriteConsole,hCons,addr b3,7,addr cWritten,NULL
вот а как теперь вывести то что там лежит? Помогите пожалуйста!
1.8K
25 августа 2008 года
Evgeni
188 / / 14.06.2006
нужно выводить массив mass, а вы выводите cWritten. Но только это вам ни чего не даст, нужно в начале обработать сам массив, т.е прочитать из него необходимые поля, преобразовать их, и только после этого выводить эти поля)
40K
26 августа 2008 года
KATARINKA88
9 / / 16.08.2008
ндаааааа, не понять мне похоже как это сделать ну спасибо за помощь)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог