Willkommensfenster

mafiamix

Mitglied
Hallo,

ich suche ein "Willkommensfenster", wo immer erscheint, wenn man das Programm startet, außer wenn man bei einer Checkbox einen Haken rein macht, dass dann dieses erste Fenster für 30 Tage nicht mehr angezeigt wird.
Nach 30 Tagen kommt es also dann immer wieder bei neuem Programmstart, außer man gibt es wieder ein, dass es für weitere 30 Tage ausgeblendet bleiben soll.

Und wenn man dann auf ein Button in diesem Fenster klickt, sollte man automatisch zum Programm (Form1) kommen, also nicht dass sich das Programm als neues Fenster öffnet und das "Willkommensfenster" noch stehen bleibt, sondern dass es entweder gleich aus dem 1. Fenster geöffnet wird, oder sich das "Willkommensfenster" schließt und Form1 (das Fenster vom Programm) dann öffnet.


Könnte mir für sowas jemand den Code posten? :)


Danke,

mafiamix
 
Also so Code kann ich dir leider keinen geben, aber als Willkommensfenster kannst du (sofern du VB6 enterpriseedition hast) gleich so ein fertiges nehmen, ich weis nicht, ob das auch bei anderen Versionen ist.
 
Speichere Doch Das Datum in einer iniDatei (s. Hier: http://www.shadoware.de/vb/ini.html)
Und Rufe Das Datum Jedesmal beim Start Deines Programmes Ab und vergleiche mit dem heutigen datum etwa So:

Code Für ein Modul
Code:
'API-Funktionen deklarieren
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationname As String, ByVal lpKeyName As Any, ByVal lsString As Any, ByVal lplFilename As String) As Long
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationname As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Sub SaveINISetting(ByVal Filename As String, ByVal Key As String, ByVal Setting As String, ByVal Value As Variant)
   Call WritePrivateProfileString(Key, Setting, Value, Filename)
End Sub

Function GetINISetting(ByVal Filename As String, ByVal Key As String, ByVal Setting As String, ByVal Default As Variant) As Variant
   Dim Temp As String * 1024

   Call GetPrivateProfileString(Key, Setting, Default, Temp, Len(Temp), Filename)
   GetINISetting = Mid(Temp, 1, InStr(1, Temp, Chr(0)) - 1)
End Function


CODE für den Willkommen Dialog

Code:
Private Sub Form_Load()
Dim INIDatei As String
INIDatei = "C:\ini.ini"
Dim Altes_Datum As String
Altes_Datum = GetINISetting(INIDatei, "Datum", "AltesDatum", "01.01.2000")
Dim dat1 As Date
Dim dat2 As Date
dat1 = CDate(Altes_Datum)
dat2 = Date
dat3 = DateDiff("d", dat1, dat2)
If str(dat3) > "30" Then
Me.Show
ElseIf  str(dat3) < "30"
frmMain.Show
Unload Me
End If
End Sub

Private Sub Command1_Click()
If chkNichtAnzeigen.Value = True Then
SaveINISetting INIDatei, "Datum", "AltesDatum", str(Date)
frmMain.Show
End If
End Sub
So, Das sollte Es gewesen sein. Du benötigst das Willkommensfenster, eine CheckBox (chkNichtAnzeigen) und einen Commandbutton (logischerweise beides im Willkommen dialog. auf den du klickst wenn die nächste Form Erscheinen soll. Der Ini-DateiPfad sollte auch noch definiert Werden. Die INI-Datei muss nicht auf .ini enden sie kann auch zum Beispiel settings.abc heißen....

DateDiff() zieht zwei Daten voneinander ab.
 
Zuletzt bearbeitet:
Danke erstmal für die schnelle Antwort.
Leider bin ich aber echt nicht der VB-Freak, der sich recht gut damit auskennt und sobald ich den Code bei mir reinkopier, wimmelts nur so von 1000 Fehlern! :rolleyes:

Trotzdem danke für die schnelle Hilfe! :)
 
Alternativ kannst du mit den VB-Befehlen GetSetting und SaveSetting in einen vordefinierten Registry-Bereich Werte ablegen, schau dir dazu auch die VB-Hilfe an.


Der Doc!
 
Sorry das da So viele Fehler drin sind, habe den Code vergessen zu überprüfen. DrSoong hat schon eine sehr gute Idee mit den Registryeinträgen gegeben. Ansonsten Speichere Das Datuzm in einer TextDatei Ab und überprüfe beim neustart des Programms ob das datum deinen Forderungen entspricht.

Ich werde den Richtigen Code Jetzt gleich nochmal posten.
 
Ok, ich hab probs mit der datediff funktion, aber alles andere wirstdu schon mit einem bissel logischem vertändnis huingebogen bekommen :-)
 
Ok, danke, bei dem Willkommensdialog werden jetzt schon nur noch 2 Fehler angezeigt!
Hab mal n Screen gemacht.
Ich denk mal, dass du den Fehler besser findest, als wenn ich den hier jetzt lang beschreib und dann auch noch falsch?! ;)

Zum Screen
 
Also ich hab einen Fehler in der zeile mit ElseIf str(dat3) < "30" gefunden.

Da muss noch ein Then hinter

Dann wäre da noch der Fehler mit dem SaveINISetting, da musst du die schreibfunktion aus dem tipp von XanRaZoR nehmen. Die Version aus meinem link is nix die is kaputt oder so...

dann sollte es klappen. Forms anpassen und feddisch.
 
Zurück