[win32] Code uitvoeren na 10 minuten inactiviteit

Pagina: 1
Acties:

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Ik wil een programma automatisch afsluiten nadat de computer een aantal minuten niet gebruikt is (m.a.w: geen muis/toetsenbord actie). Een restrictie hierbij is dat het programma uitgevoerd wordt onder de beveiligingsomgeving van de momenteel ingelogde gebruiker.

Ik heb hiervoor al naar de taskscheduler en screensaver gekeken. Maar deze twee mogelijkheden bleken in de praktijk niet naar wens te functioneren.

De weg die ik wil inslaan is het volgende:
1 plaats het programma in het login script van de gebruikers
2 bepaal of het systeem langer dan x minuten niet gebruikt is
3 zo ja: doe de benodigde acties

Het probleem zit 'm nu in stap 2. Ik heb na enig zoekwerk in de msdn-documentatie geen functie gevonden om zoiets op te vragen. Een alternatieve manier heb ik wel gevonden d.m.v. een mouse- of keyboard-hook.

Mijn vraag is nu: is er niet een eenvoudigere oplossing en zo niet: gaat de oplossing d.m.v. een hook werken. Ik kan namelijk niets vinden over eventuele rechten die de applicatie daarvoor nodig heeft. Het programma gaat tenslotte draaien onder de rechten van de op het moment ingelogde gebruiker. En zorgt zo'n hook niet voor instabiliteit?

Tot slot: het is de bedoeling dat het werkt onder windows xp/2000 en later. Ik zie bovendien nogal wat programma's die zo'n inactivity functionaliteit hebben, dus het lijkt me dat het vrij simpel te implementeren moet zijn... ware het niet dat ik er maar verdraaid weinig over terug kan vinden.

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Wil je inactiviteit binnen je eigen applicatie bekijken, of gaat het je om system-wide inaciviteit? En binnen welke programmeeromgeving wil je deze functionaliteit gaan maken?

Als je bijvoorbeeld binnen je eigen app wil kijken en je werkt met Delphi, zijn daar componenten voor te vinden. Om hier alle mogelijke combi's met hun oplossing op te gaan sommen is niet echt mijn planning, dus geef ff wat meer info als je wil....

My personal website


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Systeem-wide inactiviteit. Binnen eigen applicatie zou geen enkel probleem zijn. Ow ja: ik gebruik geen Delphi, maar C of C++.

Maar ik ben wel geinteresserd in alternatieve manieren, minder omslachtig dan via een hook, waarbij het programma nog steeds kan draaien met de rechten van de op het moment ingelogde gebruiker.

[ Voor 118% gewijzigd door Infinitive op 03-02-2004 16:47 ]

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Verwijderd

mischien met behulp van een script die een timer heeft en dan pskill aanroept oid?

Verwijderd

Is dat niet via energiebeheer te regelen? Slaapstand is zo goed als uit.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 04:03
Beetje Googlen leverde dit op:
http://www.codeproject.com/dll/trackuseridle.asp
In general, when we talk about tracking a user's idle time, we are really after the time duration since the user last touched the mouse or keyboard of the system. Unfortunately, the Windows API does not provide us with an easy way of getting this value. However, we can roll our own using the Win32 hooks API.
Het lijkt er dus op dat er geen kant-en-klare API call voor bestaat maar dat je met hooks aan de slag zult moeten.

Afhankelijk wat je precies wil doen, zou een screensaver-programma misschien toch wel handig zijn. Applicaties zoals DVD-spelers schakelen namelijk de screensaver uit wanneer de gebruiker geen invoer geeft maar wel van het systeem gebruik maakt (wanneer deze bijvoorbeeld een DVD kijkt). Door een eigen mechanisme te bouwen verlies je het voordeel dat je van deze informatie gebruik kan maken.

Ik kan me aan de andere kant ook voorstellen dat jouw actie niet zoveel met screen savers te maken heeft en dat het daarom bezwaarlijk is om een bestaande screensaver te vervangen door jouw applicaties. Dat is natuurlijk een afweging die je zelf moet maken.

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Een van de opties die ik heb gevonden is de volgende:
Simply start your app with idle priority (type "start /low yourapp.exe" at the command prompt).
It will only use system resources when nothing else needs them.
Een andere is het gebruik van een extern programma (X-ecutor). Zoeken op "system inactivity" op google groups doet dus wonderen ;)

[ Voor 5% gewijzigd door OZ-Gump op 03-02-2004 16:50 ]

