Можно ли узнать откуда запущена программа?

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
kreator
✯ Ветеран ✯
Сообщения: 5025
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 22 раза

Можно ли узнать откуда запущена программа?

Сообщение kreator »

Хочется немножко поуправлять хаосом. Решили даты создания dll хранить в БД на сервере (Firebird). Exe и dll пишем в определённый каталог на сервере. В теории программа должна запускаться из этого каталога. Но не факт. Иногда переписывают рабочий каталог на локальный ресурс, иногда делают ярлык на рабочем столе, а рабочую папку делают локальную. В общем, хаос, версии не совпадают. Хочется узнать откуда запустили программу. Path() отображает рабочую папку, которую указал пользователь, и этот путь не правильный.
We are hard at work… for you. :)
IKSoft
Посетитель
Сообщения: 42
Зарегистрирован: 27 Май 2010, 13:38

Re: Можно ли узнать откуда запущена программа?

Сообщение IKSoft »

Может, это поможет?
Message(clip(command('0')))
kreator
✯ Ветеран ✯
Сообщения: 5025
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 22 раза

Re: Можно ли узнать откуда запущена программа?

Сообщение kreator »

Пока то, что надо. Спасибо. Будем работать. И функция в Кларионе есть 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: Можно ли узнать откуда запущена программа?

Сообщение Admin »

kreator писал(а):Пока то, что надо. Спасибо. Будем работать. И функция в Кларионе есть GetFileDate, не надо самому WinAPI копать. Правда в хелпе описание неправильное. Да, сейчас это болезнь, пока текст в Libsrc не откроешь, ничего не получишь.
Аккуратненько с этим GetFileDate
На Windows 7 у меня по моему DIRECTORY не возвращала верные даты/время файлов
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
kreator
✯ Ветеран ✯
Сообщения: 5025
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 22 раза

Re: Можно ли узнать откуда запущена программа?

Сообщение kreator »

Admin писал(а):Аккуратненько с этим GetFileDate
Я чего и радуюсь то, что это обвязка WinAPI'шных функций. Иногда с WinAPI неудобно работать - структуры, классы свои, функции с непонятными параметрами. А ребята перевели в удобоваримый интерфейс, в конце концов выполнили ту работу, которую каждому из нас пришлось бы делать.
We are hard at work… for you. :)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Re: Можно ли узнать откуда запущена программа?

Сообщение Yufil »

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, просто и корректно.
kreator
✯ Ветеран ✯
Сообщения: 5025
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 22 раза

Re: Можно ли узнать откуда запущена программа?

Сообщение kreator »

Yufil писал(а):В Clarion GetFileTime выдаёт время через API GetSystemTime.
В С8.0 через FileTimeToLocalFileTime. Наверно, правильно, если посмотреть справку по этой функции.
We are hard at work… for you. :)
Аватара пользователя
Admin
Администратор
Сообщения: 3963
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 29 раз
Поблагодарили: 22 раза
Контактная информация:

Re: Можно ли узнать откуда запущена программа?

Сообщение Admin »

Yufil писал(а):Во FreeAbc GetFileTime выдаётся через Directory, просто и корректно.
Спорить не буду. Если не забуду на работе в понедельник проверю.
Был у меня код который не работал. Сейчас вспоминаю что может быть это был не Windows 7 а винда с терминальным сервером. Не помню какая там.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Ответить