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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 177894
Url: https://administrator.de/contentid/177894
Ausgedruckt am: 25.11.2024 um 11:11 Uhr
4 Kommentare
Neuester Kommentar
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.
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.
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
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
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.