|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 9, 2004 13:40:24 Нарыл в инете исходник программного запуска dialup'a: include \masm32\include\Rasapi32.inc
includelib \masm32\lib\Rasapi32.lib
.data?
TrueSize dd ?
uEntries dd ?
password dd ?
ren RASENTRYNAMEA <?>
RasCon RASCONNA <?>
.code
_start:mov RasCon.hrasconn,0
lea esi,ren
mov dword ptr [esi],108h
push offset uEntries
push offset TrueSize
push esi
push 0
push 0
call RasEnumEntries
; кстати, если кто знает, обясните плиз почему нуно 2 раза использовать функцию RasEnumEntries, чтоб прога работала?
push offset uEntries
push offset TrueSize
push esi
push 0
push 0
call RasEnumEntries
push sizeof RASDIALPARAMSA
push 0
call GlobalAlloc
mov edi,eax
assume edi:ptr RASDIALPARAMSA
mov dword ptr [edi],041Ch
invoke lstrcpy,addr [edi].szEntryName,offset ren.szEntryName
push offset password
push edi
push 0
call RasGetEntryDialParams
push offset RasCon.hrasconn
push 0
push 0
push edi
push 0
push 0
call RasDial
push edi
call GlobalUnlock
invoke ExitProcess,0
end _start
Кода-вить соединяется - появляется значок на сис-трейе. Как сделать, чтоб он там ваще не появлялся? |
|
|
Дата: Авг 9, 2004 18:48:27 вот моя диалапка см. аттач. в треи у меня ниче непоявлялось, тока я тестил на модеме все работало тока я не знаяю как спикер на модеме отключить при наборе. 193984792__dstealdial.zip |
|
|
Дата: Авг 9, 2004 19:07:11 ; кстати, если кто знает, обясните плиз почему нуно 2 раза использовать функцию RasEnumEntries, чтоб прога работала? Если я правильно понял написанное в MSDN, то при наличии в системе нескольких подключений такая прога в лучшем случае не будет работать, а в худшем - будет довольно громко падать. |
|
|
Дата: Авг 9, 2004 20:05:16 · Поправил: Flasher khv_test, твоя прога мой vpn не находит :) RobinFood, я тут укороченный вариант написал.., если замутить нужные проверки всё ок будет ;) |
|
|
Дата: Авг 10, 2004 05:38:26 · Поправил: q_q Flasher почему нуно 2 раза использовать функцию RasEnumEntries Это не обязательно. А применяется для того, чтобы первым вызовом определить требуемый (четвертый параметр) размер буфера (третий параметр), перед вторым вызовом зарезервировать память и произвести второй вызов. Примерно так ... local AttemptCount : dword local uEntries : dword local TrueSize : dword local pREN : dword ... mov pREN,0 mov TrueSize,sizeof RASENTRYNAME mov AttemptCount,5 Attempt: cmp pREN,0 jz short @F push pREN call GlobalFree mov pREN,0 @@: push TrueSize push GPTR call GlobalAlloc test eax,eax jz @@_ERROR_NOT_ENOUGH_MEMORY mov pREN,eax mov (RASENTRYNAME ptr [eax]).dwSize,sizeof RASENTRYNAME xor ecx,ecx mov uEntries,ecx lea ecx,uEntries push ecx lea ecx,TrueSize push ecx push eax push 0 push 0 call RasEnumEntries cmp eax,ERROR_BUFFER_TOO_SMALL jnz short @F dec AttemptCount jnz short Attempt @@: cmp eax,ERROR_SUCCESS jnz Dispatch_RasEnumEntries_Error ; здесь все ok ... push pREN call GlobalFree ... Dispatch_RasEnumEntries_Error: ... @@_ERROR_NOT_ENOUGH_MEMORY: ... |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.057 |