Hallo in die Runde,
ich bin Andre aus Essen, neu hier im Forum und in Sachen VB .net, naja, sagen wir mal ehrgeizig unterwegs
Seit ein paar Tagen komme ich bei einer Thematik nicht weiter und ich hoffe ihr könnt mir helfen.
Ich möchte gerne eine Webseite von einer IP-Kamera steuern. Es handelt sich hier um eine Wanscam IPCam HW0026 und diese beinhaltet einen Webserver für Konfigs und Livestreams etc. Die Kamera hat eine "two way audio"-Funktion, heißt, man kann bidirektional mit der Kamera sprechen. Dafür kann man mit den Internet Explorer auf die Kamera zugreifen und ein ActiveX (ocx) nutzen. Das ActiveX wird im IE geladen und bietet einen "Talk"-Button. Nun will ich mit einer Windows-Form und einem Webbrowser-Control auf die Kamera zugreifen und den Talk-Button ansteuern. Momentan habe ich das mit X,Y-Koordinaten gelöst und führe den Mauszeiger auf die Taste und klicke sie.
Eleganter wäre es aber, wenn ich die Taste direkt anspreche, bzw. das Javascript hinter der Taste auslöse. Mein Programm soll nämlich auch dann noch funktionieren, wenn der Rechner gesperrt ist. Im gesperrten Zustand ist das mit den Maus-Koordinaten ja nutzlos
Ich habe mehrere Beispiele aus dem Netz probiert (InvokeScript, InvokeMember, ExecScript, RaiseEvent) aber keine Lösung steuert den Button an.
Um zum Button zu gelangen, muss erst noch eine Unterseite aufgerufen werden. Auch diese kann ich nicht direkt aufrufen:
<td height="29" class="cs5" style="padding-left: 30px;" scope="row">
<strong>
<span style="color: rgb(143, 195, 31); cursor: pointer;" onmouseover="this.style.color='#8fc31f'" onmouseout="this.style.color='#4B4B4B'"onclick="javascript:signin_activex()">
<script>document.write(str_for_ie_h264);</script>
livestream mode (for Internet Explorer)
</span>
</strong>
</td>
function signin_activex()
{
location='monitor.htm';
}
Auf der nächsten Seite ist nun der "Talk"-Button:
<td width="61" align="center">
<img name="talk" width="50" height="50" title="talk" class="cs" id="talk" onclick="talk_onclick()" src="images/icon02.gif">
</td>
function talk_onclick()
{
if(video[nCurSel].TalkState == 0) {if(video[nCurSel].StartTalk()!=-1) $("#talk").attr("src","images/icon02_click.gif");}
else {if(video[nCurSel].StopTalk()!=-1) $("#talk").attr("src","images/icon02.gif");}
}
Habt ihr einen Tipp für mich, warum folgende Lösungswege nicht funktionieren?
WebBrowser1.Document.InvokeScript("talk_onclick()")
WebBrowser1.Document.Window.DomWindow.execscript("talk_onclick()")
WebBrowser1.Document.GetElementById("talk").Invokescript("click")
WebBrowser1.Document.GetElementById("talk").RaiseEvent("onmouseover")
WebBrowser1.Document.GetElementById("talk").RaiseEvent("onclick")
Vielen Dank im Voraus!
ich bin Andre aus Essen, neu hier im Forum und in Sachen VB .net, naja, sagen wir mal ehrgeizig unterwegs
Seit ein paar Tagen komme ich bei einer Thematik nicht weiter und ich hoffe ihr könnt mir helfen.
Ich möchte gerne eine Webseite von einer IP-Kamera steuern. Es handelt sich hier um eine Wanscam IPCam HW0026 und diese beinhaltet einen Webserver für Konfigs und Livestreams etc. Die Kamera hat eine "two way audio"-Funktion, heißt, man kann bidirektional mit der Kamera sprechen. Dafür kann man mit den Internet Explorer auf die Kamera zugreifen und ein ActiveX (ocx) nutzen. Das ActiveX wird im IE geladen und bietet einen "Talk"-Button. Nun will ich mit einer Windows-Form und einem Webbrowser-Control auf die Kamera zugreifen und den Talk-Button ansteuern. Momentan habe ich das mit X,Y-Koordinaten gelöst und führe den Mauszeiger auf die Taste und klicke sie.
Eleganter wäre es aber, wenn ich die Taste direkt anspreche, bzw. das Javascript hinter der Taste auslöse. Mein Programm soll nämlich auch dann noch funktionieren, wenn der Rechner gesperrt ist. Im gesperrten Zustand ist das mit den Maus-Koordinaten ja nutzlos
Ich habe mehrere Beispiele aus dem Netz probiert (InvokeScript, InvokeMember, ExecScript, RaiseEvent) aber keine Lösung steuert den Button an.
Um zum Button zu gelangen, muss erst noch eine Unterseite aufgerufen werden. Auch diese kann ich nicht direkt aufrufen:
<td height="29" class="cs5" style="padding-left: 30px;" scope="row">
<strong>
<span style="color: rgb(143, 195, 31); cursor: pointer;" onmouseover="this.style.color='#8fc31f'" onmouseout="this.style.color='#4B4B4B'"onclick="javascript:signin_activex()">
<script>document.write(str_for_ie_h264);</script>
livestream mode (for Internet Explorer)
</span>
</strong>
</td>
function signin_activex()
{
location='monitor.htm';
}
Auf der nächsten Seite ist nun der "Talk"-Button:
<td width="61" align="center">
<img name="talk" width="50" height="50" title="talk" class="cs" id="talk" onclick="talk_onclick()" src="images/icon02.gif">
</td>
function talk_onclick()
{
if(video[nCurSel].TalkState == 0) {if(video[nCurSel].StartTalk()!=-1) $("#talk").attr("src","images/icon02_click.gif");}
else {if(video[nCurSel].StopTalk()!=-1) $("#talk").attr("src","images/icon02.gif");}
}
Habt ihr einen Tipp für mich, warum folgende Lösungswege nicht funktionieren?
WebBrowser1.Document.InvokeScript("talk_onclick()")
WebBrowser1.Document.Window.DomWindow.execscript("talk_onclick()")
WebBrowser1.Document.GetElementById("talk").Invokescript("click")
WebBrowser1.Document.GetElementById("talk").RaiseEvent("onmouseover")
WebBrowser1.Document.GetElementById("talk").RaiseEvent("onclick")
Vielen Dank im Voraus!