Formularloser Dateidialog: Kein OCX/Formular/Komponente erforderlich!

Mit dieser einfachen Klasse können Sie einen FileDialog erstellen, ohne dass ein Formular benötigt wird, auch ohne die Notwendigkeit, comdlg32.OCX und seine visuelle CommonDialog-Komponente in einem Formular zu verwenden.

Es ist auch performanter als bei Verwendung der OCX-Komponente.
Der Screenshot rechts zeigt den Leistungsunterschied beim Öffnen eines FileDialogs: links mit traditionellem OCX CommonDialog-Steuerelement, rechts direkte DLL-Aufrufe mit diesem Code.

' cFileDialog.cls
' von Viotto - www.BreakingSecurity.net
'
' Bietet CommonDialog-Funktionalität,
' ohne die Notwendigkeit einer OCX-Datei und einer grafischen Komponente.
'
' ComDlg32.OCX bietet eine benutzerfreundliche Oberfläche, aber wenn Sie das OCX-Steuerelement verwenden,
' müssen Sie das Modul in den Speicher laden und außerdem eine 90K-OCX-Datei an Benutzer Ihrer Software verteilen.
' Um die Leistung zu verbessern und die Notwendigkeit zusätzlicher Abhängigkeiten zu beseitigen,
' sollten Sie die Verwendung von Steuerelementen in Ihren Anwendungen minimieren.
' Stattdessen können Sie die Win32-API-Aufrufe direkt verwenden.
'
' Weitere Informationen von Microsoft: https://support.micr...en-us/kb/161286
 
 
Option Explicit
 
Privatgelände Erklären Funktion GetOpenFileName lib "comdlg32.dll" Alias _
  "GetOpenFileNameA" (pDateiname öffnen As OPENFILENAME) As Lang
  
Privatgelände Erklären Funktion GetSaveFileName lib "comdlg32.dll" Alias _
  "GetSaveFileNameA" (pDateiname öffnen As OPENFILENAME) As Lang
  
Privatgelände Erklären Sub Copymemory lib "kernel32" Alias _
  "RtlMoveMemory" (lpvDest As Irgendein, lpvQuelle As Irgendein, ByVal cbCopy As Lang)
 
Privatgelände Typ ÖFFNENDATEINAME
  lStructSize As Lang
  hwndOwner As Lang
  hInstance As Lang
  lpstrFilter As Schnur
  lpstrCustomFilter As Schnur
  nMaxCustFilter As Lang
  nFilterIndex As Lang
  lpstrDatei As Schnur
  nMaxFile As Lang
  lpstrFileTitle As Schnur
  nMaxFileTitle As Lang
  lpstrInitialDir As Schnur
  lpstrTitel As Schnur
  Fahnen As Lang
  nFileOffset As ganze Zahl
  nDateierweiterung As ganze Zahl
  lpstrDefExt As Schnur
  Kundendaten As Lang
  lpfnHook As Lang
  lpTemplateName As Schnur
Ende Typ
 
Privatgelände Dlg As ÖFFNENDATEINAME
Privatgelände bDialogExecuted As Boolean ' ist wahr, wenn der Benutzer OK gedrückt hat, falsch, wenn der Dialog abgebrochen wurde
 
' Dies kann verwendet werden, um einen anfänglichen Dateinamen festzulegen, bevor der Dialog angezeigt wird
Öffentliche Immobilien Lassen strFile(Wert As Schnur)
  Copymemory ByVal Dlg.lpstrFile, ByVal Wert, Len(Wert)
Ende Immobilien
 
' Dies kann verwendet werden, um nach der Dialoganzeige den vollständigen Pfad der ausgewählten Datei abzurufen.
Öffentliche Immobilien Erhalten Sie  strDatei() As Schnur
  strDatei = Dlg.lpstrDatei
Ende Immobilien
 
' Dies kann verwendet werden, um nach der Dialoganzeige den Dateinamen (ohne Pfad) der ausgewählten Datei zu erhalten.
Öffentliche Immobilien Erhalten Sie  Dateiname() As Schnur
  FileName = Dlg.lpstrFileTitle
Ende Immobilien
 
Öffentliche Immobilien Erhalten Sie  Hingerichtet() As Boolean
  Ausführung von = bDialogExecuted
Ende Immobilien
 
' Dialogtitel setzen
Öffentliche Immobilien Lassen Titel(wert As Schnur)
  Dlg.lpstrTitle = Wert
Ende Immobilien
 
' Standard-Dateierweiterung festlegen
Öffentliche Immobilien Lassen DefaultExt(Wert As Schnur)
  Dlg.lpstrDefExt = Wert
