IPB

Willkommen, Gast ( Anmelden | Registrierung )

 
Reply to this topicStart new topic
> VBS in HTA, Object fehler?
Conny
Beitrag 10.08.2007 - 21:20
Beitrag #1


Kommt Zeit, kommt Rat, kommt Conrad!
Gruppensymbol

Gruppe: Mods
Beiträge: 1.169
Mitglied seit: 21.11.2001
Wohnort: Altenkirchen, Westerwald
Mitglieds-Nr.: 42



Moin Gemeinde,

Ich kämpfe bereits eine Weile mit einem Problem, dessen Lösung vllt. ganz einfach ist, von mir (mangels Grundkenntnis) aber nicht erkannt wird.

Dieses Script (ich nenne es Write_Line.vbs) funktioniert:
CODE
Option Explicit

' Variablen deklarieren
Dim WSHShell
Dim Sleep

' Programm ablauf, Zuweisen der Variablen
set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run "C:\WINDOWS\system32\notepad.exe"
WScript.Sleep 3000

'Fahrgestelnummer eingeben und mit Enter bestätigen
WshShell.Sendkeys "1"
WshShell.Sendkeys "2"
WshShell.Sendkeys "6"
WshShell.Sendkeys "0"
WshShell.Sendkeys "3"
WshShell.Sendkeys "8"
WshShell.Sendkeys "1"
WshShell.Sendkeys "A"
WshShell.Sendkeys "5"
WshShell.Sendkeys "8"
WshShell.Sendkeys "5"
WshShell.Sendkeys "1"
WshShell.Sendkeys "5"
WshShell.Sendkeys "3"

WshShell.Sendkeys "~"


In mehrfache (Auswahl) Ausführung, eingebettet in ein HTA Dokument, bekomme ich ein Fehlerhinweis: Object erforderlich: WScript.
Warum bloß?
CODE
<HTML>
<HEAD>
<TITLE>W126 Fahrgestellnummern</TITLE>
<HTA:APPLICATION ID="hta3" ICON="Stern.ico" APPLICATIONNAME="W126 Fahrgestellnummern" BORDER="thin" BORDERSTYLE="normal" CAPTION="yes" SHOWINTASKBAR="yes" SYSMENU="no" INNERBORDER="yes" WINDOWSTATE="normal" SINGLEINSTANCE="yes" CONTEXTMENU="no" SCROLL="no">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/vbscript">
<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript">
<STYLE TYPE="text/css">
BODY {
margin-left: 20px;
font: normal bold 12px Verdana;
background-color: Buttonface;
}
P {
font: normal 12px Verdana;
}
H1 {
font: normal bold 16px Verdana;
}
table {
font-size: 12px;
border: none;
}
</STYLE>

&lt;script LANGUAGE="vbScript">
Option Explicit

' Variablen deklarieren '
Dim WSHShell
Dim Sleep
Dim WScript

' Bestimmung der Fenstergröße '
Sub SubInitFenster
window.resizeTo 390, 500
End Sub

' Fahrgestellanweisungen '
Function Fgst300
set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run "D:\BHROOT\BIN\WINMBWW.EXE DBCP"
WScript.Sleep 3000 'Nach aufruf EPC 3 Sek. warten'
'Fahrgestelnummer eingeben und mit Enter bestätigen'
WshShell.Sendkeys "1"
WshShell.Sendkeys "2"
WshShell.Sendkeys "6"
WshShell.Sendkeys "0"
WshShell.Sendkeys "2"
WshShell.Sendkeys "4"

WshShell.Sendkeys "~"

End Function

