Outlook Wählhilfe (Makro) ohne Box zu modifizieren

Status
Für weitere Antworten geschlossen.
Hallo,
[...]
wenn du hier das (Len(Text) * 2) einsetzt dann sollte es klappen.

Gruß Erwin

Ja funktioniert, wenn du zusätzlich in inMD5 das StrConv rausnimmst
Code:
ByteText() = Text
ansonnsten liefert diese Funktion wieder f2e389d88b47eb020d46b647dc1d72dd. Danke für deinen TIP.
 
Hallo,

Mal etwas nachgeschaut und jetzt ist mir klar warum
kein Unicode übergeben wird hier:
http://www.vbarchiv.net/commands/details.php?id=strconv&print=1

Das
Code:
' Unicode zu Ansi
ByteText() = StrConv(Text, vbFromUnicode)
solte so sein
Code:
' Ansi zu Unicode 
ByteText() = StrConv(Text, vbUnicode)

oder das Beispiel im anderen Post davor.

Man sollte danach mal Prüfen ob die Länge in
Len(Text) jetzt richtig zurückgeliefert wird,
oder man nimmt es mal 2.

oder
Code:
Len(StrConv(Text, vbUnicode))

:-Ö :confused:


Gruß Erwin
 
Zuletzt bearbeitet:
Code:
Sub GetPersonByPhoneNumber()
   Set ol = New Outlook.Application
   Set olns = ol.GetNamespace("MAPI")
   Set ContactFolder = olns.GetDefaultFolder(olFolderContacts)
   Set Persons = ContactFolder.Items
   Set RestrictedPersons= Persons.Restrict("[FritzboxDingsBums-Mobil] = '123456789 '")
End Sub

Entweder bin ich zu Doof, aber das funktioniert einfach nicht. Wenn die Kontaktordner (Subordner) nicht über die Property "FritzboxDingsBums-Mobil" etc. verfügen kommt es zu der Fehlermeldung, dass die Eigenschaft nicht bekannt ist. (Das funktioniert selbst mit Office 2007 nicht)

Edit: Ja ich bin doof! Man sollte beim Indizieren auch AddToFolderFields auf True setzen. Sonst kann es nix werden...
 
Zuletzt bearbeitet:
Hallo,

Ich habe mal eine dumme Frage, muss man hier: :confused:

Code:
"getpage=../html/de/menus/menu2.html&telcfg:settings/DialPort=" + "1" + "&telcfg:command/Dial=" + sRufnummer + "&sid=" + sSID

auch die SessionID mit dranhängen?!

Gruß Erwin ;)
 
Hallo,

Danke für die Antwort, denn ich habe es hier: http://www.ip-phone-forum.de/showpost.php?p=1367955&postcount=9
schon mit rein genommen, aber keine Garantie dass es geht,
da ich keine FB 7270 zum Testen habe, Sorry.

Mir wäre weiter geholfen wenn ich mal den Seiteninhalt der
Login_Sid und der Response Seite sehen könnte, was da
zurück gegeben wird, Danke.

Gruß Erwin
 
die xml ist so aufgebaut wie in der Technical Note beschrieben. Die Response seite ist eine ganz typische Seite der Fritzbox, die die sid enthält:
z.B.
<input type="hidden" name="sid" value="a5da8a4b1bc6adbc">
 
Hallo,

Dann habe Ich wohl was nicht ganz verstanden?! :confused:

Ich ging davon aus das die Rückgabe nach dem Response aufgerufen
wurde, in den Text der zurückgeben wurde die sid etwa so
<SID>0123456789abcdef</SID> drinsteht.

In der Login_sid gehe davon aus dass es etwa so ist?!

Code:
<iswriteaccess>0000000000000000</iswriteaccess>

<Challenge>12345678</Challenge>

<SID>0123456789abcdef</SID>

aber ich glaube da liege ich wohl daneben?! :confused:

(Ich werde wohl doch nächste woche mal die FB 7270 eines Bekannten
auf den Kopf stellen müssen?!)

Gruß Erwin
 
Da es seit vorgestern auch die SessionID für die 7170 gibt, wird die Nachfrage nach dem geänderten LogIn-Verfahren für die 2.4X sicher bald anwachsen.

