donnerkai
Goto Top

Beim Öffnen einer bestimmten Datei Aktion durchführen

Hallo,

vorweg gesagt bin ich in VB nicht fit. Ich möchte deshalb die generelle Frage stellen ob folgende Funktion umzusetzen ist.

Ich habe ein PDF Dokument und möchte es gerne erreichen, dass wenn ich dieses Dokument öffne, automatisch ein VB Skript abläuft.
Ist das möglich und wenn ja wie?

Vielen Dank

Content-Key: 177894

Url: https://administrator.de/contentid/177894

Printed on: April 24, 2024 at 00:04 o'clock

Member: manuel-r
manuel-r Dec 19, 2011 at 14:45:39 (UTC)
Goto Top
Muss das unbedingt so passieren, dass du die Datei doppelklickst und dann das Script abläuft?
Du könntest nämlich einfach die Datei per drag&drop auf das Script ziehen. Pfad und Dateiname werden dem Script dann als Argument übergeben. Da kommst du ganz einfach mit wscript.arguments() dran. Damit kann dein Script dann loslegen.
Member: carp-catcher
carp-catcher Dec 19, 2011 at 21:53:32 (UTC)
Goto Top
dein Programm müsste checken welche Fenster alle geöffnet sind (es müsste natürlich vorher im Hintergrund laufen)

das Fenster was gerade geöffnet ist kriegste so:

Private Declare Function GetForegroundWindow Lib "user32" () As IntPtr
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As IntPtr, ByVal lpString As String, ByVal cch As Integer) As Integer
Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As IntPtr) As Integer

Private Function GetTextFromWindow(ByVal hwnd As IntPtr) As String

Dim strBuffer As String
Dim intLen As Integer

intLen = GetWindowTextLength(hwnd) + 1
strBuffer = Space$(intLen)
GetWindowText(hwnd, strBuffer, intLen)
Return Replace(strBuffer, Chr(0), "")
End Function


dann nimmst nen timer oder ne schleife und setzt das da rein
If GetTextFromWindow(GetForegroundWindow) = "der name des Fensters" Then
'hier kommt der aufruf deines Programms rein ...nimm da am besten den shell befehl
End If


Code net getestet

Ich hoffe das wird dir helfen

greez
Member: donnerkai
donnerkai Dec 20, 2011 at 06:14:24 (UTC)
Goto Top
ja, müsste so passieren.
Ich möchte Daten einer XML Schnittstelle in ein PDF importieren.
Dafür müssten die Daten aber aus der Zwischenablage in eine Datei geschrieben werden.

Benutzen sollten das meine User dann. Diese sollten nicht erst die Daten manuell in eine Datei schreiben und speichern müssen.
Das hätte ich gerne halt automatisch beim Öffnen des PDF.
Member: manuel-r
manuel-r Dec 20, 2011 at 06:55:52 (UTC)
Goto Top
Das hätte ich gerne halt automatisch beim Öffnen des PDF
Naja, das ginge auch mit dem drag&drop...
Wenn du es anders willst müsstest du die Doppelklick-Aktion mit dem VB-Script verknüpfen als Standardaktion. Soweit kein Thema.
Danach muss dein Script bei jedem Aufruf zuerst prüfen (anhand Pfad, Name, Inhalt, what ever) ob es sich um eine Datei handelt die mit dem Script verarbeitet werden soll. Falls das nicht der Fall ist muss die Datei dann ja wohl mit dem passenden PDF-Viewer geöffnet werden. Ansonsten weiter im Script.
Macht die Sache nicht unbedingt einfacher - ist aber machbar.