Function Fgst500
set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run "D:\BHROOT\BIN\WINMBWW.EXE DBCP"
WScript.Sleep 3000 'Nach aufruf EPC 3 Sek. warten'
'Fahrgestelnummer eingeben und mit Enter bestätigen'
' 500SE 126 036 1A 291 679 '
WshShell.Sendkeys "1"
WshShell.Sendkeys "2"
WshShell.Sendkeys "6"
WshShell.Sendkeys "0"
WshShell.Sendkeys "3"
WshShell.Sendkeys "6"
WshShell.Sendkeys "1"
WshShell.Sendkeys "A"
WshShell.Sendkeys "2"
WshShell.Sendkeys "9"
WshShell.Sendkeys "1"
WshShell.Sendkeys "6"
WshShell.Sendkeys "7"
WshShell.Sendkeys "9"
WshShell.Sendkeys "~"

End Function

Function Fgst560
set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run "D:\BHROOT\BIN\WINMBWW.EXE DBCP"
WScript.Sleep 3000 'Nach aufruf EPC 3 Sek. warten'
'Fahrgestelnummer eingeben und mit Enter bestätigen '
WshShell.Sendkeys "1"
WshShell.Sendkeys "2"
WshShell.Sendkeys "6"
WshShell.Sendkeys "0"
WshShell.Sendkeys "3"
WshShell.Sendkeys "8"
WshShell.Sendkeys "1"
WshShell.Sendkeys "A"
WshShell.Sendkeys "5"
WshShell.Sendkeys "8"
WshShell.Sendkeys "5"
WshShell.Sendkeys "1"
WshShell.Sendkeys "5"
WshShell.Sendkeys "3"
WshShell.Sendkeys "~"

' Fgst.Nr. vom grünen 560er: 126 038 1A 58 51 53 '
' Fgst.Nr. vom grauen 560er: 126 038 1A 47 48 65 '
End Function

Function Fgst560ECE
set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run "D:\BHROOT\BIN\WINMBWW.EXE DBCP"
WScript.Sleep 3000 'Nach aufruf EPC 3 Sek. warten'
'Fahrgestelnummer eingeben und mit Enter bestätigen '
WshShell.Sendkeys "1"
WshShell.Sendkeys "2"
WshShell.Sendkeys "6"
WshShell.Sendkeys "0"
WshShell.Sendkeys "3"
WshShell.Sendkeys "8"
WshShell.Sendkeys "1"
WshShell.Sendkeys "A"
WshShell.Sendkeys "4"
WshShell.Sendkeys "7"
WshShell.Sendkeys "4"
WshShell.Sendkeys "8"
WshShell.Sendkeys "6"
WshShell.Sendkeys "5"
WshShell.Sendkeys "~"
End Function

' Fenster schließen'
Sub SubQuit
Set WSHShell = Nothing
Window.Close
End Sub
</SCRIPT>
</HEAD>

<BODY ONLOAD="SubInitFenster">
<H3>W126<BR>Fahrgestellnummereingabe<BR>für die EPC</H3>

<HR><BR><BR>

<P>Schnelle Fahrgestellnummereingabe an der EPC<BR>
hinter dem entsprechenden Fahrzeugtyp<BR>
den 'Start' Button anklicken.</P>
<TABLE BORDER="0" WIDTH="320">
<TR><TD ALIGN="center">
<FORM>
<TABLE BORDER="0" CELLPADDING="5">
<TR>
<TD>1.</TD>
<TD>300SE Kurzdaten R6</TD>
<TD><INPUT TYPE="button" VALUE="Start" NAME="button1" ONCLICK="Fgst300"></TD>
</TR>

<TR>
<TD>2.</TD>
<TD>500SE Bj.'85 mit 248 PS</TD>
<TD><INPUT TYPE="button" VALUE="Start" NAME="button2" ONCLICK="Fgst500"></TD>
</TR>

<TR>
<TD>3.</TD>
<TD>560SE Bj.'90 mit 279 PS</TD>
<TD><INPUT TYPE="button" VALUE="Start" NAME="button3" ONCLICK="Fgst560"></TD>
</TR>

<TR>
<TD>4.</TD>
<TD>560SE Bj.'89 mit 300 PS</TD>
<TD><INPUT TYPE="button" VALUE="Start" NAME="button4" ONCLICK="Fgst560ECE"></TD>
</TR>
</TABLE>
<HR><BR><BR>
<INPUT TYPE="Button" NAME="button6" VALUE="Close" ONCLICK="SubQuit" TITLE="Das Fenster wird geschlossen!">
</FORM>
</TD></TR>
</TABLE>

</BODY>
</HTML>


Wer von Euch erbarmt sich meiner und sagt was ich ändern muss, bzw, wie ich es besser machen kann?
Danke.
cu
Conny
Go to the top of the page
 
+Quote Post
helpy
Beitrag 10.08.2007 - 22:59
Beitrag #2


;-)
Gruppensymbol

Gruppe: Mods
Beiträge: 246
Mitglied seit: 20.11.2001
Mitglieds-Nr.: 15



Hi Conny, weil ich grade mal vorbei schaue und mich an alte Zeiten erinnere wink.gif

Probiers damit:
CODE
<HTML>
<HEAD>
<TITLE>W126 Fahrgestellnummern</TITLE>
<HTA:APPLICATION ID="hta3" ICON="Stern.ico" APPLICATIONNAME="W126 Fahrgestellnummern" BORDER="thin" BORDERSTYLE="normal" CAPTION="yes" SHOWINTASKBAR="yes" SYSMENU="no" INNERBORDER="yes" WINDOWSTATE="normal" SINGLEINSTANCE="yes" CONTEXTMENU="no" SCROLL="no">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/vbscript">
<STYLE TYPE="text/css">
BODY {
margin-left: 20px;
font: normal bold 12px Verdana;
background-color: Buttonface;
}
P {
font: normal 12px Verdana;
}
H1 {
font: normal bold 16px Verdana;
}
table {
font-size: 12px;
border: none;
}
</STYLE>

&lt;script LANGUAGE="vbScript">
Option Explicit

' Variablen deklarieren '
Dim WSHShell
Dim Sleep
Dim WScript

' Bestimmung der Fenstergröße '
Sub SubInitFenster
window.resizeTo 390, 500
End Sub

' Fahrgestellanweisungen '
Function Fgst300
set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run "D:\BHROOT\BIN\WINMBWW.EXE DBCP"
WScript.Sleep 3000 'Nach aufruf EPC 3 Sek. warten'
'Fahrgestelnummer eingeben und mit Enter bestätigen'
WshShell.Sendkeys "1"
WshShell.Sendkeys "2"
WshShell.Sendkeys "6"
WshShell.Sendkeys "0"
WshShell.Sendkeys "2"
WshShell.Sendkeys "4"

WshShell.Sendkeys "~"

End Function

Function Fgst500
set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run "D:\BHROOT\BIN\WINMBWW.EXE DBCP"
WScript.Sleep 3000 'Nach aufruf EPC 3 Sek. warten'
'Fahrgestelnummer eingeben und mit Enter bestätigen'
' 500SE 126 036 1A 291 679 '
WshShell.Sendkeys "1"
WshShell.Sendkeys "2"
WshShell.Sendkeys "6"
WshShell.Sendkeys "0"
WshShell.Sendkeys "3"
WshShell.Sendkeys "6"
WshShell.Sendkeys "1"
WshShell.Sendkeys "A"
WshShell.Sendkeys "2"
WshShell.Sendkeys "9"
WshShell.Sendkeys "1"
WshShell.Sendkeys "6"
WshShell.Sendkeys "7"
WshShell.Sendkeys "9"
WshShell.Sendkeys "~"

End Function

