Results 1 to 13 of 13

Thread: mutex

  1. #1
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382

    mutex

    Mijn programma kan opstarten met parameters en dmv een mutex zorg ik ervoor dat er maar 1 instantie mag draaien.
    Wanneer het programma al draait en ik start hem nogmaals met parameter, wat zou dan de beste manier zijn om de 1e instantie te "herstarten / herladen" met de nieuwe parameter?
    Een message sturen naar instantie 1 en instantie 2 sluiten?

  2. #2
    Lijkt mij dat je
    Of in de 2e instance een melding geeft dat het programma al gestart is en daarna de 2e instance afsluit

    Of de 2e instance killt de eerste instance en start door

  3. #3
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    Klopt. Afschieten vind ik onvriendelijk.
    Ik kan via de mutex alleen helemaal niet bij de handle van de applicatie.

  4. #4
    Met de mutex zelf ben je er niet. Daarmee heb je alleen het bewijs dat er een andere instance is. Je zou iets kunnen proberen als een memory mapped file om met die ander instance te praten.

    Zie bijvoorbeeld dit draadje uit 2002
    1+1=b

  5. #5
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?½
    Posts
    1,046
    Ik denk dat je een named pipe exclusief kan openen. Je kan het dus ook gebruiken om te zien of er al een isntantie draait, en er data naartoe sturen, zoals nieuwe parameters!

  6. #6
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    Ik heb inderdaad door middel van een PostMessage en een memory mapped file e.e.a. voor elkaar gekregen.
    Jammer was het feit dat ik de windowhandle dmv nog wat extra methods (pluk internet) moest zien te achterhalen.
    Wat mij doet denken: verandert de applicatiehandle eigenlijk of niet tijdens draaien. Anders kan ik die handle natuurlijk in mijn memorymapped file kwijt.

  7. #7
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    Is het niet zelfs mogelijk een METHOD of EVENT in mijn memorymapped record te zetten?

  8. #8
    Silly member NGLN's Avatar
    Join Date
    Aug 2004
    Location
    Werkendam
    Posts
    5,133
    Quote Originally Posted by EricLang View Post
    ... verandert de applicatiehandle eigenlijk of niet tijdens draaien?
    Het lijkt mij dat Application.Handle onveranderbaar is zolang hij bestaat. Niet dat dat letterlijk in de documentatie vermeld staat, maar dat zou toch de enige conclusie kunnen zijn als je optelt:
    - Application.Handle is de parent handle van veel andere windows,
    - TApplication heeft niet zoiets als TWinControl.RecreateWnd,
    - Application.Handle wordt toegewezen in TApplication.CreateHandle, welke wordt aangeroepen tijdens de constructor,
    - Application.Handle wordt vrijgegeven in de destructor.

    Echter, hoe waarom bestaat dan setter TApplication.SetHandle?
    (Sender as TNLDUser).Signature := 'Groeten van Albert';

  9. #9
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?½
    Posts
    1,046
    Ik heb TApplication.SetHandle wel eens gebruikt toen ik al Windows dingen deed bij het opstarten, en wou dat de Application een HWND gebruikte die ik al op voorhand klaar had. Werkte naar behoren. En voor zover ik weet kan je er inderdaad vanuit dat die zijn waarde gewoon houdt voor zolang je programma draait.

  10. #10
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    Ik heb net de Application.Handle vastgelegd en dat werkt ok. Nu hoef ik niet met tricky truuks de applicatie op te halen. cool!

  11. #11
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    Damn... toch nog even.
    Wanneer ik in de projectsource als eerste statement een MessageBox() aanroep dan heb ik al een taskbar icon. Is dit te voorkomen?

  12. #12
    Kun je niet gewoon met FindWindow(Ex) het venster van de actieve instance zoeken en deze met ShowWindow naar de voorgrond halen?

  13. #13
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    Dat kan maar mijn methode is handiger.
    Probleem is dat ik TOCH even 2 icons in de taskbar heb.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •