Laden...

Forenbeiträge von Gremgiz Ingesamt 106 Beiträge

03.03.2009 - 16:43 Uhr

Hmm schade, keine Antwort, dann muss ich die wohl selber posten....

Ein Suche hat folgende wunderbare Seite ausgespuckt, die das ganze sehr gut erklärt

http://www-10.lotus.com/ldd/nd6forum.nsf/DateAllFlatweb/eec5ab3fe7e76515852571250005b618?OpenDocument

ich habe den Code bei mir entsprechend angepasst und es läft auch schon ganz gut. Ein paar Probleme bestehen noch.

Hier erstmal die Übersetzung der Zeilen nach C#

VBA: session=CreateObject("Notes.NotesSession)

In C# sieht das ganze dann so aus:

Type NotesSessionType = Type.GetTypeFromProgID("Notes.NotesSession");
            object NotesSession = Activator.CreateInstance(NotesSessionType);

Danach kann man dann mit InvokeMember auf die Elemete zugreifen und alles machen. Es ist zwar nicht so übersichtlich wie in VBA tut aber wunderbar.

Nun kurz zu meinem Problem:
Ein Aufruf heißt wie folgt:

object[] Mime_Settings = { (Object)false };

            try
            {
                object Mime = NotesSessionType.InvokeMember("ConvertMIME", BindingFlags.SetProperty, null, NotesSession, Mime_Settings);
            }
            catch (TargetInvocationException ex)
            {
                MessageBox.Show(ex.InnerException.Source.ToString());
            }

Leider kommt da immer ne Fehlermeldung 0x8000FFFF E_UNEXPECTED. Kann sich das jemand erklären?

26.02.2009 - 14:52 Uhr

Hallo,

ich möchte aus einer Applikation eine E-Mail in Lotus Notes generieren. Dazu werden innerhalb der Applikation fertige Templates an Notes übergeben und diese dann in Notes vom Benutzer bearbeitet. Das ganze muss daher über die Frontend Klassen (notes32.tlb als COM) geschehen. Die notes32.tlb ist als Verweis eingebunden.

Da die notes32.tlb nur abstrakte Klassen beinhaltet habe ich das ganze wie folgt eingebunden:

Type Notes_session = Type.GetTypeFromProgID("Notes.NotesSession");
NOTESSESSION objNotes =( NOTESSESSION)Activator.CreateInstance(Notes_session);

Leider kommt während der Laufzeit folgender Fehler bei der zweiten Zeile:

Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "lotus.NOTESSESSION" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der IID "{29131401-2EED-1069-BF5D-00DD011186B7}" aufgrund des folgenden Fehlers nicht durchgeführt werden konnte: Schnittstelle nicht unterstützt (Ausnahme von HRESULT: 0x80004002 (E_NOINTERFACE)).

Bei einer Suche im Netz bin ich schon auf einige Hinweise gestoßen, die mir aber nicht weitergeholfen haben. Der Tipp den man überall findet, ist die Methoden aus dem Namspace Notes.xyz zu verwenden. Wenn die notes32.tlb eingebunden habe, habe ich die Methoden aus lotus.xyz. Binde ich die backendklassen (domobj.tlb) ein, habe ich die Domino.xyz Methoden. Wie komme ich an die Notes.xyz Methoden ran? Hat das schon mal jemand erfolgreich hinbekommen?

Vielen Dank

24.05.2007 - 14:36 Uhr

Hallo LordHexa,

vielen Dank erst einmal für diesen Tip. Der hat mir schon ein wenig die Augen geöffnet. Klappt leider noch nicht so wie ich mir das vorstelle. XML und die CONFIG ist absolutes Neuland für mich (C# mittlerweile nicht mehr ganz so)

Das klappt auch soweit. Ich habe nun versucht diesem Namen einen Wert zuzuweisen (sonst macht es ja keinen Sinn). Die Zeilen dazu lauten:

SettingElement test = new SettingElement();
test.Name = "jippi";
test.Value = "2002";

Beim Compilieren motzt er rum, dass ein String nicht implizit in System.Configuration.SettingValueElement konvertiert werden kann. Ich habs dann mit einem Casting (test.Value = (Configuration.SettingValueElement )"2002"😉 versucht, jedoch ohne Erfolg. Wie bekomme ich das noch weg?

Vielen Dank nochmal

22.05.2007 - 16:39 Uhr

Hallo zusammen,

ich möchte eine app.config zur Laufzeit des Programms um Einträge erweitern. Dabei kommt immer die Meldung, dass es nicht geht, da schreibgeschützt. Da es sich um globale Ergänzungen handelt, möchte ich nicht den Weg über die User.config gehen, sondern es direkt in die Config Datei schreiben. Wie kann man das machen?

Kurze Erklärung warum: es handlet sich um ein Programm zur Verwaltung von Daten, die unter anderem Länder und das erste Auftreten eines Ereignisses haben. Was 2009 passiert weiß ich ja nicht, daher will ich es dann über eine Maske einfach editieren können. Die Maske steht, der Code funktioniert, nur speichert tut er nicht 😦

Vielen Dank schonmal
Gruß
Gremgiz

14.07.2006 - 09:49 Uhr

Hallo Talla,

vielen Dank für den Tipp. Hat geholfen. Ich würde sagen: typischer Anfängerfehler (bin halt einer in C#)

Gruß
Gremgiz

14.07.2006 - 09:05 Uhr

Hallo,

in einer Arraylist werden Textboxen gespeichert, die Werte von einer Datenbankabfrage enthalten. Es wurde ein Leave Eventhandler benutzt, um abzutesten, ob die Eingabe gültig ist und wenn ja soll der Datensatz in der DB aktualisiert werden. Das problem ist nur, dass ich zwar den Wert des Textfeldes über den Eventhandler bekomme (sender), aber leider nicht weitere Daten, wie z.B. die Datensatznummer, die im Textfeld als Tag mitgeführt wird.

Daher die Frage: Wie kann ich einen Eventhandler definieren, der mir folgende Sachen mitgibt:

  • Ursprünglichen Wert
  • Neuen Wert
  • Tag des ereigniserzeugenden Textfeldes.

Hier noch die Zeile mit dem Aufruf:

((TextBox)tb_WertMuenz[index]).Leave += new EventHandler(Wert_Changed);

Ich hatte erst versucht über den Handler TextCHanged zu gehen, der erlaubt mir aber nur die Eingabe eines einzelnen Zeichens, warum auch immer.

Gruß
Gremgiz