Avatar billede detfedesvin Nybegynder
15. december 2005 - 14:10 Der er 17 kommentarer

Hvordan sikkrer man at der kun kan køres en instans af et program

Hvordan sikkrer man at der kun kan startes en instans af ens applikation i .Net compact framwork 1.0? Har fundet en masse eksempler på hvordan det gøres i standard frameworket, men da CF har begrænset funktionalitet kan jeg ikke få dem til at virke
Avatar billede rbj_fp Nybegynder
15. december 2005 - 14:14 #1
public static bool PrevInstance()
        {
            if (System.Diagnostics.Process.GetProcessesByName(System.Diagnostics.Process.GetCurrentProcess().ProcessName).Length > 1)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

og så i din

if (PrevInstance())
{
  // programmet er startet op
}
Avatar billede spif2001 Nybegynder
15. december 2005 - 14:17 #2
System.Diagnostics.Process findes ikke i CF.
Avatar billede spif2001 Nybegynder
15. december 2005 - 14:23 #3
http://msdn.microsoft.com/smartclient/understanding/netcf/FAQ/default.aspx#1.2

Her er en masse info om CF developing.

Punkt 1.39 giver et link til en download, hvor man skulle kunne få noget at vide om Running Processes - har ikke brugt det, men det lyder da interresant...
Avatar billede sovsekoder Nybegynder
16. december 2005 - 17:35 #4
System.Threading.Mutex, skulle virke på CF.
Avatar billede sovsekoder Nybegynder
16. december 2005 - 17:41 #5
//klasse variable
const string mutexName = "detfedesvin";

//Inde i en metode i klassen
bool createdNew = false;
noahConsoleMutex = new Mutex(true, mutexName, out createdNew);
if(createdNew)
{
  // OK: Start program her!!!
  Start();
}
else
{
  // Allerede startet: Afslut program
  noahConsoleMutex = null;
}
Avatar billede nielle Nybegynder
16. december 2005 - 17:41 #6
Så vidt jeg ved er CF netop indrettet (begrænset) sådan at man *ikke* kan oprette mere end en instans af et program. Så dit problem er faktisk løst på forhånd. :^)

Man skal faktisk være snedig hvis man vil have CF til at afvikle flere instanser af samme program:

http://msdn.microsoft.com/smartclient/understanding/netcf/FAQ/default.aspx#4.16

(læg specielt mærke til Microsofts egen disclaimer: "The following code is not supported and is not guaranteed to work on all versions of the OS, including future versions")
Avatar billede nielle Nybegynder
23. januar 2006 - 19:52 #7
Lukketid?
Avatar billede detfedesvin Nybegynder
24. januar 2006 - 11:28 #8
Windows CE kan godt starte flere instaser af mit program som er skrevet i CF. Når programmet states sker det at der startes op til 3 instanser på en gang.
Avatar billede spif2001 Nybegynder
24. januar 2006 - 11:31 #9
?? - siger du, at når du trykker på dit programs start ikon, at der startes 3 programmer?
Avatar billede spif2001 Nybegynder
24. januar 2006 - 11:47 #10
prøv lige at starte dit program - lukke det ned - starte det igen og lukke det ned.

Gå derefter ind i på Pocket'en i Start --> Settings --> System (faneblad) --> Memory (ikon) --> Running Programs (faneblad).

Står der her at dit program stadig kører?
Avatar billede spif2001 Nybegynder
24. januar 2006 - 12:04 #11
En lille finte du måske ikke er klar over er, at når man i sit program trykker på krydset oppe i højre hjørne, så skjuler applikationen sig - den lukker ikke!

Hvis du vil lukke din applikation skal du implementere en afslut knap eller afslut menu punkt som i sit click event laver en this.Close().
Avatar billede nielle Nybegynder
24. januar 2006 - 16:37 #12
Kører du frresten dit porgram på en PDA, en smartphone, eller måske på noget helt tredie?
Avatar billede detfedesvin Nybegynder
25. januar 2006 - 12:53 #13
På en PDA som kører Windows CE 4.2
Avatar billede nielle Nybegynder
25. januar 2006 - 19:46 #14
Ifølge Microsoft selv er det nærmest umuligt. Det er simpelthen ikke med i deres 1.0 Compact Framework.

Men du skriver at du automatisk får starter mindst 3 instanser op? Hvordan ser du det?
Avatar billede detfedesvin Nybegynder
11. februar 2006 - 16:30 #15
Man kan se at den tegner formen 3 gange og når man lukker formen  ligger der en til bagved den man lige har lukket
Avatar billede nielle Nybegynder
11. februar 2006 - 17:37 #16
Har du mulighed for at poste noget kode, for det lyder godt nok som en mystisk adfærd det der?
Avatar billede nielle Nybegynder
29. november 2007 - 08:15 #17
Lukketid?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester