Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Из Фокса узнать открыт ли нужный файл Excel
|
|||
|---|---|---|---|
|
#18+
Подскажите, если кто знает, как под управлением фокса узнать открыт ли нужный Excel-файл. Т.е. открыт файл MyFile.xls , как узнать открыт он или нет, в фоксе? Зараннее спаибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2004, 14:40 |
|
||
|
Из Фокса узнать открыт ли нужный файл Excel
|
|||
|---|---|---|---|
|
#18+
Например с помощью вот такой функции Function IsWindowExist parameters WindowName if parameters() = 0 WindowName = '' else WindowName = trim(WindowName) endif IsWindEx = 0 set library to sys(2004) + "Foxtools.fll" mGetWinTxt = RegFn("GetWindowText", "I@CI", "I") mGetWindow = RegFn("GetWindow", "II", "I") mIsWinVis = RegFn("IsWindowVisible", "I", "I") foxhwnd = MAINHWND() hwndNext = CallFn(mGetWindow,foxhwnd,0) do while hwndNext <> 0 if (hWndNext <> foxhWnd) and CallFn(mGetWindow,hWndNext,4) = 0 and CallFn(mIsWinVis,hWndNext) <> 0 Stuffer = space(64) x = CallFn(mGetWinTxt,hWndNext,@Stuffer,64) if WindowName $ Stuffer IsWindEx = hWndNext exit endif endif hWndNext = CallFn(mGetWindow,hWndNext,2) enddo set library to return IsWindEx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2004, 14:47 |
|
||
|
Из Фокса узнать открыт ли нужный файл Excel
|
|||
|---|---|---|---|
|
#18+
как вариант gg=fopen('d:\MyExcel.xls) if gg=-1 messagebox('Возможно файл открыт',48,'') else fclose(gg) messagebox('Возможно файл закрыт',48,'') endif при условии что файл существует ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2004, 14:47 |
|
||
|
Из Фокса узнать открыт ли нужный файл Excel
|
|||
|---|---|---|---|
|
#18+
Спасибо большое! Вроде всё понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2004, 16:24 |
|
||
|
Из Фокса узнать открыт ли нужный файл Excel
|
|||
|---|---|---|---|
|
#18+
2 AleksMed: Я конечно извиняюсь, но не моглибы вы объяснить на двух пальцах как работает ваша вышеприведённая функция, т.е. что за функции RegFn("GetWindowText", "I@CI", "I") и RegFn("GetWindow", "II", "I"), RegFn("IsWindowVisible", "I", "I")? ну и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2004, 18:35 |
|
||
|
Из Фокса узнать открыт ли нужный файл Excel
|
|||
|---|---|---|---|
|
#18+
По-моему если что-то в этот файл программно записыват лучше сделать так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 09:05 |
|
||
|
Из Фокса узнать открыт ли нужный файл Excel
|
|||
|---|---|---|---|
|
#18+
Это древний способ подключения WinAPI функций. Сегодня все пользуются DECLARE DLL для этих целей :) Posted via ActualForum NNTP Server 1.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2004, 02:16 |
|
||
|
Из Фокса узнать открыт ли нужный файл Excel
|
|||
|---|---|---|---|
|
#18+
Можно через канал DDE. Даешь lChan = DDEInitiate("Excel", "System"). Если прошло - значит Excel открыт. Дальше: stTopics = DDERequest(lChan, "Topics"). Если в stTopics есть имя твоего файла - он открыт. Чуть медленновато только работают DDE-функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2004, 20:06 |
|
||
|
Из Фокса узнать открыт ли нужный файл Excel
|
|||
|---|---|---|---|
|
#18+
Да - ещё надо учитывать, что юзверь может открыть 2 и более экземпляров Excel, так что сам Excel спрашивать почти бесполезно - я вообще не очень представляю какой именно из множества экземпляров будет подцеплен по GetObject(), и какой будет отвечать на DDE запросы... Posted via ActualForum NNTP Server 1.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2004, 01:15 |
|
||
|
Из Фокса узнать открыт ли нужный файл Excel
|
|||
|---|---|---|---|
|
#18+
Только первый открытый Excel будет отвечать на lChan = DDEInitiate("Excel", "System"). Для второго и следующих нужно вместо "Excel" писать что-то другое. Мне иногда помогало "Excel2", "Excel3". А для WinMe - что-то типа "[Excel].1" - не помню точно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2004, 12:51 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32705375&tid=1595756]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 340ms |

| 0 / 0 |
