Outlook Wählhilfe (Makro) ohne Box zu modifizieren

Status
Für weitere Antworten geschlossen.
Hallo, das Formular hat sich geändert. Siehe Anhang.
Der Code muss in den With-Block rein.
Naja ich denke es wäre einfacher, wenn man nur ein Bild anheftet, wenn es auch vorhanden ist.
Das Refreshproblem kannst du lösen, indem du das "OhneBild"-Bild reinlädst.
Also
Wenn Kontaktbild vorhanden, dann das hineinladen, ansonnsten das "OhneBild"-Bild reinladen.

Kruemel
 
[Edit frank_m24: Sinnfreies Fullquote vom Beitrag direkt darüber gelöscht. Lies noch mal die Forumregeln.]

also mein formular ist bis auf meine pfadänderungen das gleiche....bzgl. WITH-block steh ich immernoch auf dem Schlauch, wenn ich's zwischen

With GetNamespace("MAPI").GetItemFromID(KontaktID)
formAnrMon.AnrName.Caption = .FullName
formAnrMon.Firma.Caption = .CompanyName
noFaTop = (.CompanyName = "") * -6
noFaSize = (Not .CompanyName = "") * -2
End With

einbaue geht's nicht. Er wirft im FritzBox-Modul mit Verweis auf den Block Private Sub AnrMonEinblenden() eine Meldung aus und Outlook wird geschlossen (markiert dabei i = 0)
 
Wenn Kontaktbild vorhanden, dann das hineinladen, ansonnsten das "OhneBild"-Bild reinladen.

Dann müsste ich aber das Bild von irgendwoher holen. Momentan verwende ich ein zweites Image Objekt. Dieses fülle ich dann mit:
Else: formAnrMon.Kontaktbild.Picture = formAnrMon.Kontaktbild_temp.Picture

Dabei kommt dann mein Refreshproblem. Dieses habe ich ziemlich dilettantisch gelöst.

formAnrMon.Kontaktbild.Visible = False
formAnrMon.Kontaktbild.Visible = True

Hey, nicht lachen mir ist nichts besseres eingefallen!
 
Hallo Kruemelino.

Also ich gebe erst einmal vorläufig auf, nach diesen verflixten Dialports für's DECT zu suchen. Ich wüsste nicht was ich jetzt noch tun sollte, Quelltext = Fehlanzeige und das manuelle durchprobieren auch Fehlanzeige. Antwort von AVM ist bisher auch noch nicht angekommen... :( . Hat sich bei dir oder den anderen hier dazu etwas ergeben?
 
mir fehlte ja dann doch noch was im formAnrMon

ich hab's jetzt mal so gelöst:

im formAnrMon ist nun zusätzlich:

Private Sub Kontaktbild_Click()

End Sub

und das dann als Kontaktbild Image im Fenster drin neben den Buttons (siehe Anhang)

dafür habe ich das fenster zunächst vergrößert, die Kontaktbildanzeige mit 48x48 (feste größe) da reingelegt und dann das fenster wieder auf originalgröße 267,75 verkleinert.

Den code im FritzBox-Modul habe ich etwas geändert:

With GetNamespace("MAPI").GetItemFromID(KontaktID)
formAnrMon.AnrName.Caption = .FullName
formAnrMon.Firma.Caption = .CompanyName
noFaTop = (.CompanyName = "") * -6
noFaSize = (Not .CompanyName = "") * -2
If Not .Attachments.Count = 0 Then
i = 0
Do
i = i + 1
Loop Until .Attachments(i).DisplayName = "ContactPicture.jpg" Or i = .Attachments.Count
If .Attachments(i).DisplayName = "ContactPicture.jpg" Then
If Not formAnrMon.Width = 320.25 Then 'Vergrößern, verschieben
formAnrMon.Width = formAnrMon.Width + 52.5
formAnrMon.Left = formAnrMon.Left - 52.5
End If
.Attachments(i).SaveAsFile (Environ("TEMP") & "\temp.jpg")
formAnrMon.Kontaktbild.Enabled = True
formAnrMon.Kontaktbild.Picture = LoadPicture(Environ("TEMP") & "\temp.jpg")
End If
End If
End With

