Avatar billede maddog_em Nybegynder
15. januar 2010 - 08:29 Der er 5 kommentarer og
1 løsning

Hælp til *.VBS der kan læse en variabel fra en tekstfil

Hej alle Eksperter

Jeg har lavet en *.vbs script, der åbner IE - går til en bestemt website - her "indtaster" den brugernavn og adgangskoden - går videre til en ny side - her foretager den et foruddefineret valg - herefter skal der "indtastes" en variabel, og det er her jeg har brug for hjælp. Hvordan indlæses der en variabel fra et txt dokument?

her er min kode:
Set wshShell = WScript.CreateObject("WScript.Shell")
wshShell.Run "iexplore http://www.et-eller-andet.dk", 9
WScript.Sleep 5000 ' load siden
WshShell.SendKeys "{F6}"
WScript.Sleep 200
WshShell.SendKeys "{F6}"
WScript.Sleep 200
WshShell.SendKeys "{F6}"
WScript.Sleep 200
WshShell.SendKeys "test" 'user
WScript.Sleep 200
WshShell.SendKeys "{TAB}"
WScript.Sleep 200
WshShell.SendKeys "user" 'password
WScript.Sleep 200
WshShell.SendKeys "{TAB}"
WScript.Sleep 200
WshShell.SendKeys "{TAB}"
WScript.Sleep 200
WshShell.SendKeys "{ENTER}"
WScript.Sleep 200
WshShell.SendKeys "{F6}"
WScript.Sleep 200
WshShell.SendKeys "{F6}"
WScript.Sleep 200
WshShell.SendKeys "{F6}"
WScript.Sleep 200
WshShell.SendKeys "{TAB}"
WScript.Sleep 200
WshShell.SendKeys "{TAB}"
WScript.Sleep 200
WshShell.SendKeys "{TAB}"
WScript.Sleep 200
WshShell.SendKeys "{TAB}"
WScript.Sleep 200
WshShell.SendKeys "{TAB}"
WScript.Sleep 200
WshShell.SendKeys "{ENTER}"
WScript.Sleep 200
WshShell.SendKeys "{F6}"
WScript.Sleep 200
WshShell.SendKeys "{F6}"
WScript.Sleep 200
WshShell.SendKeys "{F6}"
WScript.Sleep 200
WshShell.SendKeys "Order"
WScript.Sleep 200
WshShell.SendKeys "{TAB}"
WScript.Sleep 200
WshShell.SendKeys "{TAB}"
WScript.Sleep 200
WshShell.SendKeys "{TAB}"
WScript.Sleep 200
WshShell.SendKeys "variabel fra tekst dok" <-- det er her jeg skal kan læse en variabel ind

et lille tillægsspørgsmål:
istedet for at jeg gentager den samme linie ex. 3 gange
WshShell.SendKeys "{TAB}"
kan man så ikke skrive antal gange denne skal gentages


/maddog
Avatar billede kdasummer Nybegynder
15. januar 2010 - 08:41 #1
sendkeys er en dødssynd. se i stedet på xmlhttp (tjek f.eks. http://scriptorium.serve-it.nl/view.php?sid=40)

med hensyn til dit spørgsmål så skal du bruge fso (eksempler: http://www.webpagedeveloper.ws/FSRC/vba_code/File%20System%20Object%20code.html)
Avatar billede maddog_em Nybegynder
15. januar 2010 - 10:04 #2
Hej

Måske er det bare mig, men jeg kan ikke helt se hvor / hvordan man får den til at kigge ned i filen og hente en bestemt tal streng. eks 55689 i dokument nummer.txt
Avatar billede maddog_em Nybegynder
15. januar 2010 - 10:09 #3
Jeg er meget ny på vbs området - men hvorfor er SendKeys en dødssynd? er det forældet eller hvad er der galt med denne kommando
Avatar billede kdasummer Nybegynder
15. januar 2010 - 10:27 #4
det er en dødssynd fordi det åbner op for virkelig mange fejl. hvad nu hvis siden tager 5002 millisekunder at loade en dag? så går det hele galt. jeg har også tidligere brugt sendkeys til at simulere museklik og indtastninger i et proprietært program der ikke kunne automatiseres på andre måder. det var helt vildt så mange fejl der var i det skidt.

du kan kigge på hvordan vba's split-funktion fungerer (http://visualbasic.about.com/od/learnvb6/l/blvbsplit.htm) og finde frem til dine variabler i tekstfilen på den måde.
Avatar billede tjens Nybegynder
16. januar 2010 - 01:28 #5
Hvis din tekstfil må være i XML format kan du bruge XMLDOM til at indlæse den.

Eksempel:
<root>
    <testdata>4321</testdata>
</root>
gemmes som data.xml

TestApplikation:
<html>
<head><title>Test Læs fra fil</title>
<hta:application applicationname="MyHTA">
<script language="VBScript">
Sub TestSub01
    Set xmlDoc = CreateObject("Microsoft.xmlDOM")
    xmlDoc.async=false
    xmlDoc.Load("data.xml")
    Set xmlData = xmlDoc.documentElement
    Set testdataNode = xmlData.selectSingleNode("/root/testdata")
    Msgbox testdataNode.nodeTypedValue & " : " & (2*CInt(testdataNode.nodeTypedValue))
End Sub
</script>
</head>
<body>
    <div id="mainDivID">
        <input type="button" value="Run Script" name="run_button"  onClick="TestSub01">
    </div>
</body>
</html>
Gemmes med endelsen .hta i samme folder som data.xml
Avatar billede maddog_em Nybegynder
18. august 2010 - 13:31 #6
lukket pga manglende input, men tak til de der forsøgte
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester