Autor Thema: C-Api Workaround von EditDeselectAll  (Gelesen 2316 mal)

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
C-Api Workaround von EditDeselectAll
« am: 21.04.04 - 15:48:16 »
Hi,
Ich suche eine Möglichkeit die selektierten Dokumente in einer Ansicht am Ende meines Scriptagents wieder zu deselektieren.
DeselectAll gibts leider nur im uidoc.
Ich dachte mir: dann ruf halt ein 2ten Agent auf, der @Command([EditDeselectAll]) ausführt. Aber das Funktioniert 'in diesem Kontext' nicht.

Auf der Suche nach einer Lösung habe ich folgendes gefunden:
Declare Sub keybd_event Lib "user32.dll" (Byval bVk As Integer, Byval bScan As Integer, Byval dwFlags As Integer,Byval dwExtraInfo As Integer)

keybd_event 18,0,0,0 ' Alt key down
keybd_event 69,0,0,0 ' E key down
keybd_event 69,0,2,0 ' E key up
keybd_event 18,0,2,0 ' Alt key up
keybd_event 68,0,0,0 ' D key down
keybd_event 68,0,2,0 ' D key up

Ich bin mir zwar nicht sicher, ob das mein mein Problem lösen kann, aber es schaut nicht so schlecht aus.
Beim DeutschenClient braucht man aber um die Auswahl aufzuheben Alt+B H und nicht Alt+E D.
Jetzt weiß ich aber nicht wie ich an die Zahlenkombination von B und H komme.
Wäre fein, wenn mir ein CAPI-Mensch weiterhelfen könnte.
Natürlich wäre ich für andere Anregungen auch dankbar.

lg
-rar
†090620141300

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:C-Api Workaround von EditDeselectAll
« Antwort #2 am: 21.04.04 - 15:51:32 »
Ist das im gleichen Zusammenhang wie Dein vorheriges Problem mit Actions? Wenn ja, geht es recht einfach: in der Action rufst Du zuerst per @Formula oder per einfache Aktion den Agenten auf und danach führst Du EditDeselectAll aus. Das Senden von Key-Events via Win-API ist ziemlich heikel - nicht sprachunabhängig, auch nicht kontextunabhängig.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:C-Api Workaround von EditDeselectAll
« Antwort #3 am: 21.04.04 - 16:07:41 »
Stimme Jens voll zu: Finger weg von keybd_event ! Das ist äusserst unsauber.
Zumal Jens ja gezeigt hat, dass viel eleganter und sicherer geht ;-)

Bernhard

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re:C-Api Workaround von EditDeselectAll
« Antwort #4 am: 21.04.04 - 16:15:20 »
Hängt voll damit zusammen.
Ich habe 2 Dokumente gewählt und laß den Agent laufen. Der Agent ändert ein Status und durch die Änderung fliegen die Dokumente aus Ansicht.
Wenn ich danach ein Dok auswähle steht in der Statusleiste, daß 3 Dokumente ausgewählt sind.
Wenn ich dann nach dem ersten Agent ein Agent mit @Command([EditDeselectAll]) aufruf, kommt erst die Meldung
Notes Error: Im Hintergrund ausgeführter oder eingebetteter Agent verwendet ein nicht unterstützten Auslöser und Suchtyp

und dann kommt:
Um diesen Agent auszuwählen, muß wenigstens ein Dokument ausgewählt sein

Kann ich irgendwas hin machen, wenn ich die 6 Key-Events aufrufe?

*edit
Und dann hängt sich die DB auf. Hab ich noch nie geehen. Db reagiert nicht mehr. Man kann sie nur noch schließen.
« Letzte Änderung: 21.04.04 - 16:19:09 von rar »
†090620141300

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:C-Api Workaround von EditDeselectAll
« Antwort #5 am: 21.04.04 - 16:17:43 »
Das ist es ja gerade, ist nicht abschätzbar, was passiert, wenn die Umgebung ändert .... aber warum probierst Du meinen Vorschlag nicht? Kein zweiter Agent, direkt in der Aktion, welche auch den vorhergehenden Arbeitsagenten aufruft, den EditDeselectAll aufrufen.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re:C-Api Workaround von EditDeselectAll
« Antwort #6 am: 21.04.04 - 16:37:45 »
Problem gelöst.  :D
Ich hatte den ersten Agent mit einer einfachen Aktion aufgerufen.
Danach war das Dokument, das schon weg ist noch immer ausgewählt.
Jetzt hab ich das in ToolsRunMacro geändert, um danach den DeselectAll aufzurufen. Beim testen bin ich dann draufgekommen, daß die Dokumente bereits nach dem ToolsRunMacro nicht mehr markiert sind. So wie es eigentlich sein sollte.
Also ein Bug bei der Einfachen Aktion.

Und was lerne ich daraus?
Nicht so faul sein und ab jetzt die Einfachen Aktionen ignorieren.

Vielen, vielen Dank euch allen.
Jens, du hast ein Bier gut.

lG
-dani
†090620141300

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:C-Api Workaround von EditDeselectAll
« Antwort #7 am: 21.04.04 - 16:41:35 »
Wow, ich hol mir das gelegentlich ab :)

Fein, dass es funktioniert.
« Letzte Änderung: 21.04.04 - 16:41:54 von Semeaphoros »
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:C-Api Workaround von EditDeselectAll
« Antwort #8 am: 21.04.04 - 16:50:27 »
Zitat
Nicht so faul sein und ab jetzt die Einfachen Aktionen ignorieren.

Genau so ! Das Zeug ist für ernsthaftere Aufgaben völlig ungeeignet. Aber darum heisst es ja auch "einfache Aktionen"  ;)

@Jens: Wenn dani die Flasche Bier ausgibt, sag' Bescheid - Andreas und Ulrich und Matthias und Martin und Anton und Thomas (mal sehen, wer noch) kommen dann mit und helfen Dir  ;D

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:C-Api Workaround von EditDeselectAll
« Antwort #9 am: 21.04.04 - 16:52:32 »
Entwicklercamp Version 4.1  ;D
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz