2013-07-22 4 views
1

Я использую Powerbuilder 11.5, я хочу вывести сообщение об ошибке пользователю, если конкретный файл excel уже открыт в excel. Пожалуйста, дайте мне знать комментарий, чтобы найти это.Powerbuilder: как найти файл excel уже открыт

+2

Ваши пользователи действительно хотят получить сообщение об ошибке в этой ситуации? Почему бы просто не активировать приложение Excel и не вывести это окно электронной таблицы на передний план? Кажется, гораздо удобнее ... – NoazDad

ответ

2

Простой способ заключается в попытке открыть файл с FileOpen() с LockReadWrite! блокировки файлов (эксклюзивный режим):

  • если это FileOpen() возвращает -1 отверстие было не в состоянии, и вы можете уведомить пользователя
  • если FileOpen() возвращено что-то еще, juste FileClose() и продолжить этот процесс

Недостаток такого рода проверки заключается в том, что он просто пытается использовать exclusi ve доступ к файлу, и если открытие не удалось, файл , вероятно, уже открыт, но вы не можете определить, по какому процессу/приложению.

Трудным способом было бы перечислить процессы и их файлы, чтобы проверить, указывает ли вы на файл, который вы проверяете. Не невозможно, но гораздо сложнее сделать с PowerBuilder.

+0

Он отлично работает, спасибо за вашу помощь – user2393425

+1

@ user2393425: не забудьте [принять ответ] (http://meta.stackexchange.com/a/65088/173356) – Seki