Version 3 läuft in der Hinsicht ohne Probleme.

Ich suche noch Mitentwickler. Visual Studio 2008 Professional ist Vorraussetzung (keine Express). Studenten kriegen solche Software oft kostenlos von der Hochschule.

Eine 7270 wäre auch noch schön. Hat jemand Interesse?
 
Kruemelino, ich möchte dir jetzt nicht in den Rücken fallen, aber wenn Du Mitentwickler suchst, würde ich gerne auch mal folgende Fragen in den Raum werfen:

  • Wie viele potenzielle Mitentwickler gibt es, die ein Visual Studio 2008 Professional zuhause haben?
  • Wie viele potenzielle Mitentwickler gibt es, die Fritz!Box Telefon-dingsbums lieber weiterhin direkt als Outlook Makro weiterentwickeln würden?
Für mich bedeutet der Umzug in ein Visual Studio 2008 Professional Project ein NoGo für weitere Unterstützung bzw. für eigene Anpassungen, da mir die Software fehlt. Als Outlook Makro konnte ich mir recht schnell die eine oder andere Ecke anpassen und erweitern...

Wie sehen dies die anderen Anwender/Entwickler?
Welchen Vorteil hat das Visual Studio 2008 Professional Project außer das es in einem Schritt installiert werden kann?

Kruemelino, bitte nimms mir nicht übel, aber ich wollte einfach nur mal fragen, ob es anderen auch so geht wie mir. Ich schätze deine Bemühungen und deinen Einsatz sehr!
 
...
[*]Wie viele potenzielle Mitentwickler gibt es, die Fritz!Box Telefon-dingsbums lieber weiterhin direkt als Outlook Makro weiterentwickeln würden?
...

Also mir geht es auch wie SagHalt.
Wie der Thread schon sagt war es schon immer ein Makro an dem man selber seinen Senf dranflanschen konnte. Mein zusätzlicher Programmcode ist fast nochmal so lang, da ich viele Features mir noch für mein CRM dazu gemacht habe.
Vielleicht sollte man das Projekt wirklich trennen.
 
Der User, der den Code anpassen will, hat mit der neuen Version natürlich schlechte Karten. Da muss ich euch recht geben. Allerdings war die Version gar nicht für diese bestimmt, sondern für den nicht so versierten Nutzer. Beide Versionen können nebeneinander Existieren.

Eine Anpassung an die SessionID ist in Arbeit. Allerdings kümmere ich mich nicht persönlich darum, da ich keine Makro-Version mehr in Verwendung habe.
Der MD5-Hash wird bei dieser Anpassung von Pikachus Codeschnipsel erstellt. Darausfolgende Anpassungen sind an diversen Stellen vorzunehmen.

