Toon posts:

[C#] Extern programma gebruiken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hmm, 'k heb een klein probleempje met 't uitvoeren van een ander programma vanuit m'n eigen programma. 'k maak een programma dat m'n CD speler in de gaten houdt, vervolgens kijkt of daar een AVI bestand staat, daarna kijkt het programma in een directory op de hardeschijf en kijkt of daar een bestand staat met dezelfde naam maar met de extensie BSI. Als die gevonden wordt moet het programma een programma uitvoeren met als parameter dat BSI bestand.

Het probleem is nu alleen dat het programma wel opstart, maar vervolgens geen interface of iets dergelijks laat zien. Maar volgens de taken lijst is het programma wel opgestart. Nu denk ik dat het aan het programma dat ik probeer uit te voeren ligt, maar misschien dat iemand hier nog een idee heeft. Het programma wat ik maak draait namelijk als service, en onder de lokale systeem account, dus misschien dat dat het probleem is.

Code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
bsplayerpath = @"c:\Program Files\BSPlayer\bplay.exe";
lastfilenames = new string[0];
retry:
try 
{
while (true) 
{
    string[] filenames = Directory.GetFiles("i:\\", "*.avi");
    if (filenames.Length != lastfilenames.Length) 
    {
        lastfilenames = filenames;
        foreach (string filename in filenames) 
        {
            string newfilename = filename.Replace("i:\\", "");
            newfilename = newfilename.Replace("avi", "bsi");
            string bsifilename = String.Concat(@"c:\Program Files\Movie Collection\Data\", @newfilename);
            if (File.Exists(bsifilename) == true) 
            {
                System.Diagnostics.Process.Start(@bsplayerpath, @bsifilename);                      break;
            }
        }
    }
    Thread.Sleep(500);
}

Verwijderd

Op zaterdag 25 mei 2002 21:55 schreef jmezach het volgende:
Het programma wat ik maak draait namelijk als service, en onder de lokale systeem account, dus misschien dat dat het probleem is.
Bij het installeren van je service kan je 'n optie zetten "allow interaction with desktop", deze kan je uiteraard ook later nog handmatig zetten in je control panel.

Verwijderd

Topicstarter
Hmmz, dat lost inderdaad het probleem gedeeltelijk op. 't programma wat ik uitvoer doet nu alleen nog niets met de parameter, maar dat kan ook een " probleem zijn. Enig idee of ik die optie ook in de installer kan aanzetten, zodat die dus standaard aan staat?

Verwijderd

Waarom gebruik je trouwens een oneindige loop met sleep? Kan je dit niet netter met een filesystemwatcher oplossen?