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

Ausgedruckt am: 28.03.2024 um 23:03 Uhr

Mitglied: manuel-r
manuel-r 19.12.2011 um 15:45:39 Uhr
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.
Mitglied: carp-catcher
carp-catcher 19.12.2011 um 22:53:32 Uhr
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
Mitglied: donnerkai
donnerkai 20.12.2011 um 07:14:24 Uhr
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.
Mitglied: manuel-r
manuel-r 20.12.2011 um 07:55:52 Uhr
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.