Войти

Показать полную графическую версию : [решено] Посоветуйте учебник WinAPI с примерами для NSIS


Creator000
14-10-2012, 00:17
Я изучаю nsis для написание установщиков. И там нужно вызывать WinAPI. Можете что-нибудь посоветовать?
Есть строка:
System::Call "user32::MessageBox(i$hwndparent, t'Вы действительно хотите удалить $(^Name)?' ,t'$(^Name)', i4)i.r0"
Хочу выяснить для чего нужны на конце не понятные символы i4 i.r0 i$hwndparent
Хочу узнать какие есть значения. какие мне можно убрать, какие добавить. То есть знать что ты пишешь.

ferget
14-10-2012, 06:17
Посоветуйте учебник WinAPI с примерами для NSIS »
Таких учебников нет, а посоветовать могу MSDN и nsis.sourceforge.net

Хочу выяснить для чего нужны на конце не понятные символы i4 i.r0 i$hwndparent »

смотрим сюда (http://msdn.microsoft.com/en-us/library/windows/desktop/ms645505(v=vs.85).aspx) и смотрим сюда (http://nsis.sourceforge.net/Calling_an_external_DLL_using_the_System.dll_plugin)

Видим, что буква i означает целое число, 4 -это 4, .r0 - возвращаемое значение, $hwndparent - хендл окна

Creator000
14-10-2012, 16:04
ferget, на nsis.sourceforge.net прямо так ахренительно понятно. а чем плохо простой справочник по winapi?

Видим, что буква i означает целое число, 4 -это 4, .r0 - возвращаемое значение, $hwndparent - хендл окна »
мне надо это понимать. мне хочется удалить эти символы на конце, потому что для меня они не имают смысла.

ferget
14-10-2012, 17:33
а чем плохо простой справочник по winapi? »

msdn и есть такой справочник. Или как вы себе представляете этот простой справочник?
И что именно не понятно?

Creator000
14-10-2012, 17:50
ferget,
Функция MessageBox

Описание:
function MessageBox(Parent: HWnd; Txt, Caption: PChar; TextType: Word): Integer;
Создает и отобpажает блок диалога, содеpжащий указанное сообщение и заголовок, а также пpедопpеделенные пиктогpаммы и текстовые кнопки, в соответствии с паpаметpом TexType.
Паpаметpы:
Parent: Окно, владеющее блоком сообщений.
Txt: Отобpажаемое сообщение (заканчивающееся пустым символом).
Caption: Заголовок блока диалога (заканчивающийся пустым символом) или nil для "Error" ("Ошибка").
TextType: Одна или комбинация констант mb_. См. pаздел "Флаги блока сообщения, mb_" в главе 1.
Возвpащаемое значение:
В случае успешного завеpшения одна из следующих констант: id_Abort, id_Cancel, id_Ignore, id_No, id_OK, id_Retry или id_Yes. См. pаздел "Идентификатоpы команд блока диалога, id_" в главе
1.
функция находится в файле user32.dll
Мне бы пример как это все в одной строчке написать.
Где можно почитать про эти символы на конце? Мне нужно понимать для чего. что можно удалить. что можно для себя добавить.


Или просто пишите мне эту строчку чтоб выводило окно с кнопками Да Нет.

i$hwndparent
А видел p$hwndparent. хочу разобраться. проблема в том, что мне как мне функции из winapi вставлять в nsis.

Родной
MessageBox MB_YESNO|MB_ICONQUESTION "Вы действительно хотите удалить $(^Name)?" IDYES NoAbort
Abort
NoAbort:

А тут я ХЗ
System::Call "user32::MessageBox(i$hwndparent, t'Вы действительно хотите удалить $(^Name)?' ,t'$(^Name)', t'MB_YESNO|MB_ICONQUESTION'i4)i.r0"

Iska
14-10-2012, 17:57
а чем плохо простой справочник по winapi? »
msdn и есть такой справочник. Или как вы себе представляете этот простой справочник? »
Объединим: Download: Библиотека MSDN для Visual Studio 2008 - Microsoft Download Center - Download Details (http://www.microsoft.com/ru-ru/download/details.aspx?id=16096).

Мне бы пример как это все в одной строчке написать.
Где можно почитать про эти символы на конце? Мне нужно понимать для чего. что можно удалить. что можно для себя добавить. »
MessageBox function (http://msdn.microsoft.com/en-us/library/windows/desktop/ms645505(v=vs.85).aspx)
MessageBoxEx function (http://msdn.microsoft.com/en-us/library/windows/desktop/ms645507(v=vs.85).aspx)

Creator000
14-10-2012, 19:10
Посоветуйте тогда мне учебник по WinAPI. Только чисто WinApi,а не с С/C++ и других языков. Мне нужны чисто команды WinAPI для вставки в nsis. На msdn все по английски и мало информации.

Iska
14-10-2012, 19:22
Creator000, первая ссылка в предыдущем посте.

MSDN — наиболее полная информация из всех возможных. Синтаксис функций («Команд WinAPI» не существует, равно как и «чисто WinAPI») приводится в виде C/C++ потому, что это наиболее часто используемый язык для работы с WinAPI. Если и существует какое-то готовое переложение описания функций для NSIS — спрашивать об этом стоит в профильных темах, например, здесь: .: NSIS - все вопросы :. (http://forum.oszone.net/thread-67386.html).

Creator000
14-10-2012, 19:40
Iska, а в моем первом посте на каком языке написана команда?

первая ссылка в предыдущем посте. »
Объединим: Download: Библиотека MSDN для Visual Studio 2008 - Microsoft Download Center - Download Details. »
Эта? Это программа объемом 2 гигабайта.

ferget
14-10-2012, 19:45
а в моем первом посте на каком языке написана команда? »
Скриптовый язык NSIS

Это программа объемом 2 гигабайта. »
А сколько должно быть?

Creator000
14-10-2012, 19:46
А сколько должно быть? »
А для чего она мне?

ferget
14-10-2012, 19:53
Вы же сами спрашивали справочник по WinApi, это и есть справочник

Iska
14-10-2012, 21:05
Эта? Это программа объемом 2 гигабайта. »
Не удивляйтесь:
Microsoft MSDN Library, 2004, July (Vol. 1-3): 1.9 Gb
MSDN Library for Visual Studio 2008 SP1: 2.3 Gb
Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 (ISO): 1.5 Gb

А для чего она мне? »
Искать потребную информацию в первоисточнике без необходимости постоянного лазания в интернет.

Creator000
14-10-2012, 21:23
Iska, спасибо. надеюсь что она мне поможет.

Creator000
14-10-2012, 22:17
Iska,

Документация Visual Studio 2008
Документация для разработчиков Windows Vista
Документация по набору драйверов Windows (WDK)
Документация по Microsoft Office 2007
База знаний Майкрософт
И многое другое.

Ничего про winapi

Iska
15-10-2012, 00:53
Ничего про winapi »
Ищите и обрящите:

http://img22.imageshack.us/img22/207/image00020121015005135.th.png (http://img22.imageshack.us/i/image00020121015005135.png/)

Creator000
15-10-2012, 13:41
без русского языка не так то просто. сайт хоть перевести можно.




© OSzone.net 2001-2012