MS FRAMEWORK VB.NET

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Vadym Voytas
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 06.08.2005 (Сб) 20:37

MS FRAMEWORK VB.NET

Сообщение Vadym Voytas » 16.08.2005 (Вт) 13:36

MS FRAMEWORK VB.NET
Последний раз редактировалось Vadym Voytas 30.09.2010 (Чт) 0:50, всего редактировалось 1 раз.

Krasavica
Небожительница
Небожительница
Аватара пользователя
 
Сообщения: 1378
Зарегистрирован: 04.11.2003 (Вт) 17:51
Откуда: Россия, город-герой Москва ;-)

Сообщение Krasavica » 16.08.2005 (Вт) 14:53

Я думаю, вы сами понимаете, что решение с файлом (можно создать файл username.lck, (сколько пользователей столько и файлов) но не сохранять, это даст выполнить проверку при логине пользователя, если есть файл с именем пользователя .lck - то сообщение-извините такой человек уже работает, а если программа была завершена некорректно, то файлик пропадет, так как он не сохранялся) не самое подходящее, хотя бы потому, что информацию в файле можно
подправить :)
Я бы использовала именованные мьютексы. Вот пример:

// This example shows how a named mutex is used to signal between
// processes or threads.
// Run this program from two (or more) command windows. Each process
// creates a Mutex object that represents the named mutex "MyMutex".
// The named mutex is a system object whose lifetime is bounded by the
// lifetimes of the Mutex objects that represent it. The named mutex
// is created when the first process creates its local Mutex; in this
// example, the named mutex is owned by the first process. The named
// mutex is destroyed when all the Mutex objects that represent it
// have been released.
// The second process (and any subsequent process) waits for earlier
// processes to release the named mutex.

using System;
using System.Threading;

public class Test
{
public static void Main()
{
// Set this variable to false if you do not want to request
// initial ownership of the named mutex.
bool requestInitialOwnership = true;
bool mutexWasCreated;

// Request initial ownership of the named mutex by passing
// true for the first parameter. Only one system object named
// "MyMutex" can exist; the local Mutex object represents
// this system object. If "MyMutex" is created by this call,
// then mutexWasCreated contains true; otherwise, it contains
// false.
Mutex m = new Mutex(requestInitialOwnership,
"MyMutex",
out mutexWasCreated);

// This thread owns the mutex only if it both requested
// initial ownership and created the named mutex. Otherwise,
// it can request the named mutex by calling WaitOne.
if (!(requestInitialOwnership && mutexWasCreated))
{
Console.WriteLine("Waiting for the named mutex.");
m.WaitOne();
}

// Once the process has gained control of the named mutex,
// hold onto it until the user presses ENTER.
Console.WriteLine("This process owns the named mutex. " +
"Press ENTER to release the mutex and exit.");
Console.ReadLine();

// Call ReleaseMutex to allow other threads to gain control
// of the named mutex. If you keep a reference to the local
// Mutex, you can call WaitOne to request control of the
// named mutex.
m.ReleaseMutex();
}
}


В вашем случае, видимо есть смысл завести по именованному мьютексу на каждого юзера и из другого процесса проверять, создан ли мьютекс с таким именем. Если да - значит пользователь зарегистрирован в системе. Если нет - можно заходить.
:)
я - ангел!!! ...просто крылья в стирке, а нимб на подзарядке!
Меня трудно найти, легко потерять и невозможно забыть.Изображение

Vadym Voytas
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 06.08.2005 (Сб) 20:37

Сообщение Vadym Voytas » 16.08.2005 (Вт) 16:39

MS FRAMEWORK VB.NET
Последний раз редактировалось Vadym Voytas 30.09.2010 (Чт) 0:49, всего редактировалось 1 раз.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 16.08.2005 (Вт) 17:02

Мутекс создастся только на локальной машине

Krasavica
Небожительница
Небожительница
Аватара пользователя
 
Сообщения: 1378
Зарегистрирован: 04.11.2003 (Вт) 17:51
Откуда: Россия, город-герой Москва ;-)

Сообщение Krasavica » 16.08.2005 (Вт) 17:24

Vadym Voytas

Он создастся там, где запущено приложение, его создающее :)
Я не совсем поняла механизм: где в конечном счете происходит регистрация пользователя?
В любом же случае регистрация обрабатывается на сервере? Там и проверяйте. Если такой пользователь уже есть - отправляйте клиенту сообщение о невозможности зарегистрироваться.
я - ангел!!! ...просто крылья в стирке, а нимб на подзарядке!
Меня трудно найти, легко потерять и невозможно забыть.Изображение

Krasavica
Небожительница
Небожительница
Аватара пользователя
 
Сообщения: 1378
Зарегистрирован: 04.11.2003 (Вт) 17:51
Откуда: Россия, город-герой Москва ;-)

Сообщение Krasavica » 16.08.2005 (Вт) 18:06

Amed

Не поняла, что значит на локальной машине?
Конечно, клиенты не видят мьютексов, созданных на сервере. :roll:
я - ангел!!! ...просто крылья в стирке, а нимб на подзарядке!
Меня трудно найти, легко потерять и невозможно забыть.Изображение

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 16.08.2005 (Вт) 18:59

Я про то же :)

Krasavica
Небожительница
Небожительница
Аватара пользователя
 
Сообщения: 1378
Зарегистрирован: 04.11.2003 (Вт) 17:51
Откуда: Россия, город-герой Москва ;-)

Сообщение Krasavica » 17.08.2005 (Ср) 11:49

Vadym Voytas

Ну что, работает? :)
я - ангел!!! ...просто крылья в стирке, а нимб на подзарядке!
Меня трудно найти, легко потерять и невозможно забыть.Изображение

Vadym Voytas
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 06.08.2005 (Сб) 20:37

Сообщение Vadym Voytas » 17.08.2005 (Ср) 12:17

MS FRAMEWORK VB.NET
Последний раз редактировалось Vadym Voytas 30.09.2010 (Чт) 0:49, всего редактировалось 1 раз.

Vadym Voytas
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 06.08.2005 (Сб) 20:37

Сообщение Vadym Voytas » 17.08.2005 (Ср) 18:41

MS FRAMEWORK VB.NET
Последний раз редактировалось Vadym Voytas 30.09.2010 (Чт) 0:48, всего редактировалось 1 раз.

Vadym Voytas
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 06.08.2005 (Сб) 20:37

Сообщение Vadym Voytas » 17.08.2005 (Ср) 18:52

MS FRAMEWORK VB.NET
Последний раз редактировалось Vadym Voytas 30.09.2010 (Чт) 0:48, всего редактировалось 1 раз.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 17.08.2005 (Ср) 22:08

relf nj ns yt nelf gjktp.

Да, это я написал!
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Krasavica
Небожительница
Небожительница
Аватара пользователя
 
Сообщения: 1378
Зарегистрирован: 04.11.2003 (Вт) 17:51
Откуда: Россия, город-герой Москва ;-)

Сообщение Krasavica » 17.08.2005 (Ср) 22:27

Vadym Voytas писал(а):Krasavica
смогу проверить только завтра


Vadym Voytas писал(а):Krasavica

похоже работает.

А можно мутекс в приложении программно убить ?
/до закрытия самого приложения его породившего/


Vadym Voytas писал(а):пардон
похоже это метод
ReleaseMutex()


Похоже, похоже... Похоже у вас завтра наступило уже сегодня :) Гы :)
я - ангел!!! ...просто крылья в стирке, а нимб на подзарядке!
Меня трудно найти, легко потерять и невозможно забыть.Изображение


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

    TopList