Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
c.m.obrecht
Anmeldungsdatum: 09.03.2006 Beiträge: 377 Wohnort: Hofstetten SO, CH
|
Verfasst am: 14.02.2007, 13:58 Titel: VB5 - Webbrowser mit Speicherung von Logindaten |
|
|
Hallo,
ich sollte einen kleinen Browser erstellen, welcher die Funktion zum Speichern von Passwörtern, Logindaten... hat (wie bei Firefox...). Habe bei google einige Beispiele gefunden, doch leider haben die nicht funktioniert (möglicherweise habe ich auch etwas falsch gemacht). Weiss zufällig jemand wie das geht?
Ansonsten ist es kein Problem, aussser dass das Browser-Steuerelement sich beim Maximieren des Fensters nicht mit vergrössert, habe dazu keine EIgenschaft gefunden.
Vielen Dank! _________________ ...längre blomstre gamle nord... |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 14.02.2007, 17:05 Titel: |
|
|
zu 2) du must die sub form_resize() verwenden. diese wird aufgerufen, wenn das fenster vergrößert/kleinert wird. dann kannst du die browser-controls auch mit der größe anpassen. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
c.m.obrecht
Anmeldungsdatum: 09.03.2006 Beiträge: 377 Wohnort: Hofstetten SO, CH
|
Verfasst am: 14.02.2007, 20:04 Titel: |
|
|
Danke, habe irgendwie ein kleines Problem; hatte ein Beispiel genommen und die Prozedur erstellt. Nun wird aber das Fenster immer im Vollbild ausgeführt und das Browserelement geht immer über den Fensterrand hinaus. Was muss ich in die Resize - Sub schreiben damit die Elemente und Fenster so bleiben wie ich sie im Entwurf erstellt habe und die Grösse dann nur zur Laufzeit manuell verändern lässt?
Es steht folgendes; habe mit den Zahlen experimentiert ohne Erfolg:
Code: |
Private Sub Form_Resize()
WebBrowser1.Width = Me.ScaleWidth - 100
WebBrowser1.Height = Me.ScaleHeight - 100
End Sub
Private Sub Form_Load()
Form_Resize
Me.Left = GetSetting(App.Title, "Settings", "MainLeft", 500)
Me.Top = GetSetting(App.Title, "Settings", "MainTop", 500)
Me.Width = GetSetting(App.Title, "Settings", "MainWidth", 3250)
Me.Height = GetSetting(App.Title, "Settings", "MainHeight", 3250)
End Sub
|
_________________ ...längre blomstre gamle nord... |
|
Nach oben |
|
|
c.m.obrecht
Anmeldungsdatum: 09.03.2006 Beiträge: 377 Wohnort: Hofstetten SO, CH
|
Verfasst am: 19.02.2007, 18:01 Titel: |
|
|
Die Probleme haben sich soweit erledigt. Nun weiteres - lässt sich irgendwie verhindern dass der Browser in den Verlauf schreibt? Und lassen sich die IE-Favoriten importieren?
Vielen Dank _________________ ...längre blomstre gamle nord... |
|
Nach oben |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 19.02.2007, 18:37 Titel: |
|
|
@c.m. .. bei Grössenänderungen, solltest du immer
Code: |
Public Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Public Const SM_CYCAPTION = 4
Private Sub Form_Resize()
On Error Resume Next
If Me.WindowState <> 1 Then
Dim XW As Long
Dim XH As Long
Dim SYME As Long
SYME = GetSystemMetrics(SM_CYCAPTION) * Screen.TwipsPerPixelY
XW = Me.Width - 120
XH = Me.Height - 120 - SYME
WebBrowser1.Width = XW
WebBrowser1.Height = XH
End If
End Sub
|
nutzen.
Grund: Auf unterschiedlichen Systemen können utnerschiedliche Styles verwendet werden, die unterschiedliche Höhen der Titelleiste konfiguriert haben. Darauf sollte dein programm reagieren können. Um die Aktuelle Höhe dieser aus zu lesen, kann man eine API nutzen. (siehe oben)
Desweiteren solltest du darauf achten, das keien Fehler entstehen. Das kann z.B. dann passieren, wenn du Resize Events nutzt, ohne zu prüfen, ob die Form in der Taskleiste liegt, oder nicht .. wenn du sie Minimirst, dann entsteht ein Resize event, das Illegale Werte an deine Controls sendet. Das kannst du durch prüffen der "WindowState" kontrolieren, und den entsteheden fehler umgehen.
die "- 120" entspricht dem Standard der Borderwidth der Form.
GetSystemMetrics(SM_CYCAPTION) liefert die Höhe der Titelleiste in Pixel, und muss folglich noch mit TwipsPerPixelY Multipliziert werden, um korrekte Werte zu erhalten.
[Nachtrag]
Das der IE in den Verlauf schreibt, ist nicht zu verhindern, zumindest nicht ohne weiteres. Abgesehen davon, Schreibt IE auch die Verlaufsdaten in die Registry, die du nur per hand ändern kannst (die entsprechenden werte) .. Zumindest unter 98 ist dies so, unter XP ist der IE-Verlauf allerdings über ein Tweak-Tool dazu zu zwingen, das die Verlaufdaten gelöscht werden. Alternativ kannst du auch den Verlauf auf 1_Tag setzen, in den IE-Einstellungen, allerdings willst du das sicher auch nicht.
Du könntest auch den FF-Browser-Control einsetzen. fals dir der IE nicht zusagt ... es sei allerdings erwähnt, das beide Browser auf dem Zielsystem vorhanden sein müssen, je nachdem, was du einsetzen möchtest. Beim FF muss der FF auf dem Ziel vorhanden sein, beim IE der IE.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
|
c.m.obrecht
Anmeldungsdatum: 09.03.2006 Beiträge: 377 Wohnort: Hofstetten SO, CH
|
Verfasst am: 19.02.2007, 22:38 Titel: |
|
|
Oh vielen Dank!
Wegen dem Verlauf habe ich etwas bemerkt; damit nicht immer ein Java Script - Fehler angezeigt wird habe ich WebBrowser.silent= true eingefügt. Seither scheint mir taucht nichts mehr im Verlauf auf. Kann das sein?
Hat jemand eine Idee wie das mit den Favoriten gehen könnte? Es dürfen auch die IE - Favoriten sein.
Mit FF geht es weniger, da der Browser schon auf den meisten Computern, nicht nur bei mir, laufen sollte. _________________ ...längre blomstre gamle nord... |
|
Nach oben |
|
|
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 19.02.2007, 22:43 Titel: |
|
|
Zitat: | Mit FF geht es weniger, da der Browser schon auf den meisten Computern, nicht nur bei mir, laufen sollte. |
Denk ma nich so, der FF is 1. beliebt, und zweitens is der IE bald Altware, sollte sich mein Verdacht bzgl. Vista bestätigen... |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 19.02.2007, 22:53 Titel: |
|
|
Verdacht?
Übrigens is der FF-Anteil weltweit unter 10%, soviel ich weiß. In Deutschland liegt er glaube ich bei 30%... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 19.02.2007, 23:10 Titel: |
|
|
Aber immerhin etwas.
@c.m.obrecht:
Willst du eigene Favoriten in deinem Browser realisieren oder müssen es die IE-Favoriten sein?
Ansonsten ließe sich das nämlich leicht mit 'nem Button und wenig Code realisieren: Button mit "+" beschriftet, added die aktuelle Adresse aus der Adresszeile zu 'ner Listbox. Beim Erstellen und Zerstören des Formulars (in Delphi OnCreate und OnDestroy, Delphi deswegen, da ich sowas schonmal in Delphi entwickelt hab) einfach die Liste aus einer zentralen Datei laden bzw. in diese speichern.
Falls du jetzt was anderes gemeint hast, sorry. _________________ Eine handvoll Glück reicht nie für zwei.
--
|
|
Nach oben |
|
|
c.m.obrecht
Anmeldungsdatum: 09.03.2006 Beiträge: 377 Wohnort: Hofstetten SO, CH
|
Verfasst am: 19.02.2007, 23:41 Titel: |
|
|
Naja da der IE in Windows integriert ist... die Chancen stehen sicher höher, auch wenn FF Verbreitung findet.
Ich kam ursprünglich auf die Idee, diesen Browser zu konstruieren da der FF im Geschäft plötzlich nicht mehr funktionierte bzw. wenn man sich einloggte bei der Lieferantenseite und dann ein Produkt suchen wollte man einfach wieder auf der Login-Seite landet. Darum dachte ich, ich mache einen Browser bei dem gleich die Login-Daten von beiden Filialen gespeichert sind und mit einem Knopfdruck eingeloggt wird (bei FF muss man mit 2 Passwortern ja auch beginnne zu schreiben damit die Auswahl kommt).
Wegen den Favoriten, mit dem ListBox habe ich noch kaum gearbeitet bisher. Kann man dort leicht die Daten wieder auslesen und löschen etc.? IE-Favoriten wären übrigens gar nicht schlecht, müsste man nicht alles übertragen. Könnte ev. auch beides realisieren. _________________ ...längre blomstre gamle nord... |
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 20.02.2007, 12:25 Titel: |
|
|
Nun, ich weiß nicht, wie's bei VB ist, aber bei Delphi gibt's dafür direkt Funktionen. LoadFromFile und SaveToFile heißen die.
Sind direkt Funktionen des Objekts Listbox. Evtl. musst du ins Unterobjekt Items oder so, hab von VB so gut wie keine Ahnung. _________________ Eine handvoll Glück reicht nie für zwei.
--
|
|
Nach oben |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 20.02.2007, 13:15 Titel: |
|
|
@Mao .. nop .. solche Funktionen hat das Listview nicht .. oder die "list"
Allerdings kannst du das auch ganz simpel per hand machen. (Vorraussetzung ist, das du kein ASCII(1) in den werten hast .. oder sonst eiens, das du als trenner nutzen willst (ASCII(0) bitte nicht, da es das Dateiende markiert.
Code: |
Public Sub X_GetListString(V_List as ListBox)
Dim X as long
Dim D as string
with V_List
for x = 0 to .listcount -1
d = d & list(x) & chr(1)
next
end with
end sub
Public Sub X_SetListString(V_List as ListBox, byval V_Data as string)
Dim X as long
Dim Pos as long
with V_List
for x = 1 to len(v_data)
Pos = instr(1,v_data,chr(1))
if pos > 0 then
.add left(v_data,1,pos-1)
v_data = mid(v_data,pos+1)
else:exit for
end if
next
end with
end sub
|
Das kann man natürlich noch sehr erweitern, mit Funktionen zum speichern, und laden, oder mit Prüfungen, ob der wert schon vorhanden is, oder ob er leer is, oder oder oder ...
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 20.02.2007, 14:17 Titel: |
|
|
Hab gesagt, dass ich nicht viel Ahnung von VB hab; und außerdem dazugeschrieben, dass dies Delphi's VCL-Funktionen sind.
Ich hatte nur vermutet, dass VB ähnliche Funktionen für sein Listbox-Control bereitstellt... _________________ Eine handvoll Glück reicht nie für zwei.
--
|
|
Nach oben |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 20.02.2007, 14:26 Titel: |
|
|
Nop
das Beispiel war übrigens für *Scroll* .. für C.M.
Nutzt Delllphi nicht auch nur die Win-Controls? .. oder haben die eigene, in denen solche funktionen integriert sind?
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 20.02.2007, 14:30 Titel: |
|
|
War mir schon klar, dass das Beispiel für ihn ist.
Delphi hat eine eigene visuelle Bibliothek (die VCL, VisualControlLibrary), welche eine umfangreiche Schnittstelle von Delphi-Controls und Original-Windows-Controls bereitstellt. Für viele Funktionen die in der VCL bereits integriert sind bräuchtest du i.d.R. 'ne Menge Codezeilen, was dir so erspart wird - kannst dich da also komplett auf die Anwendung konzentrieren. Weiß jetzt nicht, wie VB das ganze händelt, aber bestimmt so ähnlich. _________________ Eine handvoll Glück reicht nie für zwei.
--
|
|
Nach oben |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 20.02.2007, 14:33 Titel: |
|
|
hmm .. also .. "Libis" im sinne von Libs, hat es nicht wirklich ... man kann die Steuerelemente direkt hinzu fügen, drauf zeichenen, udn "Objekt-Orientiert" auf Methoden / Events / Parameter zugreifen. Folglich müssen alle Funktionen, die im Control nicht vorhanden sind, vom Coder selbst erstellt werden.
Was auch vorteile in der grösse des QC's hat *g* (wennd ie Libs nicht implementiert werden müssen)
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 20.02.2007, 19:23 Titel: |
|
|
Sorry, mit der Größe teuschste dich.
Eine Delphi-EXE mit aktueller VCL, compiliert mit dem Compiler aus dem BDS 3.0 (2005) benötigt ~ 360 KB. Die Runtime-DLL's von VB belegen eine Menge mehr.
Ebenso ist es mit .Net - auch wenn DotNet halt mittlerweile fast zum Standard-Umfang von Windows gehört.
Die VCL nimmt einem so gesehen praktisch die Drecksarbeit ab. _________________ Eine handvoll Glück reicht nie für zwei.
--
|
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 20.02.2007, 19:38 Titel: |
|
|
[OT]
Also wenn du schon
Mao hat Folgendes geschrieben: |
Standard-Umfang
|
so sehr herraushebst, muss ich doch gleich mal erwidern:
Mao hat Folgendes geschrieben: |
mit der Größe teuschste dich
|
[/OT] _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 20.02.2007, 19:41 Titel: |
|
|
Hehe, ich steh dazu.
Und das kursive war nur ein "Versehen"... _________________ Eine handvoll Glück reicht nie für zwei.
--
|
|
Nach oben |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 20.02.2007, 20:06 Titel: |
|
|
jo ... .NET is ne Krankheit .. wie kann man nur 20MB Laufzeitumgebung zum Installationspacket packen, einer Äxe, welche gerade ma 50K oder weniger hat ...
Da bin ich mit meiner MSVBVM60.dll noch recht zufrieden. ... schön kompakt, udn durch Native Kompilierung hat man auch ne schöne flinke EXE ... Aber, dieses .NET zeugs ... ne ... das is echt ekelhaft ...und alles wegen SUN und JAVA ...
@Mao .. ja, dann wird folglich das ganze VCXAbablub zeugs in die EXE mit ein kompiliert, udn nicht nur die benötigten Funktionen und Obejkte?!
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
|
|