Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Speichern von Fensterpositionen in eine INI Datei und wieder auslesen

Frage Entwicklung VB for Applications

Mitglied: jogi1989

jogi1989 (Level 1) - Jetzt verbinden

28.03.2013 um 14:38 Uhr, 2665 Aufrufe, 3 Kommentare

.

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:
01.
'Beispiel : INI-Dateien schreiben und lesen. Letzte Fensterposition beim 
02.
'           beenden des Programms speichern, und bei einem Neu- 
03.
'           start des Programms an dieser Fensterposition wieder posi- 
04.
'           tionieren. 
05.
 
06.
Private Declare Function WritePrivateProfileString Lib "kernel32" _ 
07.
                                Alias "WritePrivateProfileStringA" _ 
08.
                                (ByVal lpApplicationName As String, _ 
09.
                                ByVal lpKeyName As Any, _ 
10.
                                ByVal lpString As Any, _ 
11.
                                ByVal lpFileName As String) _ 
12.
                                As Long 
13.
 
14.
Private Declare Function GetPrivateProfileString Lib "kernel32" _ 
15.
                                Alias "GetPrivateProfileStringA" _ 
16.
                                (ByVal lpApplicationName As String, _ 
17.
                                ByVal lpKeyName As Any, _ 
18.
                                ByVal lpDefault As String, _ 
19.
                                ByVal lpReturnedString As String, _ 
20.
                                ByVal nSize As Long, _ 
21.
                                ByVal lpFileName As String) _ 
22.
                                As Long 
23.
 
24.
Private Sub Form_Load() 
25.
    Dim sRet As String 
26.
    Dim lRet As Long 
27.
 
28.
    sRet = String$(60, 0) 
29.
    lRet = GetPrivateProfileString("Fensterposition", "Links", "0", sRet, 60, App.Path & "\" & App.EXEName & ".ini") 
30.
    If lRet > 0 Then 
31.
        sRet = Left$(sRet, lRet) 
32.
        If IsNumeric(sRet) Then 
33.
            Form1.Left = CInt(sRet) 
34.
        End If 
35.
        Else 
36.
            MsgBox "Fehler.", "Fehler..." 
37.
    End If 
38.
     
39.
    sRet = String$(60, 0) 
40.
    lRet = GetPrivateProfileString("Fensterposition", "Oben", "0", sRet, 60, App.Path & "\" & App.EXEName & ".ini") 
41.
    If lRet > 0 Then 
42.
        sRet = Left$(sRet, lRet) 
43.
        If IsNumeric(sRet) Then 
44.
            Form1.Top = CInt(sRet) 
45.
        End If 
46.
        Else 
47.
            MsgBox "Fehler.", "Fehler..." 
48.
    End If 
49.
End Sub 
50.
 
51.
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) 
52.
    If WritePrivateProfileString("Fensterposition", "Links", Format$(Me.Left), App.Path & "\" & App.EXEName & ".ini") <= 0 Then 
53.
        MsgBox "Fehler.", "Fehler..." 
54.
    End If 
55.
    If WritePrivateProfileString("Fensterposition", "Oben", Format$(Me.Top), App.Path & "\" & App.EXEName & ".ini") <= 0 Then 
56.
        MsgBox "Fehler.", , "Fehler..." 
57.
    End If 
58.
End Sub 
59.
 
60.
Private Sub Command1_Click() 
61.
    Unload Me 
62.
    End 
63.
End Sub
Mitglied: rubberman
28.03.2013 um 22:50 Uhr
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
Bitte warten ..
Mitglied: jogi1989
02.04.2013 um 08:13 Uhr
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.
Bitte warten ..
Mitglied: rubberman
02.04.2013 um 18:56 Uhr
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
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 ).

Grüße
rubberman
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Variable aus ini Datei auslesen und weiterverwenden (17)

Frage von n0cturne zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH ini Datei Datei auslesen (2)

Frage von Juergen42 zum Thema Batch & Shell ...

VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...