WebBrowser und ftp- keine neuen Fenster öffnen
-
Habe ein WebBrowser-Control in einem FTP-Client um die Dateien und Ordner auf dem Server anzuzeigen und darauf zugreifen zu können. Nun, wenn man einen Unterordner auf dem Server öffnet dann öffnet sich ein 2. Fenster. Wie lässt sich das vermeiden, so dass der Unterordner direkt in dem WebBrowser-Control geöffnet wird?
Eine 2. Frage bezüglich des FTP-Clients; etwas ähnliches habe ich in C# realisiert (einen Datei-Manager für den Asus EEE PC damit man nicht im Explorer beim Verschieben/Kopieren von Dateien ewig die Ordner "verpasst" oder mehrere Fenster manuell öffnen muss inkl FTP-Zugang), da werden die Login-Daten für den Server gespeichert als Anwendungseinstellungen. In C++ .NET konnte ich dies so nicht realisieren; eine "ANwendungseinstellungs-Datei" fehlt wurde gemeldet als ich die Datenverbindung u den Textboxen etc. herstellen wollte. WIe gehe ich da vor?
VIelen Dank
-
hi,
hatte quasi das selbe problem hab es wie folgt gelöst.
als ersts habe ich den "webBrowser1"-control rausgeworfen und den "axWebBrowser1"-control(Toolbox: Microsoft WebBrowser) integriert, dieser bietet dir das "NewWindow2" event an, bei mir will ich das "neuefenster" in nem bestimmtem form geöffnet haben.
der code sieht dan so ausForm3 ^y=gcnew Form3(); y->axWebBrowser1->RegisterAsBrowser=true; e->ppDisp= y->axWebBrowser1->Application; this->timer3->Enabled=false; y->Visible = true;
wenn du es im selben form, öffnen willst sollte der code so in der art aussehen:
e->ppDisp= this->axWebBrowser1->Application;
versuch mal dein glück,
evtl geht dies auch mit dem "NewWindow" event des "webBrowser"-conroll.
-
Vielen Dank! So in der Art mit dem NewWindow-Event habe ich mir das auch vorgestellt. Ach so das ppDisp-Objekt kommt mir von Visual Basic 5 her bekannt vor, da brauchte ich dies für einen WebBrowser damit das 2. Fenster in diesem in einem neuen Fenster und nicht im Internet Explorer angezeigt wurde
-
falls du rausfinden solltest wie man die maße eines popups durch das NewWindow event auslesen kann und dan an den ziel webBrowser bzw ziel form übergeben kann.
das habich leider noch nicht hinbekommen^^
-
Ach ja, das weiss ich auch nicht Im VB-Browser erscheint immer ein ganzes Fenster auch für Pop Ups.
Es funktioniert nicht, ppDisp ist kein Member von e (dachte auch das geht so!).
Dieses axErbBrowser, woher bekommt man das?
-
Tools-> choose Toolbox Items
--> COM --> Microsoft WebBrowser hinzufügen (shdocvw.dll)
-
Super, das gibt ja noch viele Komponenten dort Muss ich nich irgebdwo irgend einen Verweis einfügen? Das Programm erzeugt eine Laufzeit-Exception bei unmanaged code...
-
mh ich musste bei mir nichs einfügen...
-
Diese Ausnahme:
Eine Ausnahme (erste Chance) des Typs "System.IO.FileNotFoundException" ist in System.Windows.Forms.dll aufgetreten. Eine nicht behandelte Ausnahme des Typs "System.IO.FileNotFoundException" ist in System.Windows.Forms.dll aufgetreten. Zusätzliche Informationen: Die Datei oder Assembly Interop.SHDocVw.1.1, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden. Kann doch kaum sein dass die DLL nicht vorhanden ist wenn sie aufgeführt ist; bei COM/ActiveX erscheinen ja imer die vorhandenen Komponenten (oder irre ich mich da? Dachte in VB 5 ist es so).
Details:
System.Windows.Forms.dll!System.Windows.Forms.AxHost.GetOcxCreate + 0x24 Bytes System.Windows.Forms.dll!System.Windows.Forms.AxHost.TransitionUpTo + 0xde Bytes System.Windows.Forms.dll!System.Windows.Forms.AxHost.CreateHandle + 0x45 Bytes System.Windows.Forms.dll!System.Windows.Forms.Control.CreateControl + 0x8d Bytes System.Windows.Forms.dll!System.Windows.Forms.Control.CreateControl + 0x12b Bytes System.Windows.Forms.dll!System.Windows.Forms.AxHost.EndInit + 0x29 Bytes > netFTP.exe!netFTP::Form1::InitializeComponent() Zeile 332 C++ netFTP.exe!netFTP::Form1::Form1() Zeile 28 + 0x8 Bytes C++ netFTP.exe!main(array<System::String^> ^ args = {Length=0}) Zeile 16 + 0x13 Bytes C++
Disassembly (habe keine Ahnung vom von .NET/VC++ generierten ASM-Code)
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->webBrowser2))->EndInit(); 0000189b mov ecx,dword ptr [esi+00000184h] 000018a1 call dword ptr ds:[00930020h] this->ResumeLayout(false); !!! Zeile 332: 000018a7 mov ecx,esi !!! 000018a9 xor edx,edx 000018ab call 7A676A60 }
Quellcode in C++
this->groupBox2->PerformLayout(); (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->webBrowser2))->EndInit(); this->ResumeLayout(false);