Ende Immobilien
 
Öffentliche Immobilien Lassen Filter(wert As Schnur)
  Dlg.lpstrFilter = Wert
Ende Immobilien
 
Öffentliche Immobilien Lassen Eigentümer (Wert As Lang)
  Dlg.hwndOwner = Wert
Ende Immobilien
 
 
Öffentliche Sub Initialisieren()
  Dlg.lStructSize = Länge(Dlg)
  Dlg.hInstance = App.hInstance
  Dlg.nFilterIndex = 1
  Dlg.lpstrDatei = Schnur(257, 0)
  Dlg.nMaxFile = Len(Dlg.lpstrFile) - 1
  Dlg.lpstrFileTitle = Dlg.lpstrDatei
  Dlg.nMaxFileTitle = Dlg.nMaxFile
  Dlg.lpstrInitialDir = vbNullString
  Dlg.flags = 0
Ende Sub
 
Öffentliche Sub ÖffnenDialog anzeigen()
  bDialogExecuted = GetOpenFileName(Dlg)
Ende Sub
 
Öffentliche Sub SpeichernDialog anzeigen()
  bDialogExecuted = GetSaveFileName(Dlg)
Ende Sub
ROT-N-Verschlüsselung

Rot-N-Verschlüsselungschiffre in VB6.
Sehr einfache Verschlüsselung, nicht zuverlässig für sicheren Schutz.

'************************************************* ******************************
'* Titel: ROT-N Verschlüsselungsmodul *
'* Autor: Viotto *
'* Website: www.viotto-security.net *
'* Beschreibung: einfache Ersatzchiffre für Bytes: jede Eingabe *
'* Byte-Wert wird um die angegebene Anzahl von Bytes rotiert. *
'* Zweck: einfache Verschlüsselung für Text und Dateien. *
'* Verwendung: Der Verschlüsselungsschlüssel sollte eine Zahl zwischen 1 und 255 sein; höher *
'*-Nummern funktionieren, aber sie verursachen redundante Rotationen. *
'* Hinweise: Mit dem Schlüsselwert 128 (ROT-128) können Sie dieselbe Funktion verwenden, um *
'* Daten verschlüsseln und entschlüsseln. Andernfalls können Sie ROTN_Forward verwenden *
'* zum Verschlüsseln und ROTN_Backward zum Entschlüsseln. *
'* *
'************************************************* ******************************

Öffentliche Funktion ROTN_Forward(ByVal Eingabedaten As Schnur, ByVal NumKey As ganze Zahl) As Schnur
verdunkeln i As Lang, OutChar As Schnur
Für i = 1 Zu Len(Eingabedaten)
OutChar = Asc(Mid(Eingabedaten, i, 1)) + NumKey
Während OutChar > 255
OutChar = OutChar - 256
Wend
ROTN_Forward = ROTN_Forward + Chr(OutChar)
Nächste
Ende Funktion

Öffentliche Funktion ROTN_Rückwärts(ByVal Eingabedaten As Schnur, ByVal NumKey As ganze Zahl) As Schnur
verdunkeln i As Lang, OutChar As Schnur
Für i = 1 Zu Len(Eingabedaten)
OutChar = Asc(Mid(Eingabedaten, i, 1)) - NumKey
Während OutChar < 0
OutChar = OutChar + 256
Wend
ROTN_Rückwärts = ROTN_Rückwärts + Chr(OutChar)
Nächste
Ende Funktion
Holen Sie sich den Standardbrowserpfad

mit wenigen Codezeilen und ohne Windows-APIs.

Funktion Standardbrowser() As Schnur
  verdunkeln Regshell As Betreff
  Kleidungsset Regshell = CreateObject("Wscript.Shell")
  ' Liest den Registrierungswert, in dem die mit HTTP zu verwendende Standardanwendung gespeichert ist
  Standardbrowser = regshell.regread("HKEY_CLASSES_ROOT\HTTP\shell\open\command\")
  ' Entfernt Shell-Parameter nach dem tatsächlichen Pfad und behält nur den Pfad bei, der in doppelten ' Anführungszeichen eingeschlossen ist
  Standardbrowser = Links(Standardbrowser, InStr(1, Standardbrowser, ".exe", vbTextCompare) + 4)
  ' Entfernt doppelte Anführungszeichen (")
  Standardbrowser = Ersetzen (Standardbrowser, Chr(34), vbNullString)
Ende Funktion
Viotto Binder

Sie finden das Viotto Binder Quelle auf einer eigenen Seite hier.

Menü