Screenshots [Erledigt]
Moderator: Moderatoren
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Screenshots [Erledigt]
Hallo,
mein Kunde hat sich ein Kommunikationssystem in seine Software gebaut. Alle Reklamationen, Fragen, etc. sollen darüber abgewickelt werden, es ist eine Rückverfolgung, Temrineinhaltung, etc. da eingebaut. Jetzt fehlt ihm nur noch eines: Screenshots. Es ist grob angedacht das diese in einer dbf gespeichert werden (V-Felder in FOXCDX eigenen sich hervorragend dafür), und dann aus dem Kommunikationssystem per Link o. ä. aufgerufen werden können.
Nur: Wie mache ich das am besten? Wie erstelle ich einen Screenshot, der dann automatisch gespeichert werden kann? Ich habe schon mit Übergabe aus Xbase++ in die Zwischenablage bzw. Auslesen der Zwischenablage gearbeitet, das wäre nicht das Problem. Ich muß nur erstmal einen für den Mitarbeiter frei markierbaren Bereich des Bildschirms in die Zwischenablage rein bekommen.
Hat jemand da eine gute Idee für mich?
Jan
mein Kunde hat sich ein Kommunikationssystem in seine Software gebaut. Alle Reklamationen, Fragen, etc. sollen darüber abgewickelt werden, es ist eine Rückverfolgung, Temrineinhaltung, etc. da eingebaut. Jetzt fehlt ihm nur noch eines: Screenshots. Es ist grob angedacht das diese in einer dbf gespeichert werden (V-Felder in FOXCDX eigenen sich hervorragend dafür), und dann aus dem Kommunikationssystem per Link o. ä. aufgerufen werden können.
Nur: Wie mache ich das am besten? Wie erstelle ich einen Screenshot, der dann automatisch gespeichert werden kann? Ich habe schon mit Übergabe aus Xbase++ in die Zwischenablage bzw. Auslesen der Zwischenablage gearbeitet, das wäre nicht das Problem. Ich muß nur erstmal einen für den Mitarbeiter frei markierbaren Bereich des Bildschirms in die Zwischenablage rein bekommen.
Hat jemand da eine gute Idee für mich?
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12910
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Screnshots
kannst du das genauer definieren ...Jan hat geschrieben:Ich muß nur erstmal einen für den Mitarbeiter frei markierbaren Bereich des Bildschirms in die Zwischenablage rein bekommen.
wenn du z.b. ein Browse meinst wäre das "einfach" ( :rowPos / :colPos )
wenn du eine Static (Groupbox) als Parent hast könnte man alle Childs "erfassen"
wenn das nun völlig frei sein soll müsstest du die Maus auf :LbDown / : LbUp prüfen und die Positionen ermitteln.
das ganze ist wie beim DragDrop , hier ein Beispiel
Code: Alles auswählen
METHOD DDCal:LbDown( aPos )
LOCAL lTT
LOCAL nEvent, mp1, mp2, oXbp
::lDragDrop := .F.
DO WHILE .T.
// Timer simulieren
//
nEvent := APPEVENT( @mp1, @mp2, @oXbp, 20 )
DO CASE
// noch eine Aktion mit der Maus
//
CASE nEvent == xbeM_LbDblClick
::_LbDblClick( aPos )
EXIT
// hier "up"
//
CASE nEvent == xbeM_LbUp
EXIT
// ist dann kein Dragdrop
//
CASE nEvent == xbeM_LbDown
EXIT
// mit verzögerrung !!!
//
CASE nEvent == xbe_None // Timeout 0.500 sec
::lDragDrop := .T.
EXIT
OTHERWISE
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDCASE
ENDDO
IF ::lDragDrop = .T.
IF !::StartDragDrop( aPos )
::LbDown( aPos ) :LbUp( aPos )
ENDIF
ENDIF
RETURN self
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Screnshots
wir nutzen für Hardcopys (komplett oder Bildschirmteile - auch in Dateien) dieses Programm:
http://www.info.hardcopy.de/
Ob man es fernsteuern kann weiß ich nicht, aber für SAP werben sie mit Integration.
http://www.info.hardcopy.de/
Ob man es fernsteuern kann weiß ich nicht, aber für SAP werben sie mit Integration.
Gruß
Hubert
Hubert
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Screnshots
Die PrintScreen-Taste bringt nicht viel (ganzer Bildschirm)? Kann man aber die Alt-PrintScreen-Taste abfangen? (aktuelles Fenster)? Da hast du ja den Printscreen-Inhalt bereits in der Zwischenablage und müsstes dies nur noch selber dann Zwischenspeichern und in das Tabellenfeld ablegen...
Für einen dynamisch gegebenen Bereich brauchst du aber ein Tool, z.B. Snagit oder das von Windows mitgegebene Snipping-Tool. So muss eben der User das Ablegen in die Zwischenablage selber auslösen und dein Programm weiss davon dann nichts...
Für einen dynamisch gegebenen Bereich brauchst du aber ein Tool, z.B. Snagit oder das von Windows mitgegebene Snipping-Tool. So muss eben der User das Ablegen in die Zwischenablage selber auslösen und dein Programm weiss davon dann nichts...
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Screnshots
Wuah, ist das eine katastophale Webseite (past zu SAP)...brandelh hat geschrieben:wir nutzen für Hardcopys (komplett oder Bildschirmteile - auch in Dateien) dieses Programm:
http://www.info.hardcopy.de/
Ob man es fernsteuern kann weiß ich nicht, aber für SAP werben sie mit Integration.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9373
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Screnshots
Dafür gibt es die Beispielfunktion "GraSaveScreen" in der Alaska-Installation. Die Rückgabe ist eine XbpBitmap. Die kann man in allen möglichen Formaten speichern. Alles kein Ding. Schwierig wird eher der "frei wählbare Bereich". Dafür müsste man die Software in einen Capture-Modus umschalten und mit GRA_Funktionen ein bewegliches Rechteck auf den gesamten Desktop malen, das sich mit der Maus ändert, bis irgendeine Taste gedrückt wird. Aber auch kein Ding.
Herzlich,
Tom
Tom
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Screnshots
Danke für eure Tipps. Mein Kunde ist jetzt mit einem erweiterten Gedanken um die Ecke gekommen, der das Ganze einfacher gestaltet/gestalten könnte. Wir verwenden einfach ein Screenshot-Programm, weil man da dann auch gleich farbige Markierungen oder Textkommentare einfügen kann. Das ganze dann in die Zwischenablage setzen, und die kann ich ja locker auslesen.
Mein Problem: Das Programm wird mit DRUCK gestartet. Irgendwie biegen die die Taste um. Damit ich das automatisch steuern kann müßte ich jetzt ein keyboard Chr(drucktaste) oder einen PostAppEvent(drucktaste) starten. Ich finde für beides aber keinen Code, immer nur STRG+DRUCK. Geht das wirklich nicht?
Jan
Mein Problem: Das Programm wird mit DRUCK gestartet. Irgendwie biegen die die Taste um. Damit ich das automatisch steuern kann müßte ich jetzt ein keyboard Chr(drucktaste) oder einen PostAppEvent(drucktaste) starten. Ich finde für beides aber keinen Code, immer nur STRG+DRUCK. Geht das wirklich nicht?
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Screnshots
Die Print-Taste ist Hex 2A (dec=42). Zum Vergleich, Enter ist 0D, also 13. Eventuell kannst du damit eine Variable definieren...
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- AUGE_OHR
- Marvin
- Beiträge: 12910
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Screnshots
Nein es geht "so" nicht. Man nimmt dafür die "virtuellen" Key-CodesJan hat geschrieben:... müßte ich jetzt ein keyboard Chr(drucktaste) oder einen PostAppEvent(drucktaste) starten.
Ich finde für beides aber keinen Code, immer nur STRG+DRUCK. Geht das wirklich nicht?
Code: Alles auswählen
#include "dll.ch"
#define KEYEVENTF_KEYUP 0x02
#define VK_MENU 0x12
#define VK_SNAPSHOT 0x2C
PROC main
wait "Press any key to copy the whole screen"
keybd_event(VK_SNAPSHOT, 1, 0, 0)
wait "Press any key to copy the focused window"
keybd_event(VK_MENU, 0, 0, 0)
keybd_event(VK_SNAPSHOT, 0, 0, 0)
keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0)
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0)
wait
RETURN
DLLFUNCTION keybd_event(mvkey, nscan, flags, xtra) USING STDCALL FROM USER32.DLL
gruss by OHR
Jimmy
Jimmy
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Screenshots [Erledigt]
Hallo Jimmy,
ja, das klappt sauber. Vielen Dank für den Code.
Jan
ja, das klappt sauber. Vielen Dank für den Code.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.