Страница 1 из 1
Добавлено: 31 Январь 2004, 23:28
Гость
У меня такая проблема - необходимо поместить файл с данными (драйвер
TopSpeed) - в директорий с Windows.
При этом, в принципе, на разных компьютерах каталог Windows может
называться по-разному (Win98, Win и т.д.) и находиться на разных диках.
Как можно в словаре прописать путь к файлу, чтобы на всех компьютерах
он помещался именно в каталог Windows?
Пробовал задать путь вида %SystemRoot%\asd.tps - не понимает.
ys@antonovus.ru
Добавлено: 02 Февраль 2004, 7:58
Гость
Это не простая задача.В ДОС была такая внешняя штучка под названием
Fname,которая позволяла решить эту проблему.Один из путей,проверенных мной:
1-укажи в качестве пути глобальную переменную
2-после компиляции в головном модуле руками убери кавычки в оформлении
пути к файлу
3-до начала работы основных модулей программы "попроси" usera ввести путь
к нужной директории или считай путь из дополнительного файла,затем
присвой это значение глобальной переменной.Все должно заработать.
Может есть и более элегантный метод решения.Если найдешь,обязательно выложи на форум.
Успехов! Lsgsoftware
Добавлено: 02 Февраль 2004, 10:59
Гость
Функция API GetWindowsDirectory возвращает путь к системному каталогу Windows, как бы он ни назывался и где бы он ни находился.
Пробовал?
С уважением,
Mit
Добавлено: 02 Февраль 2004, 11:10
Гость
Задача довольно простая.
выполняешь пункт 1 послания
далее используй WinApi (GetWindowsDirectory)
GetWindowsDirectory returns the full pathname of the windows directory.
в Global Map
MODULE('WINAPI')
GetWindowsDirectory(*CSTRING,UNSIGNED),UNSIGNED,PASCAL,RAW,NAME('GetWindowsDirectoryA')
END
где тебе надо
DATA
LOC:WindowsDirectory CString(255)
Code
If GetWindowsDirectory(LOC:WindowsDirectory,Size(LOC:WindowsDirectory))
Message(LOC:WindowsDirectory)
End

Написал: Ravenous(3)
Добавлено: 02 Февраль 2004, 12:36
Гость
См. переменную окружения WINDIR
Igor Gubin <
igor@quantor.com>
(Добавление)
Типа ФАК
http://www.clarionline.h1.ru/index.php? ... iew&qid=48
Вопрос: Необходимо в приложениии определить в какой каталог установлена Windows. Как это сделать?
Ответ 1: Ниже пример кода для получения Windows-каталога:
В глобальном MAP'е описываем прототип:
Код: Выделить всё
MODULE('win32')
COMPILE('***',_WIDTH32_)
GetWindowsDirectory(*CSTRING,UNSIGNED),UNSIGNED,PASCAL,RAW,NAME('GetWindowsDirectoryA')
!***
END
В коде процедуры:
Код: Выделить всё
! Секция данных
LOC:WinDir CSTRING(256)
LOC:Size UNSIGNED
LOC:Flag UNSIGNED
! Секция кода
LOC:Size = SIZE(LOC:WinDir)
LOC:Flag = GetWindowsDirectory(LOC:WinDir,LOC:Size)
IF LOC:Flag AND LOC:Flag =< LOC:Size
MESSAGE('Windows здесь -> ' & CLIP(LOC:WinDir),'Каталог Windows')
END
Функция возвращает ненулевое значение в случае успешного завершения, иначе 0.
Алексей,
начальник отдела ПТО
ООО "ОРК"
mail:
alex@jrcn.donetsk.ua, icq: 62605472
www:
http://atinet.hypermart.net
http://www.nikasoft.co.uk
http://www.clarionline.h1.ru (FAQ-онлайн)
irc: irc.lucky.net:6669, channel #clarion, Bambino
origin:
Hезавидна участь того, кому никто не завидует.
Написал: ClaList(2)
Добавлено: 02 Февраль 2004, 16:37
Гость
Код: Выделить всё
MAP
MODULE('Windows API')
GetWindowsDir(*CSTRING, USHORT), USHORT, RAW, PASCAL, NAME('GetWindowsDirectoryA')
END
END
SystemFolder CSTRING(255)
code
Res# = GetWindowsDir(SystemFolder, SIZE(SystemFolder))
MESSAGE(SystemFolder)
--
Всего хорошего
Evgeny mailto:
mixer@clarionlife.net
Сайт для кларионистов:
http://www.clarionlife.net
Clarion FAQ:
http://www.clarionlife.net/cgi-bin/bl_faq.pl?comm=tree
Написал: ClaList(2)