Was ist mit der Auswertung der Telefoniegeräte ab Firmware-Version 70? Inwieweit wurden da schon Funktionen erstellt?
Ich hab da eine Funktion (ACHTUNG: .NET-Code):
Code:
    Sub FritzBoxDaten()
        Dim SID As String = FBLogin()       'enthält die SessionID: "&sid=" & SID
        If SID = "-1" Then 'Fehlerfall
            MsgBox("Anmelden nicht erfolgreich. Einlesen der Telefone abgebrochen./(FritzBoxDaten)", MsgBoxStyle.Critical)
            Exit Sub
        End If
        Dim FBOX_ADR As String = ini.Read(DateiPfad, "Optionen", "TBFBAdr", "192.168.178.1") ' IP der FritzBox
        Dim tempstring As String
        tempstring = HTTPTrans.Read("http://" & FBOX_ADR & "/cgi-bin/webcm?getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=fon&var:pagename=fondevices" & SID, System.Text.Encoding.UTF8)
        FBLogout(SID)
        tempstring = Replace(tempstring, Chr(34), "'", , , vbTextCompare)   ' " in ' umwandeln
        Dim Vorwahl As String                 ' In den Einstellungen eingegebene Vorwahl
        Dim TelName As String                 ' Gefundener Telefonname
        Dim TelNr As String                 ' Dazugehörige Telefonnummer
        Dim SIPID As String = "-1"
        Dim pos(6) As Integer                   ' Positionsmarker
        ' Positionsmarker
        Dim i As Integer                   ' Laufvariable

        Dim Anzahl As Integer = 0
        Dim AnzahlISDN As Integer = 0
        Dim ID As Integer
        Dim PortName() As String = Split("readFon123;readNTHotDialList;readFonControl;readVoipExt;readTam;readFaxMail", ";")
        Dim Section As String
        Dim TelefonString() As String
        Vorwahl = ini.Read(DateiPfad, "Optionen", "TBVorwahl", "")

        'Alten Einstellungen löschen
        ini.Write(DateiPfad, "Telefone", vbNullString, "")
        'MSNs emitteln

        pos(0) = 1
        For i = 0 To 9
            pos(0) = InStr(pos(0), tempstring, "nrs.msn.push('", vbTextCompare) + 14
            If Not pos(0) = 14 Then
                pos(1) = InStr(pos(0), tempstring, "'", vbTextCompare)
                TelNr = Mid(tempstring, pos(0), pos(1) - pos(0))
                If Not TelNr = "" Then
                    If Left(TelNr, Len(Vorwahl)) = Vorwahl Then TelNr = Mid(TelNr, Len(Vorwahl) + 1)
                    ini.Write(DateiPfad, "Telefone", "MSN" & CStr(i), TelNr)
                    Debug.Print(TelNr)
                End If
            End If
        Next
        '    'Internetnummern ermitteln
        For i = 0 To 19
            pos(0) = InStr(pos(0), tempstring, "nrs.sip.push('", vbTextCompare) + 14
            If Not pos(0) = 14 Then
                pos(1) = InStr(pos(0), tempstring, "'", vbTextCompare)
                TelNr = Mid(tempstring, pos(0), pos(1) - pos(0))
                If Not TelNr = "" Then
                    If Left(TelNr, Len(Vorwahl)) = Vorwahl Then TelNr = Mid(TelNr, Len(Vorwahl) + 1)
                    ini.Write(DateiPfad, "Telefone", "SIP" & CStr(i), TelNr)
                    Debug.Print(TelNr)
                    SIPID = CStr(i)
                End If
            End If
        Next
        ini.Write(DateiPfad, "Telefone", "SIPID", SIPID)
        Debug.Print(SIPID)
        'Festnetznummer ermitteln
        pos(0) = InStr(1, tempstring, "telcfg:settings/MSN/POTS", vbTextCompare)
        pos(1) = InStr(pos(0), tempstring, "value='", vbTextCompare) + 7
        pos(2) = InStr(pos(1), tempstring, "' id", vbTextCompare)
        TelNr = Mid(tempstring, pos(1), pos(2) - pos(1))
        If Left(TelNr, Len(Vorwahl)) = Vorwahl Then TelNr = Mid(TelNr, Len(Vorwahl) + 1)
        Debug.Print(TelNr)
        ini.Write(DateiPfad, "Telefone", "POTS", TelNr)
        'Telefone ermitteln
        pos(0) = 1
        For i = 0 To UBound(PortName)
            pos(0) = InStr(pos(0), tempstring, PortName(i), CompareMethod.Text)
            pos(1) = InStr(pos(0), tempstring, "return list;", CompareMethod.Text) + Len("return list;")
            Section = Mid(tempstring, pos(0), pos(1) - pos(0))
            TelefonString = Split(Section, "});", , CompareMethod.Text)

            For Each Telefon In TelefonString
                If InStr(Telefon, "return list") = 0 And InStr(Telefon, "Isdn-Default") = 0 Then
                    pos(0) = InStr(Telefon, "name: ", CompareMethod.Text) + Len("name: ")
                    pos(1) = InStr(pos(0), Telefon, ",", CompareMethod.Text)
                    TelName = Mid(Telefon, pos(0), pos(1) - pos(0))
                    If TelName = "fonName" Then
                        pos(0) = InStr(Telefon, "fonName = '", CompareMethod.Text) + Len("fonName = '")
                        pos(1) = InStr(pos(0), Telefon, "'", CompareMethod.Text)
                        TelName = Mid(Telefon, pos(0), pos(1) - pos(0))
                    Else
                        TelName = Replace(TelName, "'", "", , , CompareMethod.Text)
                    End If
                    pos(2) = InStr(pos(1), Telefon, "number: ", CompareMethod.Text) + Len("number: ")
                    pos(3) = InStr(pos(2), Telefon, Chr(10), CompareMethod.Text)
                    TelNr = Replace(Trim(Mid(Telefon, pos(2), pos(3) - pos(2))), "'", "", , , CompareMethod.Text)
                    TelNr = Replace(TelNr, Chr(10), "", , , CompareMethod.Text)
                    If Strings.Left(TelNr, 3) = "SIP" Then TelNr = ini.Read(DateiPfad, "Telefone", TelNr, "")
                    If Not Trim(TelName) = "" And Not Trim(TelNr) = "" Then
                        Select Case i
                            Case 0
                                If Strings.Left(TelNr, Len(Vorwahl)) = Vorwahl Then TelNr = Mid(TelNr, Len(Vorwahl) + 1)
                                pos(4) = InStr(Telefon, "n = parseInt('", CompareMethod.Text) + Len("n = parseInt('")
                                pos(5) = InStr(pos(4), Telefon, "'", CompareMethod.Text)
                                ID = CInt(Mid(Telefon, pos(4), pos(5) - pos(4))) + 1
                                ini.Write(DateiPfad, "Telefone", CStr(ID), TelNr & ";" & TelName)
                                Anzahl += 1
                            Case 1
                                AnzahlISDN += 1
                                pos(2) = InStr(Telefon, "partyNo = '", CompareMethod.Text) + Len("partyNo = '")
                                pos(3) = InStr(pos(2), Telefon, "'", CompareMethod.Text)
                                TelNr = Trim(Mid(Telefon, pos(2), pos(3) - pos(2)))
                                pos(4) = InStr(Telefon, "n = parseInt('", CompareMethod.Text) + Len("n = parseInt('")
                                pos(5) = InStr(pos(4), Telefon, "'", CompareMethod.Text)
                                ID = CInt(Mid(Telefon, pos(4), pos(5) - pos(4)))
                                If Strings.Left(TelNr, Len(Vorwahl)) = Vorwahl Then TelNr = Mid(TelNr, Len(Vorwahl) + 1)
                                ini.Write(DateiPfad, "Telefone", "5" & ID, TelNr & ";" & TelName)
                            Case 2
                                Anzahl += 1
                                pos(2) = InStr(Telefon, "intern: isUnpersonalizedMini ? '' : '**", CompareMethod.Text) + Len("intern: isUnpersonalizedMini ? '' : '**") + 2
                                pos(3) = InStr(pos(2), Telefon, "'", CompareMethod.Text)
                                ID = CInt(Trim(Mid(Telefon, pos(2), pos(3) - pos(2))))
                                pos(2) = InStr(TelNr, ":", CompareMethod.Text) + 2
                                TelNr = Trim(Mid(TelNr, pos(2)))
                                If Strings.Left(TelNr, Len(Vorwahl)) = Vorwahl Then TelNr = Mid(TelNr, Len(Vorwahl) + 1)
                                ini.Write(DateiPfad, "Telefone", "6" & ID, TelNr & ";" & TelName)
                            Case 3
                                pos(4) = InStr(Telefon, "n = parseInt('", CompareMethod.Text) + Len("n = parseInt('")
                                pos(5) = InStr(pos(4), Telefon, "'", CompareMethod.Text)
                                ID = CInt(Mid(Telefon, pos(4), pos(5) - pos(4)))
                                Anzahl += 1
                                ini.Write(DateiPfad, "Telefone", "2" & ID, TelNr & ";" & TelName)
                            Case 4
                                pos(2) = InStr(Telefon, "tamDisplay = '", CompareMethod.Text) + Len("tamDisplay = '")
                                pos(3) = InStr(pos(2), Telefon, "'", CompareMethod.Text)
                                If Mid(Telefon, pos(4), pos(5) - pos(4)) = "1" Then
                                    pos(4) = InStr(Telefon, "n = parseInt('", CompareMethod.Text) + Len("n = parseInt('")
                                    pos(5) = InStr(pos(4), Telefon, "'", CompareMethod.Text)
                                    ID = CInt(Mid(Telefon, pos(4), pos(5) - pos(4)))
                                    ini.Write(DateiPfad, "Telefone", "60" & ID, ";" & TelName)
                                    Anzahl += 1
                                End If
                        End Select
                    End If
                End If
            Next
        Next
        If Not AnzahlISDN = 0 Then ini.Write(DateiPfad, "Telefone", "50", ";ISDN-Basis")
        ini.Write(DateiPfad, "Telefone", "Anzahl", CStr(Anzahl + AnzahlISDN))

    End Sub ' (FritzBoxDaten)
