При запуске ЕХЕ процедура выполняется до создания окна... т.е. первая. Запускаю.... процесс создается много много раз... причем иногда создается и завершается сразу... В отчаяние уже второй день не могу понять в чем дело.... Код (Text): MoveSelf proc LOCAL SysDir:MAXSTR LOCAL CurDir:MAXSTR invoke GetSystemDirectory,addr SysDir,sizeof SysDir invoke GetCurrentDirectory,sizeof CurDir,addr CurDir invoke CharLower,addr SysDir invoke CharLower,addr CurDir invoke lstrcmp,addr SysDir,addr CurDir .if !(eax==NULL) invoke GetModuleFileName,hInstance,addr CurDir,sizeof CurDir invoke CharLower,addr CurDir szText exeName, '\MyFile.exe' invoke lstrcat,addr SysDir,offset exeName invoke CopyFile,addr CurDir,addr SysDir,TRUE .if eax==NULL ret .endif invoke ShellExecute,hWnd,NULL,addr SysDir,NULL,NULL,SW_SHOWNORMAL invoke ExitProcess,NULL .endif ret MoveSelf endp
попробуй так Код (Text): invoke GetModuleFileName,hInstance,addr CurDir,sizeof CurDir invoke CharLower,addr CurDir szText exeName, '\MyFile.exe' invoke SetCurrentDirectory,addr SysDir invoke lstrcat,addr SysDir,offset exeName invoke CopyFile,addr CurDir,addr SysDir,TRUE
Спасибо.. еще вопрос CopyFile - блокирующая функция? (всмысле стоит проверять скопирован файл или нет?)