Что нового

_WinAPI_ReadFile + Автозагрузка

DanSaratov

Новичок
Сообщения
112
Репутация
1
Столкнулся с такой проблемой, если я запускаю программу сам, то всё работает как надо, а если она сидит в автозагрузке, то при запуске
Код:
_WinAPI_ReadFile
выдаёт пустую строку.
Код:
#include <Winapi.au3>
#RequireAdmin
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run", @ScriptName, "REG_SZ", '"'&@ScriptFullPath&'"')
while 1
$nBytes=0
$rid = _WinAPI_CreateFile('Update.dat',2,2,2)
$tBuff = DllStructCreate("byte[4]" )
_WinAPI_ReadFile($rid, DllStructGetPtr($tBuff),'4', $nBytes)
_WinAPI_CloseHandle($rid)
$tvbx= BinaryToString(DllStructGetData($tBuff, 1))

	MsgBox(0,'',$tvbx)
WEnd

Что с этим можно сделать?
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Проверять в цикле доступ к файлу,а потом читать его
 
Автор
DanSaratov

DanSaratov

Новичок
Сообщения
112
Репутация
1
joiner сказал(а):
Проверять в цикле доступ к файлу,а потом читать его
Тут, кажется дело не в этом, а в типе запуска. Так как я запускал цикл проверки fileexist, и он постоянно говорил что файла нету, а потом, остановил цикл и запустил заного вручную, и вуаля, файл есть.
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
DanSaratov
Либо укажи путь к файлу полный, либо с помощью @ScriptDir, либо с помощью FileChangeDir. ПРосто когда с клика запускаешь то текущий путь входит в переменное окружение, а когда из реестра или через bat-файл, то текущий путь является путь bat-файла или системной папки, а там нет требуемого тебе файла
 
Верх