Function Fgst560
set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run "D:\BHROOT\BIN\WINMBWW.EXE DBCP"
WScript.Sleep 3000 'Nach aufruf EPC 3 Sek. warten'
'Fahrgestelnummer eingeben und mit Enter bestätigen '
WshShell.Sendkeys "1"
WshShell.Sendkeys "2"
WshShell.Sendkeys "6"
WshShell.Sendkeys "0"
WshShell.Sendkeys "3"
WshShell.Sendkeys "8"
WshShell.Sendkeys "1"
WshShell.Sendkeys "A"
WshShell.Sendkeys "5"
WshShell.Sendkeys "8"
WshShell.Sendkeys "5"
WshShell.Sendkeys "1"
WshShell.Sendkeys "5"
WshShell.Sendkeys "3"
WshShell.Sendkeys "~"

' Fgst.Nr. vom grünen 560er: 126 038 1A 58 51 53 '
' Fgst.Nr. vom grauen 560er: 126 038 1A 47 48 65 '
End Function

Function Fgst560ECE
set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run "D:\BHROOT\BIN\WINMBWW.EXE DBCP"
WScript.Sleep 3000 'Nach aufruf EPC 3 Sek. warten'
'Fahrgestelnummer eingeben und mit Enter bestätigen '
WshShell.Sendkeys "1"
WshShell.Sendkeys "2"
WshShell.Sendkeys "6"
WshShell.Sendkeys "0"
WshShell.Sendkeys "3"
WshShell.Sendkeys "8"
WshShell.Sendkeys "1"
WshShell.Sendkeys "A"
WshShell.Sendkeys "4"
WshShell.Sendkeys "7"
WshShell.Sendkeys "4"
WshShell.Sendkeys "8"
WshShell.Sendkeys "6"
WshShell.Sendkeys "5"
WshShell.Sendkeys "~"
End Function

' Fenster schließen'
Sub SubQuit
Set WSHShell = Nothing
Window.Close
End Sub
</SCRIPT>
</HEAD>

<BODY ONLOAD="SubInitFenster">
<H3>W126<BR>Fahrgestellnummereingabe<BR>für die EPC</H3>

<HR><BR><BR>

<P>Schnelle Fahrgestellnummereingabe an der EPC<BR>
hinter dem entsprechenden Fahrzeugtyp<BR>
den 'Start' Button anklicken.</P>
<TABLE BORDER="0" WIDTH="320">
<TR><TD ALIGN="center">
<FORM>
<TABLE BORDER="0" CELLPADDING="5">
<TR>
<TD>1.</TD>
<TD>300SE Kurzdaten R6</TD>
<TD><INPUT TYPE="button" VALUE="Start" NAME="button1" ONCLICK="Fgst300"></TD>
</TR>

<TR>
<TD>2.</TD>
<TD>500SE Bj.'85 mit 248 PS</TD>
<TD><INPUT TYPE="button" VALUE="Start" NAME="button2" ONCLICK="Fgst500"></TD>
</TR>

<TR>
<TD>3.</TD>
<TD>560SE Bj.'90 mit 279 PS</TD>
<TD><INPUT TYPE="button" VALUE="Start" NAME="button3" ONCLICK="Fgst560"></TD>
</TR>

<TR>
<TD>4.</TD>
<TD>560SE Bj.'89 mit 300 PS</TD>
<TD><INPUT TYPE="button" VALUE="Start" NAME="button4" ONCLICK="Fgst560ECE"></TD>
</TR>
</TABLE>
<HR><BR><BR>
<INPUT TYPE="Button" NAME="button6" VALUE="Close" ONCLICK="SubQuit" TITLE="Das Fenster wird geschlossen!">
</FORM>
</TD></TR>
</TABLE>

</BODY>
</HTML>


Content-Script-Type zweimal zu definieren ist wohl nicht ganz so richtig!
QUELLTEXT
<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/vbscript">
<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript">


Und statt
QUELLTEXT
&lt;script LANGUAGE="vbScript">
solltest Du eher
QUELLTEXT
&lt;script LANGUAGE="vbScript">
schreiben.

cu, guido
Go to the top of the page
 
+Quote Post
Conny
Beitrag 11.08.2007 - 7:59
Beitrag #3


Kommt Zeit, kommt Rat, kommt Conrad!
Gruppensymbol

