MoveSelf proc | почему не работает?

Тема в разделе "WASM.BEGINNERS", создана пользователем xenoid, 19 мар 2007.

  1. xenoid

    xenoid New Member

    Публикаций:
    0
    Регистрация:
    19 мар 2007
    Сообщения:
    9
    При запуске ЕХЕ процедура выполняется до создания окна... т.е. первая.
    Запускаю.... процесс создается много много раз... причем иногда создается и завершается сразу...

    В отчаяние уже второй день не могу понять в чем дело....

    Код (Text):
    1. MoveSelf proc
    2.     LOCAL SysDir:MAXSTR
    3.     LOCAL CurDir:MAXSTR
    4.  
    5.     invoke GetSystemDirectory,addr SysDir,sizeof SysDir
    6.     invoke GetCurrentDirectory,sizeof CurDir,addr CurDir
    7.     invoke CharLower,addr SysDir
    8.     invoke CharLower,addr CurDir
    9.     invoke lstrcmp,addr SysDir,addr CurDir
    10.     .if !(eax==NULL)
    11.         invoke GetModuleFileName,hInstance,addr CurDir,sizeof CurDir
    12.         invoke CharLower,addr CurDir
    13.         szText exeName, '\MyFile.exe'
    14.         invoke lstrcat,addr SysDir,offset exeName
    15.         invoke CopyFile,addr CurDir,addr SysDir,TRUE
    16.         .if eax==NULL
    17.             ret
    18.         .endif
    19.        
    20.         invoke ShellExecute,hWnd,NULL,addr SysDir,NULL,NULL,SW_SHOWNORMAL
    21.         invoke ExitProcess,NULL
    22.     .endif
    23.     ret
    24.  
    25. MoveSelf endp
     
  2. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    попробуй так
    Код (Text):
    1.     invoke GetModuleFileName,hInstance,addr CurDir,sizeof CurDir
    2.     invoke CharLower,addr CurDir
    3.     szText exeName, '\MyFile.exe'
    4.  
    5.     invoke SetCurrentDirectory,addr SysDir
    6.  
    7.     invoke lstrcat,addr SysDir,offset exeName
    8.     invoke CopyFile,addr CurDir,addr SysDir,TRUE
     
  3. xenoid

    xenoid New Member

    Публикаций:
    0
    Регистрация:
    19 мар 2007
    Сообщения:
    9
    Спасибо..
    еще вопрос
    CopyFile - блокирующая функция? (всмысле стоит проверять скопирован файл или нет?)