/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
afvikle program i dosprompt og sende indta~
Fra : Niels Mølgaard Peder~


Dato : 18-12-01 14:03

Hej NG

Jeg sidder og bøvler lidt med et beregningstungt fortranprogram (der er
compileret/linket som windows-.exe-fil og afvikles i en dosprompt), jeg
gerne vil have til at blive kaldt fra en makro i excel. Samtidig skal der
fra excel sendes nogle indtastninger til programmet (som hvis man sad og
skrev inputs direkte fra tastaturet).

Jeg har prøvet mig frem med nedenstående, men der er tilsyneladende en del
mandagsproblemer med at styre, hvilket vindue, der er i fokus. Nogle gange
virker det, andre gange skriver makroen indtastningerne til det excelark,
hvorfra jeg åbner makroen, og for at gøre det rigtig morsomt skrives
indtastningerne ind imellem også direkte ned i makroens kode.

Er der en mere driftsikker måde at køre skidtet på end vha 'shell'- og
'sendkeys'-metoden, og hvordan styrer jeg, hvilket vindue, der er i fokus,
når programmets keys sendes afsted, dvs hvilket vindue, der modtager
indtastningerne?



Sub sendingkeys()
'
' Macro, which opens calculation program and
' sends key information.

ChDir "c:/Program Files/Test"
'Sheets("Programinput").Select

AppActivate Shell("calcul.exe ", vbNormalFocus), True
Application.SendKeys Range("A4") & "~", True ' user initials
Application.SendKeys Range("A5") & "~", True ' number of iterations
Application.SendKeys Range("A6") & "~", True ' max error
:
:
:


Mvh Niels Mølgaard Pedersen




 
 
Mads Chr. Olesen (19-12-2001)
Kommentar
Fra : Mads Chr. Olesen


Dato : 19-12-01 14:45

En pause kunne måske bruges, mellem at du starter programmet, og sender dine
tastetryk.

Sub Pause()
Dim i as long
i = timer + 30 '30 sekunder
do until timer <= i
doevents
loop
End sub

Du skal nok kigge på api-funktionen (Jeg kan anbefale at kigge på
www.allapi.net)
Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long)
As Long

"Niels Mølgaard Pedersen" <niels@nmp.dk> skrev i en meddelelse
news:9vpfr1$cbn$1@sunsite.dk...
> Hej NG
>
> Jeg sidder og bøvler lidt med et beregningstungt fortranprogram (der er
> compileret/linket som windows-.exe-fil og afvikles i en dosprompt), jeg
> gerne vil have til at blive kaldt fra en makro i excel. Samtidig skal der
> fra excel sendes nogle indtastninger til programmet (som hvis man sad og
> skrev inputs direkte fra tastaturet).
>
> Jeg har prøvet mig frem med nedenstående, men der er tilsyneladende en del
> mandagsproblemer med at styre, hvilket vindue, der er i fokus. Nogle gange
> virker det, andre gange skriver makroen indtastningerne til det excelark,
> hvorfra jeg åbner makroen, og for at gøre det rigtig morsomt skrives
> indtastningerne ind imellem også direkte ned i makroens kode.
>
> Er der en mere driftsikker måde at køre skidtet på end vha 'shell'- og
> 'sendkeys'-metoden, og hvordan styrer jeg, hvilket vindue, der er i fokus,
> når programmets keys sendes afsted, dvs hvilket vindue, der modtager
> indtastningerne?
>
>
>
> Sub sendingkeys()
> '
> ' Macro, which opens calculation program and
> ' sends key information.
>
> ChDir "c:/Program Files/Test"
> 'Sheets("Programinput").Select
>
> AppActivate Shell("calcul.exe ", vbNormalFocus), True
> Application.SendKeys Range("A4") & "~", True ' user initials
> Application.SendKeys Range("A5") & "~", True ' number of iterations
> Application.SendKeys Range("A6") & "~", True ' max error
> :
> :
> :
>
>
> Mvh Niels Mølgaard Pedersen
>
>
>



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste