Можно ли узнать откуда запущена программа?
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- ✯ Ветеран ✯
- Сообщения: 5025
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
Можно ли узнать откуда запущена программа?
Хочется немножко поуправлять хаосом. Решили даты создания dll хранить в БД на сервере (Firebird). Exe и dll пишем в определённый каталог на сервере. В теории программа должна запускаться из этого каталога. Но не факт. Иногда переписывают рабочий каталог на локальный ресурс, иногда делают ярлык на рабочем столе, а рабочую папку делают локальную. В общем, хаос, версии не совпадают. Хочется узнать откуда запустили программу. Path() отображает рабочую папку, которую указал пользователь, и этот путь не правильный.
We are hard at work… for you.
-
- ✯ Ветеран ✯
- Сообщения: 5025
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
Re: Можно ли узнать откуда запущена программа?
Пока то, что надо. Спасибо. Будем работать. И функция в Кларионе есть GetFileDate, не надо самому WinAPI копать. Правда в хелпе описание неправильное. Да, сейчас это болезнь, пока текст в Libsrc не откроешь, ничего не получишь.
We are hard at work… for you.
- Дед Пахом
- Старичок
- Сообщения: 3143
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 32 раза
- Контактная информация:
Re: Можно ли узнать откуда запущена программа?
С помощью Windows Script Host можно узнать не только дату файла Прицепил демку, на первой вкладке вся информация о файловой системе (кнопки с "?").
- Вложения
-
- wshtest.zip
- (871.56 КБ) 120 скачиваний
С уважением, ДП
- Admin
- Администратор
- Сообщения: 3963
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 29 раз
- Поблагодарили: 22 раза
- Контактная информация:
Re: Можно ли узнать откуда запущена программа?
Аккуратненько с этим GetFileDatekreator писал(а):Пока то, что надо. Спасибо. Будем работать. И функция в Кларионе есть GetFileDate, не надо самому WinAPI копать. Правда в хелпе описание неправильное. Да, сейчас это болезнь, пока текст в Libsrc не откроешь, ничего не получишь.
На Windows 7 у меня по моему DIRECTORY не возвращала верные даты/время файлов
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
-
- ✯ Ветеран ✯
- Сообщения: 5025
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
Re: Можно ли узнать откуда запущена программа?
Я чего и радуюсь то, что это обвязка WinAPI'шных функций. Иногда с WinAPI неудобно работать - структуры, классы свои, функции с непонятными параметрами. А ребята перевели в удобоваримый интерфейс, в конце концов выполнили ту работу, которую каждому из нас пришлось бы делать.Admin писал(а):Аккуратненько с этим GetFileDate
We are hard at work… for you.
Re: Можно ли узнать откуда запущена программа?
1. В Clarion GetFileTime выдаёт время через API GetSystemTime. Помнится, решал похожую задачку - присвоения даты и времени файлу. Вот у меня SystemTime писала неправильное время.
Пришлось использовать цепочку
FileHandle = CreateFile(Loc:FileName, Generic_All, File_Share_Read, 0, Open_Existing, FILE_ATTRIBUTE_NORMAL,0)
SystemtimeToFileTime(SystemTime,LocalFileTime)
LocalFiletimeToFileTime(LocalFileTime,FileTime)
SetFileTime(FileHandle,0,0,Address(FileTime))
CloseHandle(FileHandle)
Я к тому, что надо отличать SystemTime и LocalTime, они могут не совпадать. Впрочем, могу и ошибаться...
Во FreeAbc GetFileTime выдаётся через Directory, просто и корректно.
Пришлось использовать цепочку
FileHandle = CreateFile(Loc:FileName, Generic_All, File_Share_Read, 0, Open_Existing, FILE_ATTRIBUTE_NORMAL,0)
SystemtimeToFileTime(SystemTime,LocalFileTime)
LocalFiletimeToFileTime(LocalFileTime,FileTime)
SetFileTime(FileHandle,0,0,Address(FileTime))
CloseHandle(FileHandle)
Я к тому, что надо отличать SystemTime и LocalTime, они могут не совпадать. Впрочем, могу и ошибаться...
Во FreeAbc GetFileTime выдаётся через Directory, просто и корректно.
-
- ✯ Ветеран ✯
- Сообщения: 5025
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
Re: Можно ли узнать откуда запущена программа?
В С8.0 через FileTimeToLocalFileTime. Наверно, правильно, если посмотреть справку по этой функции.Yufil писал(а):В Clarion GetFileTime выдаёт время через API GetSystemTime.
We are hard at work… for you.
- Admin
- Администратор
- Сообщения: 3963
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 29 раз
- Поблагодарили: 22 раза
- Контактная информация:
Re: Можно ли узнать откуда запущена программа?
Спорить не буду. Если не забуду на работе в понедельник проверю.Yufil писал(а):Во FreeAbc GetFileTime выдаётся через Directory, просто и корректно.
Был у меня код который не работал. Сейчас вспоминаю что может быть это был не Windows 7 а винда с терминальным сервером. Не помню какая там.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса