jogi1989
Goto Top

Speichern von Fensterpositionen in eine INI Datei und wieder auslesen

.

Hallo Zusammen,

Ich habe als völliger Programmier Neuling folgendes Prolem.
Ich möchte in einem VBS Script folgenden Code einfügen, um die Festerposition nach dem schließen zu speichern und beim nächste starten soll es sich die Position aus einer INI Datei holen.


Ist dieser Code denn noch VBS, oder als welche Datei muss der Code gespeichert werden?
Wie gesagt, ich habe von Programmieren überhaupt keine Ahnung, aber ich versuche mein bestes um es zu lernen
und hoffe Ihr könnt mir dabei behilflich sein.


Hier der Quellcode:
'Beispiel : INI-Dateien schreiben und lesen. Letzte Fensterposition beim  
'           beenden des Programms speichern, und bei einem Neu-  
'           start des Programms an dieser Fensterposition wieder posi-  
'           tionieren.  

Private Declare Function WritePrivateProfileString Lib "kernel32" _  
                                Alias "WritePrivateProfileStringA" _  
                                (ByVal lpApplicationName As String, _
                                ByVal lpKeyName As Any, _
                                ByVal lpString As Any, _
                                ByVal lpFileName As String) _
                                As Long

Private Declare Function GetPrivateProfileString Lib "kernel32" _  
                                Alias "GetPrivateProfileStringA" _  
                                (ByVal lpApplicationName As String, _
                                ByVal lpKeyName As Any, _
                                ByVal lpDefault As String, _
                                ByVal lpReturnedString As String, _
                                ByVal nSize As Long, _
                                ByVal lpFileName As String) _
                                As Long

Private Sub Form_Load()
    Dim sRet As String
    Dim lRet As Long

    sRet = String$(60, 0)
    lRet = GetPrivateProfileString("Fensterposition", "Links", "0", sRet, 60, App.Path & "\" & App.EXEName & ".ini")  
    If lRet > 0 Then
        sRet = Left$(sRet, lRet)
        If IsNumeric(sRet) Then
            Form1.Left = CInt(sRet)
        End If
        Else
            MsgBox "Fehler.", "Fehler..."  
    End If
    
    sRet = String$(60, 0)
    lRet = GetPrivateProfileString("Fensterposition", "Oben", "0", sRet, 60, App.Path & "\" & App.EXEName & ".ini")  
    If lRet > 0 Then
        sRet = Left$(sRet, lRet)
        If IsNumeric(sRet) Then
            Form1.Top = CInt(sRet)
        End If
        Else
            MsgBox "Fehler.", "Fehler..."  
    End If
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If WritePrivateProfileString("Fensterposition", "Links", Format$(Me.Left), App.Path & "\" & App.EXEName & ".ini") <= 0 Then  
        MsgBox "Fehler.", "Fehler..."  
    End If
    If WritePrivateProfileString("Fensterposition", "Oben", Format$(Me.Top), App.Path & "\" & App.EXEName & ".ini") <= 0 Then  
        MsgBox "Fehler.", , "Fehler..."  
    End If
End Sub

Private Sub Command1_Click()
    Unload Me
    End
End Sub

Content-Key: 204103

Url: https://administrator.de/contentid/204103

Ausgedruckt am: 29.03.2024 um 09:03 Uhr

Mitglied: rubberman
rubberman 28.03.2013 um 22:50:14 Uhr
Goto Top
Hallo jogi1989.

In VBS aka VBScript kannst du keine WINAPIs deklarieren und somit auch nicht mit ihnen arbeiten. Außerdem hat VBScript auch kein Fenster, dessen Position gesichert werden könnte!

Der Code scheint VB6 zu sein und lässt sich sicher mit einem alten VB6 Compiler kompilieren (so wahrscheinlich noch nicht, da unvollständig). Ggf. könnte man ihn auch in VBA übertragen und in MS Office Dateien nutzen.

WINAPI Funktionen kannst du in den meisten Programmiersprachen nutzen. Da du aber, wie du schreibst, keine Programmiererfahrungen hast, ist es kaum möglich dir zu irgend etwas zu raten. Was willst du damit eigentlich erreichen?

Grüße
rubberman
Mitglied: jogi1989
jogi1989 02.04.2013 um 08:13:42 Uhr
Goto Top
Hallo rubberman,

ich habe mehrere vbs. dateien und .hta dateien, welche für einen Monitoring Rechner genutzt werden,
die einzelnen Fenster sollen auf 7 Monitore verteilt werden.
da es mühseligt ist diese immmer per hand zurecht zu rücken, habe ich die Aufgabe bekommen
(im besten Fall) die Fensterposition der einzelnen Fenster beim schließen in eine .Ini datei zu speichern und die position eim starten der Dateien wieder zu laden.
Mitglied: rubberman
rubberman 02.04.2013 um 18:56:16 Uhr
Goto Top
Hallo jogi1989,

es bleibt dabei, ein VBScript hat kein Fenster. Somit gibt es keine Position, die zu speichern wäre.

Was HTA angeht, google ich doch gern für dich face-wink
Hey, Scripting Guy! How Can I Get an HTA to Remember Its Previous Position Onscreen?
In wiefern das die richtige Position über mehrere Monitore speichert, weiß ich nicht. Kann es auch nicht testen, da mir nur ein Monitor zur Verfügung steht (was mir persönlich auch völlig ausreicht face-smile).

Grüße
rubberman