Я использую Powerbuilder 11.5, я хочу вывести сообщение об ошибке пользователю, если конкретный файл excel уже открыт в excel. Пожалуйста, дайте мне знать комментарий, чтобы найти это.Powerbuilder: как найти файл excel уже открыт
ответ
Простой способ заключается в попытке открыть файл с FileOpen()
с LockReadWrite!
блокировки файлов (эксклюзивный режим):
- если это
FileOpen()
возвращает-1
отверстие было не в состоянии, и вы можете уведомить пользователя - если
FileOpen()
возвращено что-то еще, justeFileClose()
и продолжить этот процесс
Недостаток такого рода проверки заключается в том, что он просто пытается использовать exclusi ve доступ к файлу, и если открытие не удалось, файл , вероятно, уже открыт, но вы не можете определить, по какому процессу/приложению.
Трудным способом было бы перечислить процессы и их файлы, чтобы проверить, указывает ли вы на файл, который вы проверяете. Не невозможно, но гораздо сложнее сделать с PowerBuilder.
Он отлично работает, спасибо за вашу помощь – user2393425
@ user2393425: не забудьте [принять ответ] (http://meta.stackexchange.com/a/65088/173356) – Seki
Ваши пользователи действительно хотят получить сообщение об ошибке в этой ситуации? Почему бы просто не активировать приложение Excel и не вывести это окно электронной таблицы на передний план? Кажется, гораздо удобнее ... – NoazDad