GetCommandLine

Тема в разделе "WASM.BEGINNERS", создана пользователем Semiono, 26 апр 2010.

  1. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    Надо написать нечто, чтоб на входе воспринимало /bla-bla-bla, остальное в теле программы :)

    Код (Text):
    1. c1 db 'dopusrt.exe',0
    2. c2 db '/cmd Go NEW DUALPATH=',0
    3. c3 db '/cmd Set SOURCE=right',0
    4.  
    5. r1 db '%ProgramFiles%',0
    6. r2 db '\DOpus',0
    7. r3 db ?
    8.  
    9. section '.code' code readable executable
    10.  
    11. start:
    12.         invoke ExpandEnvironmentStrings,r1,r3,400h
    13.         invoke lstrcat,r3,r2
    14.  
    15.         invoke GetCommandLine
    16.      ;   mov ebx,eax
    17.  
    18. next:
    19.         cmp byte [eax],'/'
    20.         je found
    21.         cmp byte [eax],0
    22.         jz exit
    23.         inc eax
    24.         jmp next
    25. found:
    26.         invoke lstrcat,c2,eax
    27.  
    28.         invoke ShellExecute,NULL,NULL,c1,c2,r3,SW_HIDE
    29.         invoke Sleep,100
    30.         invoke ExpandEnvironmentStrings,r1,r3,400h
    31.         invoke lstrcat,r3,r2
    32.         invoke ShellExecute,NULL,NULL,c1,c3,r3,SW_HIDE
    33. exit:
    34.         invoke ExitProcess,0
    У меня здесь почему-то не воспринимается вторая команда </cmd Set SOURCE=right>
    Что не так?
    Первый свитчер полностью выглядит как пример: /cmd Go NEW DUALPATH=/profile
    итп.
    :dntknw:
     
  2. baldr

    baldr New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2010
    Сообщения:
    327
    Semiono,

    То, что lstrcat(c2, eax) грохает c3, не смущает? Константы безопаснее хранить в read-only секции.
     
  3. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    Вот теперь только невзначай дошло зачем атрибуты для секций практически нужны!
     
  4. baldr

    baldr New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2010
    Сообщения:
    327
    Ещё можно поиграться с IMAGE_SCN_MEM_SHARED, забавный способ связи между процессами.