(Nebenstellen-Array (.Net-Code):
Code:
Nebenstellen = Split("1,2,3,51,52,53,54,55,56,57,58,50,600,601,602,603,604,60,61,62,63,64,65,66,67,68,69,20,21,22,23,24,25,26,27,28,29", ",")
Darausfolgende Anpassungen sind an diversen Stellen vorzunehmen (20-29 braucht im Wählfenster nicht eingelesen zu werden).

Wie wurde HttpTransfer angepasst um die Fritz!Box-Seiten im UTF-8 herunterzulanden?

Aber eigentlich will ich keine Trennung des gesamten Projektes. Ich will das mit euch entwickeln. Lösungen in vb.net und im vba können sich ergänzen. Man muss ja nicht alles zweimal. Ich steh gerne für Fragen zur Verfügung. Vielleicht ist es wirklich an der Zeit für den Gang zu SourceForge.net
---
Andere Sache: ich habe gerade eine 3.rc10. Diese hat die obrige Telefonlisstenauswertung und unterstützt nur (SessionID). Inwieweit ist es fatal die alten Firmware-Versionen außen vor zu lassen? An der 7050 z.B. wird diese Version nicht mehr funktionieren, oder?
Gruß Kruemel
 
Am elegantesten wäre es, wenn wir präprozessordefinitionen wie im C hätten, à la
Code:
#if defined _VBA
langer Code, der im Makro funktioniert
#else
kurzer knackiger .NET-Code
#end

Aber ich schätze da gibt es nichts in der Art?
An sonsten sollten alle Teile, die auf dem jeweils anderen Part nicht laufen in Funktionen ausgelagert werden. Je nachdem ob man die VBA oder die VB.NET-Lösung nimmt, arbeitet man dann mit unterschiedlichen Quelltexten - aber nur für die notwendigen/sinnvollen Unterschiede.

So lange für bisher funktionierende Boxen (gibt es da nicht noch andere außer der 7050) kein Firmware-Update verfügbar ist, bin ich persönlich für einen Kompatibilitätsmodus (aber nur, wenn jemand eine diesbezügliche Box zum testen vorweisen kann).

Wieso lässt sich das ganze mit der VBExpress nicht entwickeln?

McShark

PS: Vor der sourceforge-Geschichte sollte der Quelltext wieder zusammengefügt werden (wie gesagt, notwendige/sinnvolle Teile sollten sich in Funktionen auslagern lassen)
 
So einfach ist es auch nicht. Den VBA-Code schmeißt du in den Makroeditor. Mit dem Ergebnis es funktioniert.
.net musst du als Addin kompilieren. Du brauchst sozusagen das Visual Studio.

Die Express funktioniert nicht, weil du Visual Studio Tools für Office (VSTO) brauchst. Sozusagen die Schnittstelle zu Office. Die Express hat die meines Wissens nicht.
 
Mahlzeit zusammen!
Kurz ne' Frage @all: gibt es denn jetzt noch eine Makro-Version mit implementierter Session-ID?
Wenn ja, könnte die jemand Posten?
Ich würde auch die Makro-Version bevorzugen, da man nichts weiter installieren muss!

MfG
aNother
 
Hallo,

Hier nur mal ein kleines Beispiel meines Tests unter Word als VBA Makro:

FFSP_FritzBoxDial
FFSP_FritzBoxDialHangup

Code:
'
Function FFSP_FritzBoxDial(sHost As String, sPassword As String, sDialPort As String, sDial As String) As Long ' 03.08.2009
' 03.08.2009
'
 Dim nRet As Long, nRet1 As Long
 Dim sRet As String
 Dim sTmpHost As String, sTmpPW As String
 Dim sMode As String, sLink As String, sFormdata As String
' Dim Iswriteaccess As String, sChallenge As String, sResponse As String
 Static sSID As String
'
 FFSP_FritzBoxDial = 0
'
 If Trim$(sHost) <> "" Then
'
  sTmpHost = Trim$(sHost)
'
'  If IsIpAdresseOk(sTmpHost) = 1 Then
'
   If Trim$(sPassword) <> "" Then
'
    sTmpPW = Trim$(sPassword)
'
    IsFFSP_FritzBoxDialPortOK (sDialPort) ' 04.08.2009
'
    If sRetainAny(sDialPort, "0123456789") = "" Then sDialPort = "1"
'
     If sRetainAny(sDial, "0123456789*#") <> "" Then
'
'      nRet = FFSP_Login_Sid(sTmpHost, sTmpPW, Iswriteaccess, sChallenge, sResponse, sSID)
      nRet = FFSP_Login_Sid(sTmpHost, sTmpPW, sSID)
'
      If nRet = 1 Then
'
       sMode = "POST "
       sLink = "http://" + sTmpHost + "/cgi-bin/webcm"
'
       If Len(sSID) > 0 Then
        sFormdata = "getpage=../html/de/menus/menu2.html&telcfg:settings/UseClickToDial=1&telcfg:settings/DialPort=" + sRetainAny(sDialPort, "0123456789") + "&telcfg:command/Dial=" + sRetainAny(sDial, "0123456789*#") + "&sid=" + sSID
       Else
        sFormdata = "getpage=../html/de/menus/menu2.html&telcfg:settings/DialPort=" + sRetainAny(sDialPort, "0123456789") + "&telcfg:command/Dial=" + sRetainAny(sDial, "0123456789*#") + "&sid=" + sSID
       End If
'
       sRet = HTTPTransferRT(sMode, sLink, sFormdata)
'
       nRet1 = FFSP_Logout_Sid(sTmpHost, sSID)
'
       If (nRet = 1 And nRet1 = 1) Or (nRet = 1 And nRet1 = 2) Then
        FFSP_FritzBoxDial = 1
       Else
        FFSP_FritzBoxDial = nRet1
       End If
'
      Else
       FFSP_FritzBoxDial = nRet
      End If
'
     Else
      FFSP_FritzBoxDial = 3 ' sDial = ""
     End If
'
   End If
'
'  End If
'
 End If
'
End Function
'
'
Function FFSP_FritzBoxDialHangup(sHost As String, sPassword As String, sDialPort As String) As Long ' 03.08.2009
' 03.08.2009
'
 Dim nRet As Long, nRet1 As Long
 Dim sRet As String
 Dim sTmpHost As String, sTmpPW As String
 Dim sMode As String, sLink As String, sFormdata As String
' Dim Iswriteaccess As String, sChallenge As String, sResponse As String
 Static sSID As String
'
 FFSP_FritzBoxDialHangup = 0
'
 If Trim$(sHost) <> "" Then
'
  sTmpHost = Trim$(sHost)
'
'  If IsIpAdresseOk(sTmpHost) = 1 Then
'
   If Trim$(sPassword) <> "" Then
'
    sTmpPW = Trim$(sPassword)
'
    IsFFSP_FritzBoxDialPortOK (sDialPort) ' 04.08.2009
'
    If sRetainAny(sDialPort, "0123456789") = "" Then sDialPort = "1"
'
'     nRet = FFSP_Login_Sid(sTmpHost, sTmpPW, Iswriteaccess, sChallenge, sResponse, sSID)
     nRet = FFSP_Login_Sid(sTmpHost, sTmpPW, sSID)
'
     If nRet = 1 Then
'
      sMode = "POST "
      sLink = "http://" + sTmpHost + "/cgi-bin/webcm"
      sFormdata = "getpage=../html/de/menus/menu2.html&telcfg:settings/UseClickToDial=1&telcfg:settings/DialPort=" + sRetainAny(sDialPort, "0123456789") + "&telcfg:command/Hangup&sid=" + sSID
'
      sRet = HTTPTransferRT(sMode, sLink, sFormdata)
'
      nRet1 = FFSP_Logout_Sid(sTmpHost, sSID)
'
      If (nRet = 1 And nRet1 = 1) Or (nRet = 1 And nRet1 = 2) Then
       FFSP_FritzBoxDialHangup = 1
      Else
       FFSP_FritzBoxDialHangup = nRet1
      End If
'
     Else
      FFSP_FritzBoxDialHangup = nRet
     End If
'
   End If
'
'  End If
'
 End If
'
End Function
'
'
Private Sub FB_Anrufliste_Click()
 Dim sHost As String, sPassword As String, sSID As String
 Dim sMode As String, sLink As String, sFormdata As String
 Dim sRetHTTPTransferText As String
'
 If TextBox2.Value <> "" Then
  TextBox4.Value = TextBox2.Value
 Else
  TextBox4.Value = "1111"
 End If
 sHost = "192.168.2.2"
 sPassword = TextBox4.Value
 TextBox5.Value = FFSP_Login_Sid(sHost, sPassword, sSID)
 If TextBox5.Value = "1" Then
  sMode = "POST "
  sLink = "http://" + sHost + "/cgi-bin/webcm"
  sFormdata = "getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=fon&var:pagename=foncalls&sid=" + sSID ' FRITZ!Box_Anrufliste.csv FRITZ!Box
  sRetHTTPTransferText = HTTPTransferRT(sMode, sLink, sFormdata)
  If sRetHTTPTransferText = "" Then
   sFormdata = "getpage=../html/hcti_status_telanrl.htm" ' anrliste.csv Speedport
   sRetHTTPTransferText = HTTPTransferRT(sMode, sLink, sFormdata)
   sFormdata = "" + "getpage=../html/anrliste.csv" ' anrliste.csv Speedport
  Else
   sFormdata = "" + "&sid=" + sSID + "&getpage=../html/de/FRITZ!Box_Anrufliste.csv" ' FRITZ!Box_Anrufliste.csv FRITZ!Box
  End If
'
  TextBox7.Value = HTTPTransferRT(sMode, sLink, sFormdata)
 End If
End Sub
'
' sHost und sPassword muss man nur Anpassen.
'
'
Function HTTPTransferRT(sMode As String, sLink As String, sFormdata As String) As String
' Link: Link zur Webpage
' Mode "Get" oder "Post"
' Microsoft WinHTTP Services, version 5.1
'
 Dim nV1 As Long, nV2 As Long, nV3 As Long
 Dim sV1 As String, sV2 As String, sV3 As String
 Dim nL1 As Long, nL2 As Long
'
 Dim objXMLHTTP As New WinHttp.WinHttpRequest
' Dim objXMLHTTP As New MSXML2.XMLHTTP40
'
 sV1 = sMode ' "GET " oder "POST "
 sV2 = sLink ' "http://192.168.2.1/html/top_start_passwort.htm"
 nV3 = 0
'
 objXMLHTTP.Open sV1, sV2, nV3
'
 sV1 = "Content-Type"
 sV2 = "application/x-www-form-urlencoded"
 objXMLHTTP.setRequestHeader sV1, sV2
'
 sV1 = sFormdata
 objXMLHTTP.SEND sV1
 '
' nL1 = objXMLHTTP.readyState ' "Msxml2.XMLHTTP.4.0"
 nL2 = objXMLHTTP.Status
'
' If nL1 = 4 And nL2 = 200 Then ' "Msxml2.XMLHTTP.4.0"
' If nL1 = 0 And nL2 = 200 Then ' "WinHttp.WinHttpRequest.5.1"
 If nL1 = 0 And nL2 = 200 Then
'
  sV1 = objXMLHTTP.responseText
  HTTPTransferRT = sV1
'
 End If
'
End Function
'

Gruß Erwin
 
Zuletzt bearbeitet:
... mich auch interessieren...

Hallo,

Kannst du das mal genauer sagen was du damit meinst :confused:

Das mit meinem Test ist nur entstanden, weil ein Bekannter
unter Microsoft Access eine Wahlfunktion wollte,
er wollte nur die Nummer wählen können und sonst nichts,
IP, Password, DialPort, und Amt(*111#) werden fest vorgegeben,
somit reichen da die zwei Funktionen:
FFSP_FritzBoxDial
FFSP_FritzBoxDialHangup
völlig aus.

Gruß Erwin ;)
 
Sorry, falsch replied. Die Antwort galt aNothers letzem Beitrag...
 
Status
Für weitere Antworten geschlossen.
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.