da ich die buttons nicht verschieben wollte, sondern nur das bild zusätzlich einhängen wollte. Bis dahin funktioniert es und ich bin froh, das selbst geschnallt zu haben (php ist eher mein fach :) ).


Ich hatte es aber bis hierhin so verstanden, das, wenn der nächste anruft und z.B. kein bild bzw. Kontakt dafür vorhanden ist, das fenster wieder auf originalgröße verkleinert erscheint und somit mein bild nicht auftaucht. leider ist das nicht der fall und mit dem nä. anrufer sehe ich zugleich mein bild....habe ich was falsch gemacht oder fehlt da noch etwas, damit das fenster wieder verkleinert wird?

Edit: Wenn ich länger warte mit dem 2.ten Testanruf scheint es sich wieder von selbst zu verkleinern. Nur wenn ich sofort danach anrufe habe ich das bild vom anruf davor mit drin...gibts da ne zeitschleife?

Edit 2: hm, das muss an was anderem liegen, im Normalfall bleibt die geänderte Größe fürs bild drin und somit das bild des letzten Anrufers sichtbar...leider. Wenn das noch änderbar ist, wäre es perfekt :)
 

Anhänge

  • monitor.bmp
    200.3 KB · Aufrufe: 23
Zuletzt bearbeitet:
Hallo,

Ich habe jetzt die Version von schmidtedv eingebaut. (Die Version, in der das Kontaktbild rechts neben den Buttons sind)

Wenn der Anrufmonitor eingeblendet wird wird jetzt automatisch verkleinert;
Code:
If Not formAnrMon.Width = 267.75 Then
Dein Problem mit dem bestehenbleiben, des Kontaktbildes sollte damit Vergangenheit sein.

In der neuen Version wird es auch möglich sein sich auszusuchen, ob das Kontaktbild angezeigt werden soll (Einstellungen).

Bommel: Dann bleibt es halt erstmal so. Es ist sehr schade, aber irgendwie muss es gehen. Es gibt ja auch die Wählhilfe der Fritzbox, auf deren Oberfläche. Nach meinen Informationen funktionieren da die Dect-geräte.

ich schau mir jetzt Michael-Ds Journal-Problem an:

Code:
If pos1 > 1 Then AnrZeit = Left(aktZeile, pos1 - 1) & ":00" Else AnrZeit = ""
eändert in:
If pos1 > 1 Then AnrZeit = Left(aktZeile, pos1 - 1) & ":00" Else AnrZeit = Startzeit
Das ist eine sehr gute Lösung. Ich habe nocheinmal genau nachgeschaut und nehme meine Behauptung aus #598 zurück. Das führt nicht zu einer falschen Zeit.

Die Ursache des Problemes:
In deiner csv sind zwei Leerzeilen am Ende (Hex-Editor 0D 0A 0D 0A) am Ende. Die AnrListeLesen wollte diese Leerzeielen auswerten. Dass das nicht geht ist klar. Der Fehler entstand allerdings, als AnrListeLesen versuchte "" mit einer Uhrzeit zu vergleichen.
Man könnte den fehler auch anders umgehen, aber deine Lösung genügt vollkommen. Danke!

Kruemel
 
Zuletzt bearbeitet:
Ist es nicht am saubersten den Import von leeren Zeilen komplett zu überspringen?
@Kruemel: Ist meine PN zu Website & Co. bei dir angekommen?
PS: Stelle mich wieder gerne als Beta-Tester für die geänderte Version mit den Kontaktbildern zur Verfügung.
 
demschliesse ich mich an, da ich wieder nicht weiß, wo ich die zeile von dir einbaue :) bisher läuft ja alles recht nett...und vergleichen tu ich einfach immer mit winmerge

btw. du hast an anderer stelle mal systemvariablen benutzt, könnte man da nicht generell dem Ganzen einen Pfad in den anwendungsdateien des Benutzers zukommen lassen? Manuelle Pfadänderungen in den Optionen wären dann auch eigentlich unnötig...
 
