Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404

Кто из пользователей открыл определенный файл

28.06.2022, 15:44. Показов 482. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем.
На компютере windows 10 Enterprise LTSC v.21H2 в общем доступе находится excel файл.
Иногда, когда кто то файл изменяет, то данные не загружается в датагрид. Файл находится в read only.
Сделал программу которая при авторизации пользователя программа автоматически запускается и распознает кто в данный момент использует компьютер.
Дальше программа чекает Task Manager и когда там появляется excel файл с названием файла, то программа записывает в тхт документ - кто открыл файл, дата, время когда файл появился в Task Manager, и время когда с Task Manager файл пропадает - то есть файл закрили.
Проблема в том что все работает только тогда когда я использую компьютер.
Попробовал программу поставить на Windows 7 - там программа работает идеально для всех пользователей.
В чем может быть проблема?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Windows.Forms;
 
namespace DVKC_SOLO_Excel
{
public partial class Form1 : Form
{
string excelFileName = "2022.xlsx - Excel";
public Form1()
{
InitializeComponent();
textBox1.Enabled = false;
textBox2.Enabled = false;
textBox5.Enabled = false;
textBox7.Enabled = false;
}
 
public void Form1_Load(object sender, EventArgs e)
{
this.Opacity = 0;
this.ShowInTaskbar = false;
Datums1.Start();
Laiks1.Start();
textBox1.Text = string.Format("{0}\\{1}", Environment.UserDomainName, Environment.UserName);
if (textBox1.Text == "PC\\Aa")
{
textBox2.Text = "A A";
}
else if (textBox1.Text == "PC\\Bb")
{
textBox2.Text = "B B";
}
else if (textBox1.Text == "PC\\Cc")
{
textBox2.Text = "C C";
}
else if (textBox1.Text == "PC\\Dd")
{
textBox2.Text = "D D";
}
else if (textBox1.Text == "PC\\Ee")
{
textBox2.Text = "E E";
}
timerbutt1.Enabled = true;
}
 
private void Date1_Tick(object sender, EventArgs e)
{
DateTime dateTime = DateTime.Now;
Datums.Text = dateTime.ToShortDateString();
}
 
private void Time1_Tick(object sender, EventArgs e)
{
DateTime dateTime = DateTime.Now;
Laiks.Text = dateTime.ToLongTimeString();
}
 
void button2_Click(object sender, EventArgs e)
{
label9.Text = Date.Text + "\n" + Time.Text + " " + textBox2.Text + " " + "Open" + " " + textBox5.Text + " File";
}
 
private void button5_Click(object sender, EventArgs e)
{
label11.Text = Time.Text + " " + textBox2.Text + " " + "Close" + " " + textBox7.Text + " File";
}
 
void timerbutt1_Tick(object sender, EventArgs e)
{
var processes = from p in Process.GetProcessesByName("excel")
select p;
foreach (var process in processes)
{
if (process.MainWindowTitle == excelFileName)
{
listBox1.Items.Add(process.MainWindowTitle);
}
if (listBox1.Items.Contains("2022.xlsx - Excel"))
{
timerbutt1.Enabled = false;
label9.Text = Date.Text + "\n" + Time.Text + " " + textBox2.Text + " " + "Open" + " " + textBox7.Text + " File";
timerbutt2.Enabled = true;
 
}
}
}
 
void timerbutt2_Tick(object sender, EventArgs e)
{
if (Process.GetProcessesByName("excel").Length > 0)
{
 
}
else
{
timerbutt2.Enabled = false;
listBox1.Items.Clear();
label11.Text = Time.Text + " " + textBox2.Text + " " + "Close" + " " + textBox7.Text + " File";
button1.PerformClick();
}
var processes = from p in Process.GetProcessesByName("excel")
select p;
foreach (var process in processes)
{
if (process.MainWindowTitle == excelFileName)
{
 
}
else
{
timerbutt2.Enabled = false;
listBox1.Items.Clear();
label11.Text = Time.Text + " " + textBox2.Text + " " + "Open" + " " + textBox7.Text + " File";
button1.PerformClick();
}
}
}
 
void button1_Click(object sender, EventArgs e)
{
string fileName = Date.Text + " " + textBox2.Text + " " + "Close  2022" + ".txt";
string path = @"S:\DVKC_DS\0_DVKC DS\DVKC_DATABASES\FS\Excel Open User\" + fileName;
using (StreamWriter stream = new StreamWriter(path, true))
stream.WriteLine(label9.Text + "\n" + label11.Text + "\n");
label9.Text = "";
label11.Text = "";
this.Dispose();
System.Diagnostics.Process.Start(@"S:\DVKC_DS\DVKC SOLO\Program Application\DVKC SOLO Excel\DVKC SOLO Excel\bin\Debug\DVKC SOLO Excel.exe");
}
}
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.06.2022, 15:44
Ответы с готовыми решениями:

В окне с заголовком "Файл уже используется" не указывается, кто открыл этот файл
Всем привет. В общем столкнулся с такой проблемой. Есть домен. В домене есть шара. Пользаки могут открывать файлы на шаре (например...

После того как скачал и открыл PDF файл на компьютер и открыл, не могу зайти на сайты
Здравствуйте, скачал ПДФ файл, открыл его на компьютере, и теперь не могу зайти на тот сайт откуда скачивал, пишет Не удается найти...

Немецкий язык. Кто открыл мышьяк?
Есть такая шутливая поговорка, что мышьяк открыли мыши. Но ближе к теме. Есть русский текст который надо перевести на немецкий язык. В...

2
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
29.06.2022, 20:00  [ТС]
У кого-нибудь есть решение, почему так?
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
30.06.2022, 05:03
Felikss, вы не отловите кто и когда открыл файл. если у вас какие то таблицы которые должны заполнятся с разных мест, используйте бд+ приложения для изменения этой бд, это можно сделать даже в excel если с c# у вас проблемы. а конечное отображение расчетов можно уже вывести в excel но уже в локальные файлы которые не будут блокироваться другим пользователем
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.06.2022, 05:03
Помогаю со студенческими работами здесь

Определяем, кто открыл файлы по шаре
Доброго времени суток. Есть машина с вин7 на которой открыта шара. Нужно определить с каких компов какие файлы открыты. С помощью...

Как программно узнать, кто последним (октрывал/менял) определенный файл?
Как программно узнать, кто последним(октрывал/менял) определенный файл ?

Вести учет, кто и когда открыл отчет
Добрый день, прошу помочь в вопросе, как вести учет кто и когда открыл отчет Excel? Думал сделать макросом запись на скрытый...

Кто-то Traveler открыл: Http://barabash.tversu.ru/
Может ещё и ID раздает?

Нечаянно открыл exe файл другой программой
помогите пожалуйста. ничайно открыл exe файл другой программой, теперь при открытии любого exe файла выдает окно выбора программы открытии...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru