Acties:
  • 0 Henk 'm!

  • Fonta
  • Registratie: Juli 2007
  • Laatst online: 09-09 21:14
Hi all,

ik ben net begonnen met programmeren en zal vast wel iets heeeel erg fout doen.
Het volgende: ik heb om via php aan te sturen, een programmatje geschreven die een string naar mijn com poort stuurt om mijn chromoflex aan te sturen.
Dit werkt super maar het volgende gebeurd:
als ik nu op de website een aantal malen op verschillende knoppen druk en dus de exe achter elkaar aan een paar keer wordt opgestart blijft deze op een gegeven moment hangen. windows geeft dan de melding dat hij de applicatie heeft afgesloten ivm dep.
het is de bedoeling dat ik rgbcontrol.exe opstart met daarbij een argument bijv. -rood of -burst.
als hij dan de string naar mijn com poort heeft gestuurd wil ik dat het progje afsluit.
Ik weet ook dat er een heleboel code dubbel in staat en dat wil ik op 1 of andere manier ook nog gaan aanpakken maar na een mislukte poging vanmiddag ben ik daar eerst maar mee opgehouden.
Wie kan mij hier verder mee helpen?
Alvast heel erg bedankt!

Het project is hier te downloaden: http://fonta.hopto.org/rgbcontrol.zip
code is ook hier te zien: http://fonta.hopto.org/rgbcontrol.txt

---update---
Ik heb denk ik het euvel al verholpen, heb net een nieuw project gestart in visual studio en ipv een normale applicatie een console applicate gemaakt.
Ik zie hem nu na een tigtig keer klikken niet meer tussen me processen in windows en ook geen foutmelding nog gezien dat hij is afgesloten :)
Dan blijft nu nog over: het opschonen van de code..

[ Voor 13% gewijzigd door Fonta op 06-03-2008 21:20 ]


Acties:
  • 0 Henk 'm!

  • Basti504
  • Registratie: Februari 2005
  • Laatst online: 20:23

Basti504

Niet de enige, wel de echte.

Misschien kun je hiervoor beter een Console Application gebruiken, dat is lichter dan een 'echte' applicatie en wellicht beter voor dit doel :)

...


Acties:
  • 0 Henk 'm!

  • Fonta
  • Registratie: Juli 2007
  • Laatst online: 09-09 21:14
Basti504 schreef op donderdag 06 maart 2008 @ 21:18:
Misschien kun je hiervoor beter een Console Application gebruiken, dat is lichter dan een 'echte' applicatie en wellicht beter voor dit doel :)
Zie mijn update :)

Acties:
  • 0 Henk 'm!

  • Fonta
  • Registratie: Juli 2007
  • Laatst online: 09-09 21:14
kijk ik net in de logboeken van windows zie ik het volgende staan:
An unhandled exception ('System.UnauthorizedAccessException') occurred in RgbControl.exe [11752]. Just-In-Time debugging this exception failed with the following error: Het vereiste imitatieniveau is niet geleverd of het geleverde imitatieniveau is ongeldig.

Check the documentation index for 'Just-in-time debugging, errors' for more information.

Op de site van msdn staat dat het proces wordt gedraait door een account die te weinig toegangsrechten heeft.
Kan deze foutmelding in de logboeken kwaad?

Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Nou, de melding kan geen kwaad, die doet niets 8) . Maar de inhoud van de melding is toch wel serieus, want er staat letterlijk unauthroized access, ofwel 'Access Denied'. Waarschijnlijk probeert dergbcontrol een instructie uit te voeren waarvoor het geen rechten heeft.

Heb je het al eens op Windows XP geprobeert?

If it isn't broken, fix it until it is..


Acties:
  • 0 Henk 'm!

  • Fonta
  • Registratie: Juli 2007
  • Laatst online: 09-09 21:14
