Doelstelling:
programma wat Mijn Afbeeldingen in de gaten houdt op nieuwe afbeeldingen die voldoen aan bepaalde eisen (vooral resolutie, dus een monitor resolutie)
en daarna een balloontip geeft met:
"Er is een nieuw wallpaper gevonden, klik hier om deze als achtergrond in te stellen"
manier:
Filesystemwatcher gebruiken en op het moment dat er een nieuwe file gemaakt word in mijn afbeeldingen kijken of deze aan de resolutie eisen voldoet, dan Balloontip geven
probleem:
de manier waarop ik dit wou gebruiken was door middel van een timer die elke 5 seconden even kijkt in de directory maar dit werkt niet omdat de filechange precies moet gebeuren op het moment dat de filesystemwatcher staat te kijken.
als ik de filesystemwatcher lang laat lopen (zeg 30 seconden) hangt in die tijd je programma.
weet iemand een manier om periodiek te scannen op bestanden zonder dat je programma vastloopt en dat je netjes events binnenkrijgt?
even wat voorbeeld code:
programma wat Mijn Afbeeldingen in de gaten houdt op nieuwe afbeeldingen die voldoen aan bepaalde eisen (vooral resolutie, dus een monitor resolutie)
en daarna een balloontip geeft met:
"Er is een nieuw wallpaper gevonden, klik hier om deze als achtergrond in te stellen"
manier:
Filesystemwatcher gebruiken en op het moment dat er een nieuwe file gemaakt word in mijn afbeeldingen kijken of deze aan de resolutie eisen voldoet, dan Balloontip geven
probleem:
de manier waarop ik dit wou gebruiken was door middel van een timer die elke 5 seconden even kijkt in de directory maar dit werkt niet omdat de filechange precies moet gebeuren op het moment dat de filesystemwatcher staat te kijken.
als ik de filesystemwatcher lang laat lopen (zeg 30 seconden) hangt in die tijd je programma.
weet iemand een manier om periodiek te scannen op bestanden zonder dat je programma vastloopt en dat je netjes events binnenkrijgt?
even wat voorbeeld code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| private string MonitorDirectory()
{
string filename = "";
Monitor.Path = @"C:\Documents and Settings\Whistler\Mijn documenten\Mijn afbeeldingen";
Monitor.Filter = ".jpg";
WaitForChangedResult result = new WaitForChangedResult();
result = Monitor.WaitForChanged(WatcherChangeTypes.Created, 10000);
if (result.TimedOut)
{
filename = result.TimedOut.ToString();
}
else
{
filename = result.Name.ToString();
}
return filename;
} |
Even niets...