1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. bernd670

Beiträge von bernd670

  • Feedback Test

    • bernd670
    • 4. August 2006 um 19:38

    Ich habe mal ein wenig getestet hier mein Ergebnis:

    1. Beim Export als Monatsansicht erscheint folgende Fehlermeldung s. Bild! Da fehlt ein '&'-Zeichen vor $parts[2].

    2. Die Bilder für die HTML-Ansicht gibt es wohl noch nicht, oder?

    3. Wenn man beim Backup zurückspielen wählt wird das komplette Verzeichns nach Calendars kopiert, egal ob es sich um Galanda-Dateien handelt oder nicht!

    4. Nach dem zurückspielen von Backup's wird die Anzeige nicht aktuallisiert!

    Ansonsten sieht es soweit ich getestet habe ja schon ganz gut aus! :party4: :party4:

    Weiter so!!

    Bilder

    • Export_month.jpg
      • 15,1 kB
      • 431 × 165
  • Eigene Hilfedatei aufrufen

    • bernd670
    • 4. August 2006 um 18:46

    Kannst auch mal den Parameter Flags im Abschnitt <Objekt> probieren:

    Code
    <OBJECT
      id=MyControl
      type="..."
      classid="..."
      codebase="..."
      width=100%
      height=100%
    >
      <PARAM name="Command" value="Contents">
      <PARAM name="Item1" value="...">
      <PARAM name="Flags" value="0x00040100,0x17CF0000">
    </OBJECT>
    Alles anzeigen

    Evtl. die 2 Hexwerte tauschen wenns nicht geht!

  • Eigene Hilfedatei aufrufen

    • bernd670
    • 4. August 2006 um 17:04

    Erstellen eines 800x600 Fensters (Schalter -800)

    Syntax: hh -800 Pfad\name.chm

    Dieser Schalter erzeugt ein 800 x 600 Fenster welches nicht den Windows Taskbar verdeckt.

    Für Pfad\name.chm ist der Pfad und der Name der zu öffnenden Hilfedatei anzugeben. Dieser Schalter wird ignoriert, sofern in der kompilierten Hilfedatei ein "default window" definiert ist.

  • Fensterpositionen

    • bernd670
    • 4. August 2006 um 16:59
    Zitat

    Original von peethebee
    Man kann auch einfach die Höhe des "Fensters Taskleiste" - und nichts anderes ist sie - auslesen.

    Es soll auch Leute geben die Ihre Taskleiste nicht am unteren Bildschirmrand positionieren. Das wird von der Funktion automatisch berücksichtigt! ;)

    Vllt. kann ja jemand die Funktion brauchen!

  • Fensterpositionen

    • bernd670
    • 4. August 2006 um 16:13

    Hallo,

    ich habe eine Möglichkeit gefunden die Größe des Desktops ohne die Taskleiste auszulesen, vllt kannst du ja diese benutzen um die Standardgröße festzulegen! ;)

  • Eigene Hilfedatei aufrufen

    • bernd670
    • 4. August 2006 um 15:04

    Hallo,

    Erfahrung mit "HTML Help Workshop" habe ich zwar nicht, ich habe aber eine recht gute Hilfe dazu gefunden -> download
    Hier der Ausschnitt zum springen auf Textmarken:

    Zitat


    Von Inhalt (TOC) und Index direkt zu einer Textstelle springen

    Um zu einem bestimmten Eintrag innerhalb einer HTML Seite durch einen Aufruf aus dem Inhalt (TOC) oder Index zu springen, muss wie folgt vorgegangen werden:

    Innerhalb der HTML Datei muss an der Stelle, zu der gesprungen werden soll, eine Textmarke (anchor) definiert werden.

    z.B.: <a name="Textmarke1"></a>Textstelle zu der gesprungen werden soll.

    Nun im HTML Help Workshop unter Contents oder Index einen neuen Eintrag erstellen. In dem jeweiligen Register "Add" anklicken. Es erscheint die Dialogbox "Path or URL". Dort, wie gewohnt, die entsprechende Datei, zu der gesprungen werden soll, auswählen. Nun erscheint in dieser Dialogbox im Dialogfeld "File or URL" der Name der HTML Datei. Diesem Eintrag wird nun #Textmarke1 (bzw. der Name, der für die Textmarke vergeben wurde) hinzugefügt.

    z.B.: name.htm#Textmarke1

    Nach erneutem Kompilieren, wird beim Aufruf des Eintrags aus dem Inhalt oder dem Index, direkt zu der entsprechenden Textmarke bzw. Textstelle gesprungen.

    Alles anzeigen
  • Default in Combo

    • bernd670
    • 3. August 2006 um 22:26

    Bei Benutzung der Beta könnte das Funktionieren

    Code
    #Include <GuiCombo.au3>
    
    
    $i_index = _GUICtrlComboSelectString($h_combobox,-1,$s_default)
    _GUICtrlComboSetCurSel($h_combobox,$i_index)
  • text in game

    • bernd670
    • 3. August 2006 um 22:13

    Das kann nur 2 Ursachen haben, entweder hast du beim Parameter Opt das OnTop ausgeschaltet oder ein anderes Fenster hat nach dem Splash-Fenster den OnTop-Status bekommen. Abhilfe könnte ein WinSetOnTop auf das Splash-Fenster shaffen.

  • Compilierte exe als Dienst/Service laufen lassen.

    • bernd670
    • 3. August 2006 um 20:48

    Hier mal ein kleines Beispiel (auslesen und setzen den Desktop-Hintergrundbildes) zur Verwendung von DllCall:

    Spoiler anzeigen
    Code
    #NoTrayIcon
    Global Const $SPIF_UPDATEINIFILE = 0x01
    Global Const $SPIF_SENDWININICHANGE = 0x02
    Global Const $SPI_SETSCREENSAVEACTIVE = 0x11
    Global Const $SPI_SETDESKWALLPAPER = 0x14
    Global Const $SPI_GETDESKWALLPAPER = 0x73
    
    
    Func _SetDeskWallpaper($Filename)
    	DllCall("user32.dll", "long", "SystemParametersInfo" _  ; Funktion SystemParameterInfo aus user32.dll
    			, "long", $SPI_SETDESKWALLPAPER _               ; Desktop-Hintergrundbild soll gesetzt werden
    			, "long", 0 _                                   ; Parameter wird für diese Funktion nicht benötigt
    			, "str", $Filename _                            ; Pfad zur Bitmap für das Hintergrundbild
    			, "long", BitOR($SPIF_UPDATEINIFILE, $SPIF_SENDWININICHANGE) _ ; Einstellungen speichern
    			)
    EndFunc   ;==>_SetDeskWallpaper
    
    
    Func _GetDeskWallpaper()
    	Local $Filename = DllStructCreate("char[256]") ; Hier wird der Pfad zur Bitmap gespeichert
    
    
        DllCall("user32.dll", "long", "SystemParametersInfo" _  ; Funktion SystemParameterInfo aus user32.dll
    			, "long", $SPI_GETDESKWALLPAPER _               ; Desktop-Hintergrundbild soll gelesen werden
    			, "long", 255 _                                 ; Maximale Pfad
    			, "ptr", DllStructGetPtr($Filename) _           ; Zeiger auf die Struktur die den Pfad speichert
    			, "long", 0 _                                   ; Parameter wird für diese Funktion nicht benötigt
    			) 
    
    	Return DllStructGetData($Filename, 1)  ; Name der Bitmap zurückgeben
    EndFunc   ;==>_GetDeskWallpaper
    Alles anzeigen

    Ansonsten findest du viele Beispiele in den Include-Dateien von AutoIt, einen guten ApieViewer und viele Informationen über Funktionen in den System-DLL's findest du hier http://www.activevb.de/rubriken/apivi…-apiviewer.html

  • Compilierte exe als Dienst/Service laufen lassen.

    • bernd670
    • 3. August 2006 um 00:44

    Ich kann das Programm als Dienst einrichten und laufen lassen!

    Ich habe noch ein paar Änderungen an der Run-Zeile vorgenommen, so wie du es geschrieben hast ist es bei mir nicht gelaufen!

    Spoiler anzeigen
    C
    ; ========================================================
    ; Includes
    ; ========================================================
    #Include <Date.au3>
    #include <array.au3>
    #Include <process.au3>
    #NoTrayIcon
    ; ========================================================
    ; Constanten, Array und Variablen anlegen
    ; ========================================================
    Global Const $JobInI = @ScriptDir & "\Service_Jobs.ini"
    Global $JobsMax
    Global $arrayJobTime[1]
    Global $arrayJobNumbers[1]
    ; ========================================================
    ; Functionen
    ; ========================================================
    Func _JobNumbersReadInI()
    	$JobNumbersInI = IniReadSectionNames(@ScriptDir & "\Service_Jobs.ini")
    	If @error Then 
    		MsgBox(4096, "", "Kann InI nicht finden oder lesen")
    	Else
    		$JobsMax = $JobNumbersInI[0]
    		$arrayJobNumbers[0] = $JobsMax
    		$i=1
    		While $i <= $JobsMax
    			_ArrayAdd($arrayJobNumbers, $JobNumbersInI[$i])
    			$i = $i + 1
    		WEnd
    		;_ArrayDisplay($arrayJobNumbers, "Test")
    	EndIf
    EndFunc
    
    
    Func _JobTimeReadInI()
    	$i = 1
    	While $i <= $JobsMax
    		$z = IniRead($JobInI, 'Job_' & $i, 'Tag_' & @WDAY, "error")
    		_ArrayAdd($arrayJobTime, $z)
    		$i =  $i + 1
    	WEnd
    	;_ArrayDisplay($arrayJobTime, "Test")
    EndFunc
    ;
    Func _JobStartNow()
    	$TimeNow =  @HOUR & ':' & @MIN
    	$i = 1
    	While $i <= $JobsMax
    		If $arrayJobTime[$i] = $TimeNow Then
    			$RunTaskPath = IniRead($JobInI, 'Job_' & $i, "Pfad", "error")
    			$RunTaskFile = IniRead($JobInI, 'Job_' & $i, "Dateiname", "error")
    			$RunTaskPara = IniRead($JobInI, 'Job_' & $i, "Parameter", "error")
                MsgBox(0,"", $RunTaskPath & @CRLF & $RunTaskFile & @CRLF & $RunTaskPara)
    			If Not ProcessExists($RunTaskFile) Then
    				If $RunTaskFile <> "error" And $RunTaskPath <> "error" Then
    				;$rc = RunWait(@ComSpec & ' /c ' & '"' & $RunTask & '"')
    ;~ 				$rc = _RunDOS($RunTaskPath & $RunTaskFile & ' ' & $RunTaskPara)
                    $rc = Run(StringStripWS($RunTaskPath & $RunTaskFile & ' ' & $RunTaskPara,3),$RunTaskPath, @SW_HIDE)
    				EndIf
    			EndIf
    		EndIf
    		$i = $i + 1
    	WEnd
    EndFunc
    ; =========================================================
    _JobNumbersReadInI()
    _JobTimeReadInI()
    ;_JobStartNow()
    AdlibEnable("_JobStartNow",60000)
    While 1
        Sleep(200)
    WEnd
    Alles anzeigen

    Mit diesem Script habe ich den Dienst eingerichtet:

    Spoiler anzeigen
    C
    ;-------------------------------------
    ;
    ; Run AutoIT Scripts as a service
    ; PTREX 03/11/2005
    ;
    ;-------------------------------------
    #include <GUIConstants.au3>
    #include <Process.au3>
    
    
    #NoTrayIcon
    
    
    ;Declare Vars
    Global $objWMIService
    Global $strComputer = "."
    
    
    Const $OWN_PROCESS = 16;16 is own process
    Const $INTERACTIVE = true;True changes the $Own_Process to 272 is interact with desktop
    Const $NORMAL_ERROR_CONTROL = 1
    Dim $Script, $SrvAny, $info, $Help, $ServiceName = "Service_Jobs"
    
    
    ;Main Gui
    ;Generated with Form Designer preview, great Job !!
    GUICreate("CreateService",500,160)
    GUICtrlCreateLabel("SRVANY.EXE", 30,32)
    $IB_SrvAny = GUICtrlCreateInput($SrvAny,150,30,250)
    $But_SrvAny = GUICtrlCreateButton("...",410,30,20,20)
    GUICtrlCreateLabel("Service_Jobs.exe", 30,57)
    $IB_Script = GUICtrlCreateInput($Script,150,55,250)
    $But_Script = GUICtrlCreateButton("...",410,55,20,20)
    $But_InstallService = GUICtrlCreateButton("Install Service",30,90,120)
    $But_StartService = GUICtrlCreateButton("Start Service",170,90,120)
    $But_DeleteService = GUICtrlCreateButton("Delete Service",30,120,120)
    $But_StopService = GUICtrlCreateButton("Start Service",170,120,120)
    
    
    GUISetState(@SW_SHOW)
    
    
    While 1
        $msg = GuiGetMsg()
        Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $msg = $But_SrvAny
            _File_Open()
        Case $msg = $But_Script
            _Select_Script()
        Case $msg = $But_InstallService
            _Install_Service()
        Case $msg = $But_DeleteService
            _Delete_Service()
        Case $msg = $But_StartService
            _Start_Service()
        case $msg = $But_StopService
            _Stop_Service()
        EndSelect
    WEnd
    Exit
    
    
    ;Functions
    Func _File_Open()
        $FileOD = FileOpenDialog("Select SrvAny.exe File", @SystemDir, "EXE (*.exe)", 3)
        $File = FileOpen($FileOD, 0)
        If $File = -1 Then
            MsgBox(0, "Error", "Unable to open file, or no file selected !!")
        Else
            GUICtrlSetData($IB_SrvAny,Chr(34) & $FileOD  & chr(34))
            $SrvAny = (Chr(34) & $FileOD  & chr(34) )
        EndIf
        FileClose($File)
    EndFunc
    
    
    Func _Select_Script()
        $FileOD = FileOpenDialog("Select Au3 Script File", "C:\", "EXE (*.exe)", 3)
        $File = FileOpen($FileOD, 0)
        If $File = -1 Then
            MsgBox(0, "Error", "Unable to open file, or no file selected !!")
        Else
            GUICtrlSetData($IB_Script,Chr(34) & $FileOD  & chr(34))
            $Script = (Chr(34) & $FileOD  & chr(34) )
        EndIf
        FileClose($File)
    Endfunc
    
    
    Func _Install_Service()
        If $SrvAny = "" Then
        MsgBox(0,"Warning ", "Select the SrvAny.exe using the File Open first")
        Else
        MsgBox(0,"Information","This has to be activated only ONCE !!")
        $objWMIService = ObjGet("winmgmts:" & "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
        $objService = $objWMIService.Get("Win32_BaseService")
        $errReturn = $objService.Create($ServiceName ,$ServiceName , $SrvAny, $OWN_PROCESS, $NORMAL_ERROR_CONTROL, _
        "Manual", $INTERACTIVE, "LocalSystem", ""  )
        _Assign_Script()
        _Interact_Desktop()
        EndIf
    EndFunc
    
    Func _Delete_Service()
        $objWMIService = ObjGet("winmgmts:" & "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
        $colListOfServices = $objWMIService.ExecQuery ("Select * from Win32_Service Where Name = '" & $ServiceName & "'")
            For $objService in $colListOfServices
                $objService.StopService()
                $objService.Delete()
        Next
    EndFunc
    
    
    Func _Start_Service()
        Local $var1 = RegRead("HKLM\SYSTEM\CurrentControlSet\Services\" & $ServiceName, "ImagePath")
        If @error = -1 or StringRight ($var1, 11) <> "SrvAny.exe"&chr(34) Then
            MsgBox(4096,"",  "RegKey SrvAny not yet created, or not correct"&$var1)
        Else
            Local $var2 = RegRead("HKLM\SYSTEM\CurrentControlSet\Services\" & $ServiceName & "\Parameters", "Application")
            If @error = 1 Then
            MsgBox(0,"Warning","No Script has been assigned yet to the Any service!!")
            EndIf
        _RunDos("Net start " & $ServiceName)
        EndIf
    EndFunc
    
    
    Func _Stop_Service()
        _RunDos("Net stop " & $ServiceName)
    EndFunc
    
    
    Func _Open_Services()
        _RunDos("services.msc")
    EndFunc
    
    
    Func _Interact_Desktop()
        Local $var1 = RegRead("HKLM\SYSTEM\CurrentControlSet\Services\" & $ServiceName, "ImagePath")
        if @error = -1 or StringRight ($var1, 11) <> "SrvAny.exe"&chr(34) Then
            MsgBox(4096,"",  "RegKey not yet created, or not correct")
            RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\" & $ServiceName, "Type", "REG_DWORD", "272")
    ;~         RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\" & $ServiceName, "Type", "REG_DWORD", "16")
        EndIf
    EndFunc
    
    
    Func _Assign_Script()
            Local $var1 = RegRead("HKLM\SYSTEM\CurrentControlSet\Services\" & $ServiceName, "ImagePath")
        if @error = -1 or StringRight ($var1, 11) <> "SrvAny.exe"&chr(34) Then
            MsgBox(4096,"",  "RegKey not yet created, or not correct")
        Else
            RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\" & $ServiceName & "\Parameters", "AppDirectory", "REG_SZ", @WorkingDir)
            RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\" & $ServiceName & "\Parameters", "Application", "REG_SZ", $Script)
        EndIf
    EndFunc
    Alles anzeigen


    Ich habe das Scirpt etwas angepasst.

    Noch ein kliener Tipp: Die Leerzeichen in der Ini-Datei (vor und nach "=") kann zu problemen führen! ;) Am besten ohne Leerzeichen schreiben!

  • Compilierte exe als Dienst/Service laufen lassen.

    • bernd670
    • 2. August 2006 um 21:13

    Hallo,

    den Aufruf

    Code
    AdlibEnable("_JobStartNow")


    solltest du vor die While-Schleife schreiben und den Paramter für Zeit auf ca. 15sek. stellen

    Code
    AdlibEnable("_JobStartNow",15000)
    While 1
        Sleep(200) ; Prozessorlast verringern
    WEnd

    Das bewirkt das alle 15 sek. die Funktion _JobStartNow() aufgerufen wird.
    Ohne Zeitangabe wird die Funktion alle 250ms aufgerufen.

  • BlockInput

    • bernd670
    • 2. August 2006 um 18:19

    @th.meger, an die Funktion habe ich auch gedacht! ;)

    Hier ein kleines Beispiel, mit Shift+Alt+h kann die Mause angehalten und wieder freigegeben werden:

    Code
    #include <Misc.au3>
    
    
    HotKeySet("+!h","_holdMouse")
    
    
    Func _holdMouse()
        $Pos = MouseGetPos()
        _MouseTrap($Pos[0],$Pos[1])
        HotKeySet("+!h","_releaseMouse")
    EndFunc
    
    
    Func _releaseMouse()
        _MouseTrap()
        HotKeySet("+!h","_holdMouse")
    EndFunc
    
    
    
    
    While 1
        Sleep(200)
    WEnd
    Alles anzeigen
  • BlockInput

    • bernd670
    • 1. August 2006 um 23:02

    Soll die Maus komplett deaktivert werden oder soll man sie nur nicht mehr bewegen können. Sprich sollen die Maustasten noch aktiv sien?

  • frage zu _IsPressed

    • bernd670
    • 1. August 2006 um 21:52

    Hallo,

    bei mir wird nix blockiert, aber vllt. hilft ja ein MouseUp("right") vor MouseClick!

  • Incremental Backup ...

    • bernd670
    • 1. August 2006 um 18:04

    Hallo,

    im Microsoft Resource Kit (oder hier) gibt es ein Tool namens Robocopy, das ist genau für solche Aufgaben gedacht!

  • Datei mit fester Feldlänge

    • bernd670
    • 31. Juli 2006 um 01:19

    Für MySQL benötigst du einen ODBC-Treiber und die UDF für MySQL.

    Für SQLite findest auf Wiki einige Weblinks für Software und Tools, wichtig ist die sqlite3.dll und die UDF für SQLite. Beispiele findest du hier im Galenda-Projekt und im engl. Forum!

  • Datei mit fester Feldlänge

    • bernd670
    • 30. Juli 2006 um 23:06

    Hallo,

    es gibt eine UDF für MySQL allerdings benötigst du dann aber auch enen Server auf dem MySQL läuft. SQLite hingegen arbeitet mit Dateien und ist somit flexibler aber dafür etwas eingeschränkt im Funktionsumfang.

  • @SW_RESTORE klappt nicht

    • bernd670
    • 30. Juli 2006 um 19:21

    Probiers mal mit

    Code
    GUICtrlSetData($butt_lm_pos,$label[31] & $lm_butt_x & ", " & $lm_butt_y)
  • @SW_RESTORE klappt nicht

    • bernd670
    • 30. Juli 2006 um 19:02

    Stimmt, ist scheinbar ein Bug in der Prod, da geht es nicht! Wurde in der Version v3.1.0.15S (beta) behoben!

  • @SW_RESTORE klappt nicht

    • bernd670
    • 30. Juli 2006 um 18:48

    Hallo,

    ich habe mal ein Beispiel gebastelt, da funktioniert @SW_RESTORE ohne Probleme:

    Code
    #include <GUIConstants.au3>
    
    
    GUICreate ("My GUI")                ; start the definition
    
    
    GUISetState(@SW_SHOW)               ; will display an empty dialog box
    Sleep(3000)                         ; nach 3 sec. 
    GUISetState(@SW_MINIMIZE)           ; minimieren
    Sleep(3000)                         ; nach weiteren 3 sec. 
    GUISetState(@SW_RESTORE)            ; wieder herstellen
    
    
    ; Run the GUI until the dialog is closed
    While 1
        $msg = GUIGetMsg()
    
        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    Wend
    Alles anzeigen

    Evtl. mal den kompletten Code posten!

    Übrigens, um Hotkeys wieder aufzuheben brauchst du nur

    Code
    HotKeySet("^+{SPACE}")


    zu schreiben! ;)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™