My personal website


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Is dat niet via energiebeheer te regelen? Slaapstand is zo goed als uit.
Aan slaapstand heb ik nog gedacht. Op het moment dat het systeem op standby gaat kan er idd een message opgevangen worden (en eventueel een slaapstand mee gecanceled). Alleen is echter in mijn geval de slaapstand gebruiken niet echt gewenst.
mischien met behulp van een script die een timer heeft en dan pskill aanroept oid?
In grote lijnen is dat de richting waar ik op wilt gaan, maar mijn probleem is het detecteren van inactiviteit (niet van het systeem, maar van de gebruiker): een timer is daarmee niet voldoende. Als ik hooks gebruik kan ik een timer starten en herstarten bij elke vorm van toets of muisactiviteit. Alleen klinkt in mijn oren zo'n hook meer als een 'hack' dan een oplossing.
Simply start your app with idle priority (type "start /low yourapp.exe" at the command prompt). It will only use system resources when nothing else needs them.
Ik zie niet helemaal in hoe dit een oplossing is voor mijn probleem? Dan zou ik toch net zo goed de system idle time kunnen opvragen en vergelijken? Maar dat lijkt me niet voldoende...
Beetje Googlen leverde dit op:
Die had ik idd gezien ja. Maar die gebruikt al hooks en daar zit nu juist een deel van mijn probleem: is dat een nette oplossing?
Ik denk dat ik wel de hooks maar ga proberen, maar toch heb ik nog steeds het idee dat het nogal omslachtig is...

[ Voor 38% gewijzigd door Infinitive op 03-02-2004 17:01 ]

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Infinitive schreef op 03 februari 2004 @ 16:52:
[...]
In grote lijnen is dat de richting waar ik op wilt gaan, maar mijn probleem is het detecteren van inactiviteit (niet van het systeem, maar van de gebruiker): een timer is daarmee niet voldoende. Als ik hooks gebruik kan ik een timer starten en herstarten bij elke vorm van toets of muisactiviteit. Alleen klinkt in mijn oren zo'n hook meer als een 'hack' dan een oplossing.
[...]
Je zult waarschijnlijk toch een system-wide hook moeten gebruiken. Als je die netjes schrijft moet dat geen probleem zijn (er worden zoveel hooks her en der gebruikt. Eentje meer of minder maakt 't 'm ook niet :P ).

Ga je voor instabiliteit dan moet je inderdaad, zoals je voorstelt, timers gaan herstarten. Dat werkt, in ieder geval de keren dat ik het heb geprobeerd, niet erg jofel. Timers willen toch nog wel eens fire-en ondanks een "rescheduling" ervan.

Wat je beter kunt doen is een var "last_activity" bij houden. Als er activiteit is geweest update je deze met de huidige datum/tijd (of system ticks, whatever you need) en ga je pas over tot het sluiten van apps op het moment dat "last_activity + 10Min" >= "Now". Snappie? Je zou dit met een "poll" van zeg een seconde (of desnoods een minuut) kunnen checken. Hiervoor zou je dan 1 timer kunnen gebruiken die om de "poll" tijd fired. Zo voorkom je dat je timers moet gaan herstarten.

Just my $0.02

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


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Wat je beter kunt doen is een var "last_activity" bij houden. Als er activiteit is geweest update je deze met de huidige datum/tijd (of system ticks, whatever you need) en ga je pas over tot het sluiten van apps op het moment dat "last_activity + 10Min" >= "Now". Snappie?
Daar zat ik idd aan te denken. Het herstarten van een timer leek me op het gebied van performance niet zo erg fijn. Omdat het in mijn geval het niet zo nauw komt met wanneer die code dan wordt uitgevoerd dacht ik hetvolgende te doen:

dll met daarin een globale variable: elke keer dat de hook-callback wordt uitgevoerd zet ik deze variable op true. Programma (met uiteraard dezelfde dll) zet deze variable na een timout van een minuut of 10 op false. Wanneer bij de volgende keer uitvoeren de variable nog steeds op false staat dan is er voldoende tijd verstreken om de code uit te voeren. Als t dan de timeout is, dan zal de code zo tussen t en 2t uitgevoerd worden.

Aan de andere kant: de tijd bijhouden is ook een best aardig idee. Bovendien zal performance best meevallen: hoeveel key/mouse events krijg je nou per seconde maximaal: 100?

De reden waarom ik o.a. dit topic gestart is, is vanwege:
Note You should use global hooks only for debugging purposes; otherwise, you should avoid them. Global hooks hurt system performance and cause conflicts with other applications that implement the same type of global hook.
(Globale) Hooks worden afgeraden. Toch is dit denk ik voor mij de beste oplossing... tenzij ik een of andere management information statistiek kan pollen die aangeeft hoe lang de computer niet door de gebruiker aangeraakt is.