Hallo Krümel,
vielen Dank für die Offizielle Einarbeitung des Kontaktbildes!
Einer der features die ich mir schon lange gewünscht hatte! :)
Wann können wir das Update denn herunterladen?

have fun
 
TCP Fehler

Hallo Leute,

hab folgenden Fehler, wenn ich Outlook starte:

TCP/IP Fehler
Error in OpenConnection::connect - Case unknown in TCPIP::SetLastErrorCode = 0

Der gleiche Fehler kommt hoch, wenn ich auf den Anrufmonitor-Button drücke, daher denke ich dass das damit zu tun hat.
Meine Konfig: OL2k3, FritzboxDingsbums vom 22.01.08, gehe über WLan (FBF7141, rein als WLAN AP eingesetzt) rein, aber die Fritzbox die ich anspreche ist eine 7170.
Liegt es evtl. am AP? Ich kann nicht direkt an die FBF, die hängt im Keller und da hab ich keinen Empfang vom 1. Stock...

Danke Euch!

Mike
 
ist bei dir und der entsprechnenden FB der FritBox-Anrufmonitor aktiv??
Am Telefon welches an der betreffenden Box hängt mal #96*5* eingeben und wählen lassen.
 
[..]btw. du hast an anderer stelle mal systemvariablen benutzt, könnte man da nicht generell dem Ganzen einen Pfad in den anwendungsdateien des Benutzers zukommen lassen? Manuelle Pfadänderungen in den Optionen wären dann auch eigentlich unnötig...
1. Die Pfadangaben je nach Bedarf ändern zu können ist IMMER sinnvoll.
2. Die Einstellungen.ini in den Anwendungspfad über die Systremvariablen zu packen wäre sehr sinnnvoll - das fritzboxdingsbums als Makrosammlung muss eh je Benutzer einmal eingerichtet werden.
 
2. Die Einstellungen.ini in den Anwendungspfad über die Systremvariablen zu packen wäre sehr sinnnvoll
Ich hab es erstmal dahin geändert:
Code:
Environ("USERPROFILE") & "\FritzBox\Einstellungen.ini
---
Code:
Environ("USERPROFILE")
liefert
Code:
C:\Dokumente und Einstellungen\<username>

Kruemel
 
Zuletzt bearbeitet:
Hallo Kruemelino,

ich habe direkt mal Deine neue Version ausprobiert, und (leider) einen Fehler festgestellt. Wenn ich die Einstellungen im Standard speichern möchte, sprich in meinem Profil, so erstellt das Skript scheinbar nicht den Ordner FritzBox... Ich hatte vorher die version 2.33 drauf. Um alle Funktionen zu haben, habe ich auf zurücksetzen gedrückt und im Textfeld wurde der Pfad auch angezeigt. Leider waren beim nächsten Outlookneustart alle Einstellungen weg, sodass ich bemerkte, dass der Ordner FritzBox nicht vorhanden war...
Scheinbar erstellt das Skript diesen Ordner nicht, oder habe ich was falsch gemacht???

Wobei ich würde als Pfad eher c:\Dokumente und Einstellungen\<user>\Lokale Einstellungen\Anwenundungsdaten\FritzBox nehmen, dann wäre man nach Microsoftkonvention auf jeden fall sauberer...(natürlich als Variable abgefragt, damit es unter Vista auch funktioniert...)
Zufinden ist die Variable in der Registry unter:
HKEY_CURRENT_USER\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
In dem Regkey "Local AppData" wäre der genaue Pfad dahin...

Gruß

MarcoMarco
 
Hallo Kruemlino,

hier ist ein Lösungsvorschlag von mir, um den Ordner Fritzbox unter c:\Dokumente...\user\Lokale...\ zuerstellen.

Da Du aber das Skript in seiner Struktur im griff hast möchte ich darin nicht rumpfuschen und überlasse Dir die gewalt darüber wo welcher Teil abgespeichert werden sollte... :)
Code:
Sub Ordner_erstellen()
    On Error GoTo errorhandler
    Dim LAPfad As String
    Dim val As Byte
    LAPfad = LAPfadauslesen("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Local AppData")
    LAPfad = LAPfad & "\FritzBox"
    val = DirExists(LAPfad)
    If val = False Then MkDir LAPfad
    Exit Sub
