[elektro-etc] XP batch-lock

Famulus Számítástechnika hwsw at famulus.hu
Tue Jan 6 15:51:19 CET 2009


> Windows platform... ?

Win32 (XP)

> Alapvetoen az Application (a futo exe) dolga lenne ez...
>
> Minden indulo peldany megnezi
> fut-e MÁR azonos cimu ablak a win-ben
                         ^^^^^
>Nincs ablak, csak egy "daemon".

service...

>Processre nem lehet keresni?

De lehet csak az tobb program sor...
dotnet (netframework3.5) eseten konnyebb...
(de nyilvancsak  win32 ala is atviheto API alapon)

---------------------------------------------
Először is gondold végig, hogy mennyire "egypéldányosra" szeretnéd:

  a.. a teljes rendszerben legfeljebb egy darab futhasson belőle?
  b.. vagy pedig terminal server sessionönként egy darab?

Utána ennek megfelelően hozzál létre egy nevesített Mutexet.
A nevesített  Mutex "globális" tud lenni, azaz alkalmas alkalmazáshatárok 
közötti
szinkronizációra. Az, hogy mennyire "globális" a nevétől függ:

"On a server that is running Terminal Services, a named system mutex can
have two levels of visibility. If its name begins with the prefix "Global\",
the mutex is visible in all terminal server sessions. If its name begins
with the prefix "Local\", the mutex is visible only in the terminal server
session where it was created. In that case, a separate mutex with the same
name can exist in each of the other terminal server sessions on the server.
If you do not specify a prefix when you create a named mutex, it takes the
prefix "Local\". Within a terminal server session, two mutexes whose names
differ only by their prefixes are separate mutexes, and both are visible to
all processes in the terminal server session. That is, the prefix names
"Global\" and "Local\" describe the scope of the mutex name relative to
terminal server sessions, not relative to processes ."

C# nyelven...

static void Main( string[] args )
{
    // http://msdn.microsoft.com/en-us/library/system.threading.mutex.aspx
    Mutex systemWide = new Mutex( false, @"Local\EgyediNev" );
    if( systemWide.WaitOne( 0, false ) )
    {
        Application.Run( new MainForm() );
    }
    systemWide.Close();
}

Nem winformsra átalakításkor annyit kell figyelembevenni, hogy az
Application.Run() blokkol, amíg le nem zárják a főablakot
(ezesetben a MainForm példányt).


Amugy mostanra allitolag a dotnet/mono
gyakorlatilag crossplatform...szoval akar
Linuxon fejleszthetsz win ala....

WinForms Linuxon
http://www.msdnkk.hu/Articles/WinForms_Linuxon
Ma feltettem a notebookomra egy ubuntu linuxot (ubuntu.hu). Gondoltam 
kiprobalom hogy futnak defaultbol a .NET alkalmazások. az első meglepetés az 
volt, hogy a .NET futtatókörnyezet - a mono - felment az oprendszer default 
installkor. Gyorsan lerántottam egy egyszerűbb szimulációs WinForms 
alkalmazásomat remote desktopon keresztül. Futtatni itt úgy kell, mint 
windowson a java-t :) : "mono alkalmazas.exe".
.....


A franework Microsoft fejleszto cuccok innen
letolthetok....az alapverziok.. gratis!

.NET Framework 3.5 és Visual Studio 2008
Induló Készlet es bevezeto anyagok...
http://www.msdnkk.hu/Pages/InduloKeszlet/NET35/Default.aspx


Tovabbi Induló Készletek újratöltve
<http://www.architekturaforum.hu/blogs/balassy/archive/2008/11/17/indul-243-k-233-szletek-250-jrat-246-ltve.aspx>


Szoval.....szerintem WIN kornyezetben manapsag
mar  CSAK!!!! netframework ala SZABAD
uj cuccokat fejleszteni....

Jomagam a regi sok eves dolgokat
is most kezdtem el migralni....
A DOS-os vackok is jol  elvannak
egy konzol ablakban az XP-en...
(ezert kuzdottem a minap DOS ablakokkal)

A Clipperes dBASE alapu cuccaim is sorban
atkerultek/atkerulnek VBNET es SQL adatmotor ala.


Egyszeru, nagyszeru, kenyelmes...
.....mint mondjuk a DOS/Linux vilag.

Akar csak csak egy notepad is eleg a fejleszteshez
es aztan copy-del modon lehet telepiteni-eltavolitani
az elkeszult alkalmazast...

Mi kell a net frameworkbol ?
http://www.msdnkk.hu/Articles/Mi_kell_a_NET_Frameworkbol

A farmework forras kodja is megnezheto..
http://www.msdnkk.hu/Articles/Letoltheto_lesz_a_NET_Framework_forraskodja
Visual Studio 2008 pl mar integraltan kezeli is...


KJ

 >Sygma



More information about the Elektro-etc mailing list