[ Voor 12% gewijzigd door Infinitive op 03-02-2004 20:15 ]

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 09:47

.oisyn

Moderator Devschuur®

Demotivational Speaker

OZ-Gump schreef op 03 februari 2004 @ 16:50:
Een van de opties die ik heb gevonden is de volgende:
[...]
Een andere is het gebruik van een extern programma (X-ecutor). Zoeken op "system inactivity" op google groups doet dus wonderen ;)
hier heb je niets aan. Je PC staat heel vaak te idlen, maar er zijn wel regelmatig acties van de gebruiker tussendoor. Een ruk aan de muis zorgt niet dat je PC minder idlet, en je kunt aan die idle-tijd dus ook niet bepalen hoe lang muis of toetsenbord niet is aangeraakt

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 09:47

.oisyn

Moderator Devschuur®

Demotivational Speaker

Infinitive schreef op 03 februari 2004 @ 20:13:

Daar zat ik idd aan te denken. Het herstarten van een timer leek me op het gebied van performance niet zo erg fijn.
Definieer timer. Even SetTimer () aanroepen kost niet zoveel performance hoor, kun je prima doen imho
(Globale) Hooks worden afgeraden.
het hoeft toch ook geen global hook te zijn?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Mayco
  • Registratie: Augustus 2002
  • Laatst online: 24-05 17:37
wat vind je niet goed aan de screensaver optie? lijkt me juist de eenvoudigste, geween een simpel form-less appje die het juiste process kilt. exe hernoemen naar scr en je bent toch klaar? ik zie niet wat er niet zou kunnen werken

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 09:47

.oisyn

Moderator Devschuur®

Demotivational Speaker

Een screensaver is niet zomaar een executable, het moet 3 geexporteerde functies hebben, namelijk ScreenSaverProc, ScreenSaverConfigure en RegisterDialogClasses, en verder nog een icon en een description string als resource

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Mayco
  • Registratie: Augustus 2002
  • Laatst online: 24-05 17:37
volgens de regels van de kunst misschien wel, maar het werkt zeker ook zonder die exports

Verwijderd

Omdat je het hebt over Win2000/XP zou je deze api ook kunnen gebruiken:
GetLastInputInfo Function
http://msdn.microsoft.com...ions/GetLastInputInfo.asp
Als je in je code een timer hebt die elke x minuten deze functie checkt kan je je doel ook wel bereiken zonder gebruik van global hooks. Ik weet niet zeker of deze functie ook muisbewegingen als input beschouwd maar je kan natuurlijk in je timer makkelijk de muis positie vergelijken met de vorige bewaarde positie en indien die verschilt is er muis activiteit geweest.

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
het hoeft toch ook geen global hook te zijn?
Het alternatief wat betreft hooks is niet afdoende: dat werkt slechts op applicatie niveau. Als de gebruiker met een ander programma bezig is, dan krijg ik daar geen informatie over.
GetLastInputInfo Function
Klinkt interessant. Als dit ook werkt terwijl je niet in dezelfde applicatie zit dan zou dit voor mij een betere manier dan hooks zijn. Ik ga er eens naar kijken. Bedankt!
/me Me kijkt ook meteen bij mouse input of daar nog iets staat.
/me Nope: aan GetMouseMovePointsEx heb ik niets omdat ik daarvoor het resultaat van een WM_MOUSEMOVE event moet hebben. En die heb ik niet.
Een screensaver is niet zomaar een executable, het moet 3 geexporteerde functies hebben
Dat het een beetje extra werkt is, is op zich nog niet zo'n probleem. Maar de gebruiker kan dan geen andere screensaver kiezen en dat is wel jammer. Bovendien heb ik geen flauw idee onder welke user de screensaver draait.

[ Voor 35% gewijzigd door Infinitive op 03-02-2004 22:26 ]

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Mayco
  • Registratie: Augustus 2002
  • Laatst online: 24-05 17:37
je kan een screensaver laten opstarten door die mee uit te voeren waneer je progje start, ook is er een API om te getten welke user er ingelogd is.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 09:47

.oisyn

Moderator Devschuur®

Demotivational Speaker

Mayco schreef op 03 februari 2004 @ 21:08:
volgens de regels van de kunst misschien wel, maar het werkt zeker ook zonder die exports
Niet altijd, maar dan nog. Noem jij jezelf een programmeur? Een beetje onder het mom van "It compiles! Let's ship it!" :X
Infinitive schreef op 03 februari 2004 @ 22:06:
[...]