errorhandler:
    MsgBox "Es ist ein Fehler beim Erstellen des Ordners """ & LAPfad & """ aufgetreten.", vbCritical, "Fehler"
End Sub

Function LAPfadauslesen(ByVal RegKey As String)
    Dim wsh As Object
    Dim KeyValue As String
    Dim Pos1 As Byte

    Set wsh = CreateObject("WScript.Shell")
    KeyValue = wsh.regread(RegKey)
    Pos1 = InStr(2, KeyValue, "%")
    LAPfadauslesen = Environ("USERPROFILE") & Right(KeyValue, Len(KeyValue) - Pos1)

End Function

Public Function DirExists(ByRef sPath As String) As Boolean

    On Error Resume Next
    Dim enmFileAttribute As VBA.VbFileAttribute
    
    enmFileAttribute = VBA.GetAttr(sPath)
    DirExists = CBool((Err.Number = 0) And (enmFileAttribute And VBA.VbFileAttribute.vbDirectory) = VBA.VbFileAttribute.vbDirectory)
End Function

Gruß

MarcoMarco
 
Hallo marcomarco,

Okay ich hab nochmal nachgeschaut:
Fakten:
  • Das Problem besteht jetzt auch schon.
  • WritePrivateProfileString und WritePrivateProfileSection können keine Ordner erstellen.
  • Sie können aber Dateien erstellen.
Ich dachte wir nehmen Environ("APPDATA"). Das ist am einfachsten!
Environ("APPDATA") schrieb:
C:\Dokumente und Einstellungen\<UserName>\Anwendungsdaten
Man könnte auch Environ("USERPROFILE") & "\Lokale Einstellungen\Anwendungsdaten" verwenden
Environ("USERPROFILE") & "\Lokale Einstellungen\Anwendungsdaten" schrieb:
C:\Dokumente und Einstellungen\<UserName>\Lokale Einstellungen\Anwendungsdaten
Das hat nur den Nachteil, dass dann nur die deutsche Win-Version funktioniert. Also müsste man dann erst die Registry auswerten so wie du das machst. ANsonnsten ist das erstellen des Ordners relativ einfach:

Code:
Sub Ordner_erstellen()
    On Error Resume Next
        MkDir Environ("APPDATA") & "\FritzBox"
    On Error GoTo 0
End Sub

ABer ich weiß nich nicht wie ich das einbaue!

*grübel*

Kruemel
 
Klar kann man das ganze auch in Environ("APPDATA") speichern, doch ich persönlich finde, dass es eine Einstellung ist, die genau dem PC verbunden ist und nicht mit dem Userprofil. Ich rate auf jedenfall davon ab konkrete Pfade zu nehmen, da die unter Vista definitiv nicht funktionieren, da wäre es ja "Appdata", bzw. "LocalAppdata". Daher würde ich auf zu einem 100%igen Einsatz von Variablen vorschlagen.
Klar, Deine Lösung bezüglich Ordnererstellung funktioniert auch, doch, versucht das Skript immer einen Ordner zu erstellen, auch wenn er schon da ist und "unterdrückt" die Fehlermeldung nur.
Ich denke, es wäre sinnig, das Ganze mit der Ordnererstellung mit den Button "übernehmen", bzw, OK in der Form_Config zu verknüpfen. Allerdings würde ich das Erstellen der Ordner noch ein wenig ausbauen, denn was wäre wenn jemand auf die Idee kommt, das ganze unter c:\temp\Max\Muster\Mann zu speichern, vorhanden wäre aber nur c:\temp. Dann käme es auf jeden Fall zu einem Error...

Fragen über Fragen... :)

Gruß

MarcoMarco
 
Status
Für weitere Antworten geschlossen.

Zurzeit aktive Besucher

Statistik des Forums

Themen
245,756
Beiträge
2,239,268
Mitglieder
372,957
Neuestes Mitglied
seabass
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.