[VB.NET-CF] Applicatie als service

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Josvds
  • Registratie: November 2004
  • Laatst online: 26-08 20:42
Ik ben bezig met een applicatie om eenvoudig te printen op de PDA.

Nu kan ik printen, documenten verzenden naar de printer, maar wanneer ik bijvoorbeeld 8 paginas verstuur en dan gelijktijdig daarna de verbinding verbreek, dan laat de printer het laatste gedeelte zitten. Na enkele keren testen (wachten tot printen klaar is voor het sluiten van de apps) blijkt dat het daar mee te maken heeft.

Nu wou ik de applicatie na de 1e keer starten op de achtergrond laten draaien en wanneer ik de apps aanroep hij gewoon weer naar voren komt en opnieuw de taken inlaad. Nu was ik al bezig met event aanmaken, instance aanmaken, echter lukt het me niet om een form als service op de achtergrond te laten draaien.

Een console applicatie kan ik meerdere malen starten en hij heeft in de gaten als er al iets gestart is, echter wanneer ik in de console applicatie het formulier start dan kan ik de apps geen twee keer draaien.

Weet iemand een goede oplossing hiervoor?

Ik heb gekeken naar Message Queue maar dat kan op de pocket pc niet, ook een service contract kan niet. Dus daarom sla ik bestanden op die ik weer uitlees, maar als hiervoor iemand een makkelijker idee heeft hoor ik het ook graag.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 10:15

Janoz

Moderator Devschuur®

!litemod

Een form is een formulier op het scherm. Waarom zou je een GUI onderdeel uberhaupt als service willen draaien?

Je grootste probleem is waarschijnlijk dat je alles in je GUI hebt lopen implementeren. Het is niet voor niks dat er over het algemeen sterk aangeraden wordt om die onderdelen van elkaar te scheiden.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Josvds
  • Registratie: November 2004
  • Laatst online: 26-08 20:42
Janoz schreef op maandag 12 juli 2010 @ 10:56:
Een form is een formulier op het scherm. Waarom zou je een GUI onderdeel uberhaupt als service willen draaien?

Je grootste probleem is waarschijnlijk dat je alles in je GUI hebt lopen implementeren. Het is niet voor niks dat er over het algemeen sterk aangeraden wordt om die onderdelen van elkaar te scheiden.
Wat ik aan het maken ben zijn enkele kleine tools, voor bijvoorbeeld genereren van een rapport, verzenden van txt naar de printer, verzenden van e-mail. Dit wordt vanuit een ander programma aangeroepen. Elk scherm bevat dus enkel 5 stappen.

Het scherm geeft de status weer, dus bijvoorbeeld:
1) Inlezen parameters
2) Ophalen bestand
3) Verbinding opzetten
4) Bestand verzenden
5) Voltooid

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 10:15

Janoz

Moderator Devschuur®

!litemod

Om eerlijk te zijn zie ik niet waarom dat een antwoord is op mijn vraag.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Josvds
  • Registratie: November 2004
  • Laatst online: 26-08 20:42
Janoz schreef op maandag 12 juli 2010 @ 11:25:
Om eerlijk te zijn zie ik niet waarom dat een antwoord is op mijn vraag.
Naja, het maakt mij niet uit of het nu een console is of een form als het uiteindelijk maar een form raised.
Ligt het er aan dat ik een Form gebruik dan? Kan het met een andere opzet wel?

Acties:
  • 0 Henk 'm!

  • Josvds
  • Registratie: November 2004
  • Laatst online: 26-08 20:42
Dit topic is opgelost, om mensen met het zelfde probleem verder te helpen als ze dit lezen.

Ik heb twee applicaties aangemaakt waarbij de 1e apps de 2e aanroept indien er geen event met een specifieke naam bestaat.

Voor dit event heb ik de functies "CreateEvent", "OpenEvent", "WaitForSingleObject", "EventModify" en "CloseHandle" gebruikt uit de library "CoreDLL".

Wanneer de 2e apps dus niet gestart is start de 1e apps deze op. In een map worden alle taken geplaatst welke de 2e apps moet uitvoeren. Met de functies hierboven kan ik een named event aanmaken welke ik vanuit een andere apps kan aanroepen. Bij het ontvangen van een event loop ik de taken door en voer ik per taak de routine uit.

Bedankt iig nog voor de hulp

Acties:
  • 0 Henk 'm!

Verwijderd

Josvds schreef op vrijdag 16 juli 2010 @ 09:08:
Ik heb twee applicaties aangemaakt waarbij de 1e apps de 2e aanroept indien er geen event met een specifieke naam bestaat.
Bedoel je nou werkelijk dat je 2 programma's hebt ontwikkeld... waarvan 1 programma de functie heeft te "bekijken" of er een service/process wel of niet draait? :+ Of dat je 2 aparte forms hebt ontwikkeld?

Ik denk dat je bezig bent met het schrijven van lelijke software (no offence) en je zelf enorm veel dirty-workarrounds kan besparen door je eens te verdiepen in bepaalde "Design Patterns" of je toch eens wat te verdiepen in de basis concepten van Object Oriënted Programming.

Verbeter mij even als er ook maar iets niet klopt over wat ik heb aangemerkt O-)

[ Voor 3% gewijzigd door Verwijderd op 16-07-2010 18:14 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Waarom moeilijk doen? Los van wat hierboven gezegd wordt overigens, want ik ben het behoorlijk met Janoz eensch.

[ Voor 31% gewijzigd door RobIII op 16-07-2010 18:40 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Josvds
  • Registratie: November 2004
  • Laatst online: 26-08 20:42
RobIII schreef op vrijdag 16 juli 2010 @ 18:31:
Waarom moeilijk doen? Los van wat hierboven gezegd wordt overigens, want ik ben het behoorlijk met Janoz eensch.
Een single-instance windows-form applicatie is niet echt moeilijk nee. Zeker niet op een PDA want daar start een tweede form gewoon niet op als er al een open staat.

Dus dat probleem was snel getekeld, echter hoe kan ik zorgen dat mijn printerpoort open blijft staan en dezelfde applicatie weer aan de gang gaat als er een nieuwe printtaak staat? Zonder om de 2 minunten te gaan kijken of er print taken staan.

Dit heb ik dus opgelost met 1 form, 1 named event en 1 console applicatie die controleerd of de apps draaiend is en aan de hand daarvan de form start of een event raised.

De link die je opgaf zorgt enkel voor een check op multiple instances.
Pagina: 1