Het alternatief wat betreft hooks is niet afdoende: dat werkt slechts op applicatie niveau. Als de gebruiker met een ander programma bezig is, dan krijg ik daar geen informatie over.
Ow my bad, ik zat even verkeerd te denken 8)7. Je hebt idd een global hook nodig. Overigens is die "performance" nogal peanuts. Ja, het is een functie die bij elke keypress en mousemove wordt aangeroepen, en bovendien een dll die bij elke eerste keypress of mousemove in een app moet worden geladen, maar echt veel maakt het niet uit...

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Volgens mij moet je het met GetLastInputInfo en GetCursorPos (indien GetLastInputInfo niet reageert op muis bewegingen) prima redden.
http://msdn.microsoft.com...unctions/getcursorpos.asp
Het is in ieder geval ivm een global hook veel minder overhead om deze 2 functies met een timer in je programma van tijd tot tijd aan te roepen en de output te vergelijken met de laatste maal dat je ze uitvoerde.

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Heb net even GetLastInput getest. Dat werkt goed, zelfs met muis, elke seconde 1 print 'ie de laatste input tijd:
Returning last input time:
Last input: 11381406
Last input: 11381640
Last input: 11381640
Last input: 11381640
Last input: 11385234
Last input: 11385234
Last input: 11385234
Last input: 11388484
Last input: 11388640
Dus dit is voor mij de beste oplossing. 8) Remark _/-\o_
(GetCursorPos heb ik daar niet eens voor nodig)
Waarom ze die mouse input api beschrijving zo diep weggestopt hebben... Windows Management is wel het laatste waar ik in zou zoeken...
Ow my bad, ik zat even verkeerd te denken 8)7. Je hebt idd een global hook nodig. Overigens is die "performance" nogal peanuts. Ja, het is een functie die bij elke keypress en mousemove wordt aangeroepen, en bovendien een dll die bij elke eerste keypress of mousemove in een app moet worden geladen, maar echt veel maakt het niet uit...
/me Vraagt zich af hoeveel hooks er nu wel niet zijn invoer aan het bestuderen zijn

[ Voor 8% gewijzigd door Infinitive op 03-02-2004 22:49 ]

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Verwijderd

En vergeet de joystick niet :P . Mocht er een gebruiker tussen zitten die een flightsimulator freak is dan kan hij nog wel eens gaan vloeken als je screensaver aan springt.

Daar heb ik in mijn progje ook last van gehad. "Gelukkig" ging ik op dat moment toch al aanbrandend richting aarde >:) .

  • avon
  • Registratie: November 2002
  • Laatst online: 27-06-2025
heel simpel gedacht misschien maar waarom laat je het programma niet toevoegen bij geplande taken?

Afbeeldingslocatie: http://www.loveu2.nl/tweakers/taak/screen1.gif

[ Voor 3% gewijzigd door avon op 03-02-2004 22:57 ]

Gratis webwinkel beginnen? Met Onetoshop.com kunt u direct beginnen!


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
heel simpel gedacht misschien maar waarom laat je het programma niet toevoegen bij geplande taken?
Dat was mijn eerste idee maar ging niet werken. Het is me uiteindelijk gelukt om centraal te regelen dat overal het taakje werd toegevoegd, maar toen kwam ik er achter dat zelfs met netwerk administrator rechten het programma dingen niet kon doen op de desktop van de actieve gebruiker. Nu kan je wellicht wel iets doen als in het login script opnemen dat je de task scheduled en bij een logoff script de task weer weghaald, maar daarvoor heb je de credentials van de gebruiker nodig. En die is niet beschikbaar.

De inactief timeout stel je bij-the-way in je bij het tabbladje schema, niet bij instellingen >:)

Maar goed: ik zelf zag als mogelijke optie alleen nog maar een globale hook, maar daarvoor is als mooiere oplossing een functie waarmee ik de timeout in principe voor op kan vragen in de plaats gekomen. Als iemand nog mooiere oplossingen weet, gaat uw gang, maar ik denk niet dat er voor mijn doel nog iets beters is :)

[ Voor 27% gewijzigd door Infinitive op 03-02-2004 23:03 ]

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • avon
  • Registratie: November 2002
  • Laatst online: 27-06-2025
De inactief timeout stel je bij-the-way in je bij het tabbladje schema, niet bij instellingen
Ik wil een programma automatisch afsluiten nadat de computer een aantal minuten niet gebruikt is
Was me niet helemaal duidelijk, maar heb het even aangepast :)
maar daarvoor heb je de credentials van de gebruiker nodig. En die is niet beschikbaar.
Over wat voor taakje hebben we het dan eigenlijk in dit verhaal?

