|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.12.2009, 16:59 | #1 |
Форумчанин
Регистрация: 17.09.2008
Сообщений: 349
|
[masm32] GetCurrentDirectoryA
Есть форма (CreateWindowEx), в ней есть CheckBox и Button. При нажатии на кнопку, создаётся раздел в реестре (RegCreateKeyEx) и в этом разделе создаётся ключ (RegSetValueEx), значение которого - путь, в котором лежит exe (GetCurrentDirectoryA). После чего выполняется функция RegCloseKey. Это всё работает.
Проблема в том, что после выполнения функции GetCurrentDirectoryA, функция: Код:
Часть кода, создание checkbox: Код:
Код:
если чем помог, поставьте отзыв на весы
|
03.12.2009, 18:52 | #2 |
Форумчанин
Регистрация: 05.12.2007
Сообщений: 236
|
Return Value
The return value from a button created with the BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON, or BS_3STATE style can be one of the following. BST_CHECKED Button is checked. BST_INDETERMINATE Button is grayed, indicating an indeterminate state (applies only if the button has the BS_3STATE or BS_AUTO3STATE style). BST_UNCHECKED Button is cleared Remarks If the button has a style other than those listed, the return value is zero. проверяй код, комп не ошибается |
03.12.2009, 19:18 | #3 |
Форумчанин
Регистрация: 17.09.2008
Сообщений: 349
|
Весь прикол в том, что когда я убираю GetCurrentDirectoryA, всё прекрасно работает. Когда CheckBox отмечен, в eax - 1, когда не отмечен, eax - 0.
Но, когда добавляю GetCurrentDirectoryA, отмечаю CheckBox или не отмечаю, в eax - 0. Даже, когда SendMessage ставил выше GetCurrentDirectoryA в коде - работало только при первом нажатии на кнопку, при втором нажатии (и предварительном удалении раздела в реестре) - уже не добавляет.
если чем помог, поставьте отзыв на весы
Последний раз редактировалось Xatr; 03.12.2009 в 19:25. |
03.12.2009, 20:06 | #4 |
Форумчанин
Регистрация: 05.12.2007
Сообщений: 236
|
Выложи сорсы полностью
|
04.12.2009, 17:52 | #5 |
Форумчанин
Регистрация: 17.09.2008
Сообщений: 349
|
Весь мой код:
если чем помог, поставьте отзыв на весы
|
04.12.2009, 19:04 | #6 |
Форумчанин
Регистрация: 05.12.2007
Сообщений: 236
|
1.Код написан ужасно!!!!!!!!!!!!!!! Я даже когда начинал изучать ассемблер так не писал.
2. Это прикол? .ELSEIF e==111h;WM_COMMAND ))))) 3. Проблема в том что портится хэндл окна - он забивается текстом 4. Ты смотрел в отладчике? 5. Вот твоя причина: o db 0 am dd 0 и ты о используешь как: invoke GetCurrentDirectoryA,MAX_PATH,addr o Ты в о помещаешь путь, под который ты отвел 1 байт. Естно он забъет все близлежащие переменные P/S/ Пользуйся диалогами - не страдай фигней. что это за обозначение переменных? черт ногу сломит au dd ? h dd 0 ;буквы в кнопках не жирные d dd 0 o db 0 am dd 0 zz dd 0 .const a db "prog",0 b db "static",0 f db "SOFTWARE\121",0 g db "InstallLang",0 j db "ru",0 k db "Install",0 l db "1111",0 m db "InstallVers",0 n db "1.6.01",0 p db "InstallPath",0 q db "5464",0 s db "button",0 t db "Запустить",0 u db "1.exe",0 w db "Больше не показывать это окно",0 v db "121",34,0 x db "212",0 y db "333",0 z db "444",0 aa db "555",0 ab db "666",0 ac db "777",0 ad db "open",0 ae db "c1",0 af db "t854",0 ag db "c2",0 aj db "986",0 ai db "c3",0 ak db "hide",0 ao db "1",0 |
07.12.2009, 16:14 | #7 |
Форумчанин
Регистрация: 17.09.2008
Сообщений: 349
|
Я уже сам нашёл ошибку. Проблема была в
Код:
А константы со значением "111", "222" и т. д. к функции отношения не имеют, поэтому и с такими значениями. У меня остался 1 вопрос. Как прочитать значение ключа из реестра, который был создан после функции "SendMessage..."? Какие параметры писать в функции RegQueryValueEx?
если чем помог, поставьте отзыв на весы
Последний раз редактировалось Xatr; 07.12.2009 в 19:21. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
MASM32, начало | Delffinn | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 12 | 19.07.2012 19:09 |
masm32 v9. не линкует программу | Alcash | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 7 | 23.06.2008 09:57 |
Random на MASM32 | Ulex | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 6 | 02.05.2008 16:00 |
DirectX на masm32 | Ulex | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 10.03.2008 23:05 |