Dan vraag ik me af wat hij voor instructies hij niet zou mogen uitvoeren.
In ieder geval stuurt hij wel de codes naar de com poort en dus veranderen de ledjes wel van kleur / programma. Nog niet op xp geprobeert en dat ben ik ook niet echt van plan want heb hier geen xp machine staan :(

Ik heb trouwens de bron code en project geupdate naar de versie die ik nu heb.

[ Voor 15% gewijzigd door Fonta op 07-03-2008 09:37 ]


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22:43
Als ik het goed begrijp wordt de executable vanuit de webserver gestart? Afhankelijk van de instellingen wordt die exe ook gestart met de rechten van het webserver proces en die zou best wel eens geen rechten kunnen hebben voor dingen die je doet in de applicatie.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 23:11

Reptile209

- gers -

Toch vraag ik me af of je het probleem nu hebt opgelost, of dat het alleen niet meer zichtbaar is. Zou het kunnen dat als de app te snel achtereen gestart wordt, je een conflict op de COM poort krijgt? Ofwel: de ene instantie van de app heeft de poort nog niet gesloten als de volgende hem probeert te openen. Als dit echt het probleem is (zou je misschien bewust kunnen proberen te veroorzaken door een batchfile de app 50x te laten starten in een lus ofzo), moet je een check gaan inbouwen dat je programma maar 1 instantie tegelijk kan laten draaien, of wat meer foutafhandeling rondom de COM aanroepen.
Just my 2 cents ;).

Zo scherp als een voetbal!


Acties:
  • 0 Henk 'm!

Verwijderd

Als je toch al op Windows werkt en als je toch al met .NET bezig bent, waarom bouw je dan geen ASP.NET applicatie?

Acties:
  • 0 Henk 'm!

  • Fonta
  • Registratie: Juli 2007
  • Laatst online: 09-09 21:14
Om even in te gaan op bovenstaande reacties
@farlane - toen ik mijn applicatie nog als windows applicatie had gemaakt en niet als console applicatie heb ik tijdelijk apache administrator rechten gegeven door de service als administrator te laten starten ook toen had ik de problemen van blijven hangen.
Aan de rechten heeft het dus niet gelegen.
zie ook reactie op reptile209
@reptile209 - ik denk dat jij het heel erg bij het goede eind hebt. gisteren toen ik er net een console applicatie van had gebrouwen, heb ik heel erg vaak achterelkaar aan op de knoppen lopen drukken. waarschijnlijk dat de applicatie nog niet helemaal afgesloten was en toen al op het volgende commando geklikt. Na gisteren avond 23.15 heb ik dan ook geen foutmelding meer gehad in de windows logboeken. (en ook is de applicatie niet meer blijven hangen)
Maar om nou een check te gaan inbouwen enzo vind ik een beetje overbodig. Dit omdat ik in normaal gebruik nooit tig keer achter elkaar aan op de knoppen zal drukken.
En het klinkt wel heel mooi "maar 1 instantie tegelijk kan laten draaien" maar ik zou niet weten hoe ik dat moet doen :p
@negerzoen - omdat ik daar lang niet genoeg programmeer kennis voor heb.

Iig zoals hierboven al geschreven staat heb ik sinds 23.15 gisteren avond geen meldingen meer gezien in het logboek en is hij nog geen enkele keer blijven hangen :)
Voor mij is de applicatie nu dan ook zo goed als af. Wat voor mij overblijftis het opschonen van de code maar ik zou niet weten hoe (A)

Acties:
  • 0 Henk 'm!

  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 15-09 19:33
Je kan volgens mij in de projecteigenschappen (dubbelklik op de projectnaam in VS i believe), instellen dat er maar 1 instance mag draaien,dan is je probleem ook opgelost.

Acties:
  • 0 Henk 'm!

Verwijderd

Laat je exe een mutex of global atom setten bij startup, en die weer verwijderen bij afsluiten. Vervolgens laat je die exe eerst checken of die mutex/global atom al bestaat, en zo ja: afsluiten.

Of, als dat te ingewikkeld klinkt (is 't niet): gebruik een semaphore file zoals we dat vroeger onder DOS ook deden... ;)

[ Voor 24% gewijzigd door Verwijderd op 08-03-2008 10:35 ]


Acties:
  • 0 Henk 'm!

  • Fonta
  • Registratie: Juli 2007
  • Laatst online: 09-09 21:14
creator1988 schreef op zaterdag 08 maart 2008 @ 10:09:
Je kan volgens mij in de projecteigenschappen (dubbelklik op de projectnaam in VS i believe), instellen dat er maar 1 instance mag draaien,dan is je probleem ook opgelost.
zo makkelijk? :O
Verwijderd schreef op zaterdag 08 maart 2008 @ 10:32:
Laat je exe een mutex of global atom setten bij startup, en die weer verwijderen bij afsluiten. Vervolgens laat je die exe eerst checken of die mutex/global atom al bestaat, en zo ja: afsluiten.

Of, als dat te ingewikkeld klinkt (is 't niet): gebruik een semaphore file zoals we dat vroeger onder DOS ook deden... ;)
me hoofd begint nu toch wel een beetje erg te tollen, als ik tijd heb zal ik eens googlen. :+
Pagina: 1