Dual language vb6 developpez en français compilez en anglais(pas de vb6fr.dll)

Description

Programme trés simple et sécurisé
qui permet de faire passer VB6 du Français à L'Anglais et inversement en un click
Compiler en Ahglais évite le problème de la dépendance à VB6FR.DLL
et aussi par ricochet à MSVBVM.DLL
Les EXEs deviennent transportables et exécutables sans ces DLLs
sans installation, sans autorisation d'administrateur
DualVB6 ne joue que sur un seul fichier VB6IDE.DLL
il est livré avec les deux versions Anglaise et Française
de toute façon la version anglaise de VB6 n'est pas disponible

Source / Exemple :


'**************************************
'* Dual Language Visual Basic 6.0     *
'* Permet de developper en Français   *
'* Et de compiler en Anglais pour     *
'* Supprimer la dépendace à VB6FR.DLL *
'*         Deleplace 2009             *
'**************************************
Dim Language%, VB6IDE$

Private Sub Form_Load()
Const STD$ = "\Microsoft Visual Studio\VB98"
Dim A$
ChDrive App.Path: ChDir App.Path
If Exist("VB6Path.txt") Then
 Open "VB6Path.txt" For Binary As 1: A = Space(LOF(1)): Get 1, , A: Close 1
 If Exist(A & "\VB6.EXE") Then GoTo VB6Found
End If
A = Environ("ProgramFiles") & "\" & STD
If Exist(A & "\VB6.EXE") Then GoTo VB6Found
A = Left(Environ("WinDir"), 3) & STD
If Exist(A & "\VB6.EXE") Then GoTo VB6Found
A = "D:\" & STD
While Not Exist(A & "\VB6.EXE")
 A = InputBox("Entrez le dossier de VB6", "", Location)
 If A = "" Then End
Wend
VB6Found:
Location = A
VB6IDE = Location & "\VB6IDE.DLL"
Language = IsFrench
Label1 = "VB6 language: " & TxtLang(Language)
SelectLanguage(Language).Enabled = False
Picture2.Picture = Picture1(Language).Picture
Open "VB6Path.txt" For Output As 1: Print #1, A;: Close 1
End Sub

Private Function Exist(File$) As Boolean
Exist = (Dir(File) > "")
End Function

Private Function IsFrench%()
Dim A$
If Exist(VB6IDE) Then
 Open VB6IDE For Binary As 1
 A = Space(LOF(1))
 Get 1, , A
 Close 1
 IsFrench = Sgn(InStr(A, StrConv("VB6FR.DLL", vbUnicode)))
 'return value: 0 US ,1 Fr
End If
End Function

Private Sub RunVB6_Click(Lang%)
SelectLanguage_Click Lang
If Lang = Language Then Shell Location & "\VB6.EXE", vbMaximizedFocus: End
End Sub

Private Sub SelectLanguage_Click(Lang%)
If Lang = Language Then Exit Sub
Dim Source$, Target$, LocalTarget$, LocalSource$
Source = VB6IDE & Suf(Lang)
Target = VB6IDE & Suf(Language)
If Not Exist(Target) Then FileCopy VB6IDE, Target
LocalTarget = Right(Target, 13)
If Not Exist(LocalTarget) Then FileCopy VB6IDE, LocalTarget
LocalSource = Right(Source, 13)
If Not Exist(Source) Then
 If Exist(LocalSource) Then
  FileCopy LocalSource, Source
 Else
  MsgBox LocalSource & " Not Found": Exit Sub
 End If
End If
On Error Resume Next
FileCopy Source, VB6IDE
If Err Then
 MsgBox "Can't overwrite VB6IDE.DLL !" & vbCrLf & "Close all Running VB6 and Retry"
Else
 Label1 = "VB6 language: " & TxtLang(Lang)
 SelectLanguage(Lang).Enabled = False
 SelectLanguage(Language).Enabled = True
 Language = Lang
 Picture2.Picture = Picture1(Language).Picture
End If
End Sub

Private Function Suf$(Lang%)
Suf = IIf(Lang, ".FR", ".US")
End Function

Private Function TxtLang$(Lang%)
TxtLang = IIf(Lang, "Français", "English")
End Function

Conclusion :


J'ai déja déposé 2 sources sur la suppresion de la dépendance à
VB6FR.DLL, j'ai moi-même constaté des plantages dans quelques rares
cas.
Je pense offir ici une belle solution, légère et sécurisée
D'autant plus que la version anglaise est quasi introuvable
et que l'on hésite toujour à écraser une version qu'on connais et
qui marche

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.