Gruppe: Mods
Beiträge: 1.169
Mitglied seit: 21.11.2001
Wohnort: Altenkirchen, Westerwald
Mitglieds-Nr.: 42



Hi Guido!

long time no see.
Wie geht es Dir?

Vielen Dank für Deine Hinweise, leider lösen sie (bis jetzt rolleyes.gif ) nicht mein Problem.
Nach klicken eines der Start Buttons wird das Programm zwar gestartet, die Zeile wird aber nicht geschrieben, weil die Ausführung durch die Fehlermeldung: Object erforderlich: WScript. gestoppt wird.

cu
Conny
Go to the top of the page
 
+Quote Post
helpy
Beitrag 11.08.2007 - 9:16
Beitrag #4


;-)
Gruppensymbol

Gruppe: Mods
Beiträge: 246
Mitglied seit: 20.11.2001
Mitglieds-Nr.: 15



ZITAT(Conny @ 11.08.2007 - 8:59) *
long time no see.
Wie geht es Dir?

Hi Conny,

Bis auf einen einbandagierten Fuß (vor zwei Wochen beim Sport umgeknickt) ganz gut. Besonders im Blick auf den kommenden Urlaub (zwei Wochen in der Schweiz am Bodensee geht es mir sehr gut wink.gif

ZITAT(Conny @ 11.08.2007 - 8:59) *
Vielen Dank für Deine Hinweise, leider lösen sie (bis jetzt rolleyes.gif ) nicht mein Problem.
Nach klicken eines der Start Buttons wird das Programm zwar gestartet, die Zeile wird aber nicht geschrieben, weil die Ausführung durch die Fehlermeldung: Object erforderlich: WScript. gestoppt wird.


In HTA steht Dir Sleep nicht zur Verfügung! Zitat von Microsoft (http://www.microsoft.com/technet/scriptcenter/topics/htas/autorefresh.mspx):
ZITAT
Unfortunately, though, Sleep is a WSH method; that means it won’t work in an HTA.


Hier ein kleiner Workaround:
QUELLTEXT
' Fahrgestellanweisungen '
Function Fgst300
set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run "notepad.exe" ' DEIN Programm einsetzen
'Fahrgestelnummer eingeben und mit Enter bestätigen'
window.setTimeout "Fgst300_SendKeys()", 3000
End Function

Sub Fgst300_SendKeys()
WshShell.Sendkeys "1"
WshShell.Sendkeys "2"
WshShell.Sendkeys "6"
WshShell.Sendkeys "0"
WshShell.Sendkeys "2"
WshShell.Sendkeys "4"

WshShell.Sendkeys "~"
End Sub


Vielleicht kommst Du damit ja weiter!
Einen sonnigen Gruß aus dem z.Zt. verregneten Niederbayern,
guido
Go to the top of the page
 
+Quote Post
Conny
Beitrag 11.08.2007 - 20:24
Beitrag #5


Kommt Zeit, kommt Rat, kommt Conrad!
Gruppensymbol

Gruppe: Mods
Beiträge: 1.169
Mitglied seit: 21.11.2001
Wohnort: Altenkirchen, Westerwald
Mitglieds-Nr.: 42



Hi Guido,

DAS muss man erst mal wissen, daß SLEEP in HTA nicht zur Verfügung steht!
(Ich wäre da nie drauf gekommen...)

Dein Workaround löst (mal wieder) mein Problem (ist ja fast so wie in alten Zeiten!)
Vielen Dank und hoffentlich sehen wir Dich mal wieder öfters in diesem Forum!
cu
Conny
Go to the top of the page
 
+Quote Post
Google Bot
Beitrag
Beitrag #


Google Ads









Go to the top of the page
 
Quote Post

Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 04.04.2020 - 17:02

taschenkalender
expertise-panel IPS Driver Error

IPS Driver Error

There appears to be an error with the database.
You can try to refresh the page by clicking here