Gratis webwinkel beginnen? Met Onetoshop.com kunt u direct beginnen!


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Over wat voor taakje hebben we het dan eigenlijk in dit verhaal?
Ik zal je de overbodige details besparen, maar het heeft ermee te maken dat ik bij een bepaald window moet komen. Maar als het proces niet wordt gestart onder dezelfde gebruiker dan kan ik niet eens zien, laat staan bij het window komen.

En wat is uit beheerdersoogpunt makkelijker: programmatje gewoon in login script zetten en werken maar, of moeilijk gaan doen met het instellen van jobjes over het hele netwerk.

[ Voor 23% gewijzigd door Infinitive op 03-02-2004 23:16 ]

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
.oisyn schreef op 03 februari 2004 @ 22:26:
[...]
Ow my bad, ik zat even verkeerd te denken 8)7. Je hebt idd een global hook nodig. Overigens is die "performance" nogal peanuts. Ja, het is een functie die bij elke keypress en mousemove wordt aangeroepen, en bovendien een dll die bij elke eerste keypress of mousemove in een app moet worden geladen, maar echt veel maakt het niet uit...
* Mee eensch is ;)

Aanvulling / in mijn "eigen" (overigens eerder gesproken) woorden:

Je hoeft in die hook idd alleen maar de waarde van de huidige tijd in die var_lastinput te gooien m.b.v. een GetTickCount() of desnoodse een "now" (en dus geen timers te resetten etc.). Het kan dus in 1 regel code...wat nou "kost performance"? :P

Een muispijl verplaatsen op het scherm, de ingetypte letter weergeven of de cursor verplaatsen en de spellingscontrole plegen een grotere aanslag op je performance hoor ;)

En dan (zoals ik dus al zei) iedere seconde, 10 seconden, minuut of whatever (hoe "accuraat" wil je het hebben?) een keer de waarde van die var "pollen". En daar kun je een timer voor zetten.

Overigens zijn screensavers ook niet tot op de seconde nauwkeurig als ik me vergis...Dus als je om de halve minuut "polled" is er niks aan de hand lijkt me zo. Kun je er hoogstens 30 sec. langs zitten. Is dat zo'n ramp dan? :Y)

[ Voor 35% gewijzigd door RobIII op 04-02-2004 00:07 ]

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


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 09:47

.oisyn

Moderator Devschuur®

Demotivational Speaker

Je hoeft toch sowieso niet te pollen? Bij elke nieuwe input-event doe je gewoon weer een nieuwe SetTimer (), en als die timer afloopt dan wordt je daarvoor genotified (timerproc of WM_TIMER message), en dan doe je wat je moet doen. Hoeft geen polling voor aan te pas te komen :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
.oisyn schreef op 04 februari 2004 @ 00:21:
Je hoeft toch sowieso niet te pollen? Bij elke nieuwe input-event doe je gewoon weer een nieuwe SetTimer (), en als die timer afloopt dan wordt je daarvoor genotified (timerproc of WM_TIMER message), en dan doe je wat je moet doen. Hoeft geen polling voor aan te pas te komen :)
Dat kan dus ook, maar in mijn ervaring kost het setten/unsetten van timers meer performance dan het laten doorlopen van een "constante" timer. Maar aan de andere kant: Dit gebeurt sowieso niet erg vaak/sec ofzo, dus performance is niet echt aan de orde hier.

(En in mjin geval heb ik nog wel eens wat timers zien fire-en die allang weer gekilled waren, maar dat kan ook andere oorzaken hebben gehad dan Windows die niet mee wou werken ;) Zoals brakke code van moi :X )

[ Voor 16% gewijzigd door RobIII op 04-02-2004 00:25 ]

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


  • Mayco
  • Registratie: Augustus 2002
  • Laatst online: 24-05 17:37
.oisyn schreef op 03 februari 2004 @ 22:26:
[...]


Niet altijd, maar dan nog. Noem jij jezelf een programmeur? Een beetje onder het mom van "It compiles! Let's ship it!" :X


[...]
maar ik ship het dan niet :) je hebt wel gelijk dat het beter is met die functies, maar als het programma niet moet gereleased worden (voor eigen gebruik) doe ik de moeite niet om dat helemaal op punt te zetten :)

  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

RobIII schreef op 04 februari 2004 @ 00:24:
[...]

(En in mjin geval heb ik nog wel eens wat timers zien fire-en die allang weer gekilled waren, maar dat kan ook andere oorzaken hebben gehad dan Windows die niet mee wou werken ;) Zoals brakke code van moi :X )
So what? Je slaat gewoon de return code van je laatste call naar SetTimer() op, en alleen daar reageer je op. Sim-pel :)

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?

Pagina: 1