Voor mijn werk moet ik een website bouwen waarmee ik bepaalde berekeningen kan doen mbv een applicatie. Ik loop tegen een aantal dingen aan waar ik maar slecht uit kan komen.
De bedoeling is dat er een bestand geupload wordt, daarna in een database opgeslagen wordt en vervolgens wordt het bestand gebruikt om in externe applicatie berekeningen uit te laten voeren.
De eerste stappen gingen vrij gemakkelijk, de problemen begonnen toen de applicatie berekeningen moest gaan uitvoeren. De externe applicatie werkt alleen in grafische modus (geen console modus beschikbaar...) en wordt momenteel uitgevoerd via een autoit script. Dit script doet gewoon keihard mouseclick events en keyboard events naar het gefocusde venster sturen.
De eerste vraag is dus, is het ook mogelijk om een applicatie op een andere manier aan te kunnen sturen? Ik heb zelf al zitten denken om direct window messages naar het venster te versturen, maar dit is (vooralsnog) te ingewikkeld voor mij (hints zijn altijd welkom).
Een volgende probleem is, er wordt een bestand gebruikt als invoer voor de externe applicatie, dit bestand kan 10k zijn, maar ook 500k. Uiteraard beinvloedt dit ook de snelheid van de berekeningen. Tijdens het verwerken van alle gegevens, staat de client dus gewoon te wachten. Het is dan (voor mij) ook logisch dat er dan ff een bericht wordt getoond dat het script bezig is. Ik dacht zelf dit te doen door eerste de externe applicatie te starten en dan direct daarna een redirect naar een tijdelijke pagina, welke automatisch redirect naar een resultaten pagina na x seconden of zo. Het probleem is echter dat popen en/of proc_open het script blokkeert en dus de redirect niet direct uitvoert, maar als de externe applicatie gesloten wordt (wat er overigens ook nog voor zorgt dat de php script timeout niet 100% functioneert). Is er een manier om een proces te starten en daarna direct door te gaan met het php script?
Op de php site heb ik wel ergens een 'oplossing' gelezen, welke dmv start <commando> dit wilde oplossen, dit werkt echter hier niet.
Systeem:
Windows XP
Apache
Php 5.2.1
De bedoeling is dat er een bestand geupload wordt, daarna in een database opgeslagen wordt en vervolgens wordt het bestand gebruikt om in externe applicatie berekeningen uit te laten voeren.
De eerste stappen gingen vrij gemakkelijk, de problemen begonnen toen de applicatie berekeningen moest gaan uitvoeren. De externe applicatie werkt alleen in grafische modus (geen console modus beschikbaar...) en wordt momenteel uitgevoerd via een autoit script. Dit script doet gewoon keihard mouseclick events en keyboard events naar het gefocusde venster sturen.
De eerste vraag is dus, is het ook mogelijk om een applicatie op een andere manier aan te kunnen sturen? Ik heb zelf al zitten denken om direct window messages naar het venster te versturen, maar dit is (vooralsnog) te ingewikkeld voor mij (hints zijn altijd welkom).
Een volgende probleem is, er wordt een bestand gebruikt als invoer voor de externe applicatie, dit bestand kan 10k zijn, maar ook 500k. Uiteraard beinvloedt dit ook de snelheid van de berekeningen. Tijdens het verwerken van alle gegevens, staat de client dus gewoon te wachten. Het is dan (voor mij) ook logisch dat er dan ff een bericht wordt getoond dat het script bezig is. Ik dacht zelf dit te doen door eerste de externe applicatie te starten en dan direct daarna een redirect naar een tijdelijke pagina, welke automatisch redirect naar een resultaten pagina na x seconden of zo. Het probleem is echter dat popen en/of proc_open het script blokkeert en dus de redirect niet direct uitvoert, maar als de externe applicatie gesloten wordt (wat er overigens ook nog voor zorgt dat de php script timeout niet 100% functioneert). Is er een manier om een proces te starten en daarna direct door te gaan met het php script?
Op de php site heb ik wel ergens een 'oplossing' gelezen, welke dmv start <commando> dit wilde oplossen, dit werkt echter hier niet.
Systeem:
Windows XP
Apache
Php 5.2.1