vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: IE per Shell aufrufen und IE Anzeige im gleichen Fenster aktualisieren 
Autor: effeff
Datum: 26.08.09 11:14

OK; Meine Frage wäre gewesen, ob es das WebBrowser-Steuerelement nicht auch tut, aber offensichtlich bist du auf den IE festgelegt.

Ab dem IE7 sieht mir das so aus, als würde erst einmal eine Instanz des IE gestartet, die dann eine nächste Instanz startet, welche die von dir gewünschte Datei anzeigt. Warum unter Vista die erste Intanz dann auch noch angezeigt wird, kann ich dir momentan nicht sagen. Hinter dem IE7 steht auf jeden Fall eine ganz andere Technik als hinter dem IE6. Einen Prozess des IE zu starten und dabei die PID ausgeben zu lassen, führt wohl aus o. g. Gründen nur beim IE6 zum Erfolg. Beispiel dazu:

Option Explicit
Dim PID As Long
 
Private Sub Command1_Click()
 
PID = Shell("C:\Programme\Internet Explorer\iexplore.exe", vbNormalFocus)
 
MsgBox (PID)
 
End Sub
Folgende Vorgehensweise würde dazu führen, dass zumindestens im IE7 und IE8 unter XP beim ersten Start eine Instanz geöffnet würde und danach bei jedem Ausführen in derselben Instanz ein neuer Tab geöffnet würde:

Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
  ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
  ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As _
  Long) As Long
Const SW_SHOWNORMAL = 1
 
Private Sub Command1_Click()
 
ShellExecute Me.hwnd, vbNullString, "d:\irgendwas\irgendwas.html", _
  vbNullString, "C:\", SW_SHOWNORMAL
 
End Sub
Du könntest vermeiden, jedes Mal einen neuen Tab zu öffnen, wenn du vor dem Ausführen die Fenster abfragst und zwangsweise den Internet Explorer beendest. Allerdings beendet das ALLE Fenster, die irgendwie "Windows Internet Explorer" als Namen beinhalten...

Z. B. auf deiner Form mittel Command1_Click:

<pre><code>Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
  ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
  ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As _
  Long) As Long
Const SW_SHOWNORMAL = 1
 
Private Sub Command1_Click()
 
EnumWindows AddressOf EnumWindowsProc, ByVal 0&
 
ShellExecute Me.hwnd, vbNullString, "d:\irgendwas\irgendwas.html", _
  vbNullString, "C:\", SW_SHOWNORMAL
 
End Sub
In ein Modul:

Option Explicit
 
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _
  hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As _
  Any) As Long
Const WM_CLOSE = &H10
Private Declare Function BringWindowToTop Lib "user32.dll" (ByVal hwnd As Long) _
  As Long
Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal _
lParam As Long) As Boolean
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd _
As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" ( _
ByVal hwnd As Long) As Long
 
Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As _
  Boolean
 
    Dim sSave As String
    Dim Ret As Long
 
    Ret = GetWindowTextLength(hwnd)
 
    sSave = Space(Ret)
 
    GetWindowText hwnd, sSave, Ret + 1
 
    If Right(sSave, 25) = "Windows Internet Explorer" Then
 
    SendMessage hwnd, WM_CLOSE, ByVal 0&, ByVal 0&
 
    End If
 
    EnumWindowsProc = True
 
End Function
Dieser Code ist nicht getestet, da ich hier kein Vista zur Verfügung habe!

EALA FREYA FRESENA

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
IE per Shell aufrufen und IE Anzeige im gleichen Fenster akt...3.828jasmina24.08.09 15:39
Re: IE per Shell aufrufen und IE Anzeige im gleichen Fenster...2.481effeff24.08.09 17:17
Re: IE per Shell aufrufen und IE Anzeige im gleichen Fenster...2.414jasmina25.08.09 12:25
Re: IE per Shell aufrufen und IE Anzeige im gleichen Fenster...2.445effeff25.08.09 15:20
Re: IE per Shell aufrufen und IE Anzeige im gleichen Fenster...2.514jasmina25.08.09 15:40
Re: IE per Shell aufrufen und IE Anzeige im gleichen Fenster...2.623effeff26.08.09 11:14
Re: IE per Shell aufrufen und IE Anzeige im gleichen Fenster...2.455jasmina26.08.09 15:56
Re: IE per Shell aufrufen und IE Anzeige im gleichen Fenster...2.508effeff26.08.09 17:21
Re: IE per Shell aufrufen und IE Anzeige im gleichen Fenster...2.424jasmina26.08.09 17:38
Re: IE per Shell aufrufen und IE Anzeige im gleichen Fenster...2.432effeff27.08.09 12:00

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel