Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2014, 19:22   #11
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Драйвера для этого не надо.
Не уверен.
Подскажите API перебора хендлов процесса?

Edit:
Нашел, но там все сделано через незадокументированные API.

Последний раз редактировалось waleri; 04.12.2014 в 19:29.
waleri вне форума Ответить с цитированием
Старый 04.12.2014, 19:26   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Если файл находится на сервере, и доступа соответствующего к нему нет то пиши "пропало"
Цитата:
Подскажите API перебора хендлов процесса?
Я так сейчас не вспомню. Была программа от Sysinternals которая хендлы показывает... Process Explorer кажись...
Цитата:
там все сделано через незадокументированные API.
Ну да. Что-то такое. У меня был раньше пример, но увы я его потерял...

P.S. кажись нашел:Unit1.rar
I'm learning to live...

Последний раз редактировалось Stilet; 04.12.2014 в 19:46.
Stilet вне форума Ответить с цитированием
Старый 04.12.2014, 19:35   #13
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

Stilet, спасибо.
Скрипт вне форума Ответить с цитированием
Старый 07.12.2014, 21:12   #14
Полный 30h
Пользователь
 
Аватар для Полный 30h
 
Регистрация: 10.12.2011
Сообщений: 26
По умолчанию

А если попробовать
CopyFile
DeleteFile
По идее если файл ещё чем то открыт удалить его не получится.
Меня постоянно преследуют умные мысли, но я быстрее!
Полный 30h вне форума Ответить с цитированием
Старый 07.12.2014, 21:27   #15
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

Полный 30h, но это ведь тоже обходной путь. И зачем так делать? Почему просто не открыть? В чём разница между открытием файла и копированием файла в отношении этой темы? Это ускорит или что?
Скрипт вне форума Ответить с цитированием
Старый 07.12.2014, 23:32   #16
Полный 30h
Пользователь
 
Аватар для Полный 30h
 
Регистрация: 10.12.2011
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Скрипт Посмотреть сообщение
Полный 30h, но это ведь тоже обходной путь. И зачем так делать? Почему просто не открыть? В чём разница между открытием файла и копированием файла в отношении этой темы? Это ускорит или что?
Цитата:
Сообщение от Скрипт Посмотреть сообщение
Здравствуйте.
Но меня интересует не любой способ, а способ без открывания файла.
бла бла бла
Вот меня интересует именно способ без открытия.
Ты уже определись с вводной. А то то открывать можно, то открывать нельзя.
И что значит "обходной путь". Если так расуждать, то даже штатное копирование данных из файла и тот по твоим меркам обходной путь. Сперва его открыть надо, а потом только копировать данные.
Меня постоянно преследуют умные мысли, но я быстрее!
Полный 30h вне форума Ответить с цитированием
Старый 07.12.2014, 23:39   #17
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

Полный 30h, в этой теме я подразумевал следующее.
Я указываю для API-функции полное имя файла (путь + имя) и API-функция сообщает мне, открыт файл или нет.

Такого в Windows нет. Есть обходные пути:
  1. открытие файла с определёнными параметрами. При определённых параметрах, если файл открыт, то файл не откроется и API-функция выдаст ошибку. Эта ошибка и является признаком, что файл открыт;
  2. копирование файла. Если файл открыт, то нельзя будет его скопировать;
  3. анализ компьютера, на котором находится файл: просматриваются некоторые данные компьютера, в которых ищется полное имя файла. Если в компьютере есть полное имя файла, значит файл открыт.
Скрипт вне форума Ответить с цитированием
Старый 08.12.2014, 00:01   #18
Полный 30h
Пользователь
 
Аватар для Полный 30h
 
Регистрация: 10.12.2011
Сообщений: 26
По умолчанию

Третий пункт на мой взгляд утопия. Что это за пресловутые "некоторые данные компьютера"? Допустим у тебя 100500 программ которые работают с файлом txt.txt 250 из них хранят имя файла в зашифрованном виде, а когда запускаются расшифровывают имя файла, открывают, получают хендл, имя файла затирают и дальше работают с хенделом. Опять же, даже те что запущены и работают с именем файла открыто, каким образом ты в них влезешь посмотреть открыт он в них или нет?
Такую информацию ты можешь получить только от операционной системы. т.е. мы опять вернулись к нашим API
Меня постоянно преследуют умные мысли, но я быстрее!
Полный 30h вне форума Ответить с цитированием
Старый 08.12.2014, 00:47   #19
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
копирование файла. Если файл открыт, то нельзя будет его скопировать;
Что за бред? Я вам больше скажу запущенный exe можно переименовать.
p51x вне форума Ответить с цитированием
Старый 08.12.2014, 07:35   #20
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

Полный 30h, я подразумевал в третьем пункте анализ операционной системы. Я общими словами написал, поэтому мы не поняли друг друга. Чтобы узнать, открыл или нет файл, нужно проанализировать некоторые места операционной системы и если в каком-то месте есть полное имя файла, значит файл открыт.

p51x, есть API-функции, которые копируют файл. Если файл открыт, то возникает ошибка. Ошибка явялется индикатором, что файл открыт.
Скрипт вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как программно определить, что файл уже кем-то открыт? AlexSoft777 Общие вопросы Delphi 6 05.07.2011 22:05
Проверка открыт ли файл в сети Klim Bassenger Microsoft Office Excel 4 29.09.2010 20:50
Как определить закрыт или открыт текстовый файл ZvEr_HaCkEr Общие вопросы Delphi 3 28.07.2010 17:33
Из программы 1.exe создаем пустой файл 2.exe. Как из программы 1 внести API функции в программу 2? X-LEV-X Общие вопросы Delphi 7 09.03.2010 08:33
Как узнать, открыт ли файл? #32 Microsoft Office Excel 5 30.10.2009 12:04