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. mirko2002

Beiträge von mirko2002

  • Smartphone GUI

    • mirko2002
    • 26. Februar 2012 um 21:48

    Ich habe das ganze jetzt mal etwas weiterentwickelt... der Code ist zwar sicherlich nicht der sauberste - erfüllt aber seinen Zweck. Neue Dateien + Quellcode sind im ersten Beitrag neu eingefügt und die alten habe ich entfernt.

    *Neuerungen*
    Man kann, nachdem das Handy geöffnet wurde, unten den "Menu" Button klicken. Daraufhin öffnet sich das Handymenü... natürlich noch ohne Funktion - das kann dann später evtl mal kommen.

    Hier brauche ich jedoch Hilfe von Euch. Der Menu-Button ruft eine While-Schleife auf. Solange diese Schleife aktiv ist, funktioniert zwar das Hauptmenü - jedoch sind natürlich alle anderen Sachen dann deaktiviert (wie zum Beispiel der Close/Exit-Button etc.

    Wie kann ich die Whileschleife verlassen, so das alles weiterhin funktioniert? Exitloop brachte nicht das gewünschte Ergebniss, da dann zwar so im allgemeinem alles funktioniert - jedoch das Hauptmenü mit den Hovereffekten dann ausser Kraft gesetzt wird.

  • Smartphone GUI

    • mirko2002
    • 25. Februar 2012 um 13:05

    Danke für die Feedbacks ;)

    Joah das Androidsystem da zu includieren werd ich sicher nicht machen.

    Aber dank machbarer Hover Effekten und GUI HIDE/SHOW Befehlen kann man, denke ich, locker eine Art Menü mit Funktion nachbasteln.

    Werd mich da mal ranmachen...

    Was aktuell in dem jetzigen Code nicht funktioniert ist die Minimize Funktion... bin aber am überlegen ob ich die generell einfach entferne.

    Schmaler ewrd ich's auch noch etwas machen - ist mir gestern Nacht dann später auch aufgfallen im Vergleich zum originalen Bild ^^

  • Smartphone GUI

    • mirko2002
    • 25. Februar 2012 um 02:38

    Ich hab etwas Langeweile gehabt und war in den letzten Tagen immer wieder auf der Suche nach "schicken" GUI's die man so mit AutoIT erstellen könnte.

    Leider wird man über Google kaum fündig - oder ich hab einfach falsch gesucht, meist waren die Treffer doch nur Guides wie man überhaupt eine GUI erstellen kann (im allgemeinen) oder es wurde alles mit GDI+ gemacht (was mir persönlich ne Stufe zu hoch ist ;) ).

    Daher habe ich hier mal eine GUI erstellt, die wie das HTC Desire HD ausschaut (weil ich es zufälligerweise besitze)... über Sinn und Funktionalität läßt sich natürlich streiten. Auch ist der Code nicht komplett von mir, da ich mich einiger Codeschnipsel bedient habe um zum Beispiel die Runden GUI Ecken darzustellen oder die Hovereffekte für die Buttons zu realisieren (wenn gewünscht mit Animation).

    Aber lange Rede, kurzer Sinn... hier das Script. Im Anhang das ganze auch als Komplettpaket zum Download + Vorschaubilder.

    *Neuerungen*
    26.02.2012 (v1.1)
    Man kann, nachdem das Handy geöffnet wurde, unten den "Menu" Button klicken. Daraufhin öffnet sich das Handymenü... natürlich noch ohne Funktion - das kann dann später evtl mal kommen.

    27.02.2012 (v1.2)
    Browser/Suche eingebaut

    Spoiler anzeigen
    [autoit]


    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #include <WinAPI.au3>
    #include <GDIPlus.au3>
    #include <IE.au3>
    #include 'Buttons.au3'

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)
    Opt("MouseCoordMode", 2) ;Damit die Koords der Maus auf dem Button korrekt erkannt werden.

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()

    [/autoit] [autoit][/autoit] [autoit]

    $Title = "HTC Desire HD"
    $Width = 300
    $Height = 500
    $pics = @ScriptDir & "\images\"

    [/autoit] [autoit][/autoit] [autoit]

    ; Konstanten
    Global Const $BgColorTitle = 0x000000
    Global Const $BgColor = 0x464646

    [/autoit] [autoit][/autoit] [autoit]

    ; Handyrahmen aussen
    $hWnd_Main = GUICreate($Title, $Width, $Height, -1, -1, $WS_POPUP)
    GUISetBkColor($BgColor)
    $Close = GUICtrlCreatePic($pics & "close.bmp", $Width - 16, 7, 9, 9)
    GUICtrlSetOnEvent($Close, "_Exit")
    $TitleBar = GUICtrlCreateLabel("", 6, 4, $Width - 42, 17, -1, $GUI_WS_EX_PARENTDRAG)
    GUICtrlCreatePic($pics & "HTC-Lautsprecher.bmp", 65, 6, 180, 10)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    ; Handydisplay erstellen
    $hWnd_Child1 = GUICreate("", 290, 475, 5, 20, $WS_POPUP)
    GUISetBkColor(0xFFFFFF, $hWnd_Child1)

    [/autoit] [autoit][/autoit] [autoit]

    $IE = _IECreateEmbedded()
    $browser = GUICtrlCreateObj($IE, 11, 13, 268, 395)
    GUICtrlSetState($browser, $GUI_HIDE)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ GUICtrlCreatePic($pics & "HTC-Brilliant.bmp", 15, 130, 260, 165)
    Global $hImg_HTC_Brilliant = _GDIPlus_ImageLoadFromFile($pics & "HTC-Brilliant.bmp")

    [/autoit] [autoit][/autoit] [autoit]

    $home_button = GUICtrlCreatePic($pics & "menu1.bmp", 15, 410, 51, 38)
    GUICtrlSetOnEvent($home_button, "_home_button")
    $menu_button = GUICtrlCreatePic($pics & "menu2.bmp", 66, 410, 82, 38)
    GUICtrlSetOnEvent($menu_button, "_menu_button")
    $back_button = GUICtrlCreatePic($pics & "menu3.bmp", 148, 410, 76, 38)
    GUICtrlSetOnEvent($back_button, "_back_button")
    $suche_button = GUICtrlCreatePic($pics & "menu4.bmp", 224, 410, 49, 38)
    GUICtrlSetOnEvent($suche_button, "_suche_button")
    GUICtrlCreatePic($pics & "HTC-Logo.bmp", 120, 445, 55, 20)

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd_Child1)
    Global Const $hBitmap = _GDIPlus_BitmapCreateFromGraphics($Width, 410, $hGraphic)
    Global Const $hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    Global Const $hBitmap1 = _GDIPlus_BitmapCreateFromGraphics(270, 400, $hGraphic)
    Global Const $hBackbuffer1 = _GDIPlus_ImageGetGraphicsContext($hBitmap1)

    [/autoit] [autoit][/autoit] [autoit]

    ; Hintergrund/Rahmen des Handydisplays
    GUICtrlCreateGraphic(0, 0, 330, 12)
    GUICtrlSetBkColor(-1, $BgColorTitle)
    GUICtrlCreateGraphic(0, 0, 10, $Height)
    GUICtrlSetBkColor(-1, $BgColorTitle)
    GUICtrlCreateGraphic(0, 410, $Width, 80)
    GUICtrlSetBkColor(-1, $BgColorTitle)
    GUICtrlCreateGraphic(280, 0, 20, $Height)
    GUICtrlSetBkColor(-1, $BgColorTitle)

    [/autoit] [autoit][/autoit] [autoit]

    ; Menü
    Global $hButton1 = _Button_Init(20, 30, 45, 45, 1)
    _Button_Set_Pic($hButton1, 0, $pics & 'home1.bmp')
    _Button_Set_Pic($hButton1, 1, $pics & 'home2.bmp')
    _Button_Set_Pic($hButton1, 2, $pics & 'home3.bmp')

    [/autoit] [autoit][/autoit] [autoit]

    Global $hButton2 = _Button_Init(120, 30, 45, 45, 2)
    _Button_Set_Pic($hButton2, 0, $pics & 'info1.bmp')
    _Button_Set_Pic($hButton2, 1, $pics & 'info2.bmp')
    _Button_Set_Pic($hButton2, 2, $pics & 'info3.bmp')

    [/autoit] [autoit][/autoit] [autoit]

    Global $hButton3 = _Button_Init(220, 30, 45, 45, 3)
    _Button_Set_Pic($hButton3, 0, $pics & 'alben1.bmp')
    _Button_Set_Pic($hButton3, 1, $pics & 'alben2.bmp')
    _Button_Set_Pic($hButton3, 2, $pics & 'alben3.bmp')

    [/autoit] [autoit][/autoit] [autoit]

    Global $hButton4 = _Button_Init(20, 100, 45, 45, 4)
    _Button_Set_Pic($hButton4, 0, $pics & 'media1.bmp')
    _Button_Set_Pic($hButton4, 1, $pics & 'media2.bmp')
    _Button_Set_Pic($hButton4, 2, $pics & 'media3.bmp')

    [/autoit] [autoit][/autoit] [autoit]

    Global $hButton5 = _Button_Init(120, 100, 45, 45, 5)
    _Button_Set_Pic($hButton5, 0, $pics & 'kamera1.bmp')
    _Button_Set_Pic($hButton5, 1, $pics & 'kamera2.bmp')
    _Button_Set_Pic($hButton5, 2, $pics & 'kamera3.bmp')

    [/autoit] [autoit][/autoit] [autoit]

    Global $hButton6 = _Button_Init(220, 100, 45, 45, 6)
    _Button_Set_Pic($hButton6, 0, $pics & 'nachrichten1.bmp')
    _Button_Set_Pic($hButton6, 1, $pics & 'nachrichten2.bmp')
    _Button_Set_Pic($hButton6, 2, $pics & 'nachrichten3.bmp')

    [/autoit] [autoit][/autoit] [autoit]

    Global $hButton7 = _Button_Init(20, 170, 45, 45, 7)
    _Button_Set_Pic($hButton7, 0, $pics & 'home1.bmp')
    _Button_Set_Pic($hButton7, 1, $pics & 'home2.bmp')
    _Button_Set_Pic($hButton7, 2, $pics & 'home3.bmp')

    [/autoit] [autoit][/autoit] [autoit]

    Global $hButton8 = _Button_Init(120, 170, 45, 45, 8)
    _Button_Set_Pic($hButton8, 0, $pics & 'home1.bmp')
    _Button_Set_Pic($hButton8, 1, $pics & 'home2.bmp')
    _Button_Set_Pic($hButton8, 2, $pics & 'home3.bmp')

    [/autoit] [autoit][/autoit] [autoit]

    Global $hButton9 = _Button_Init(220, 170, 45, 45, "9")
    _Button_Set_Pic($hButton9, 0, $pics & 'home1.bmp')
    _Button_Set_Pic($hButton9, 1, $pics & 'home2.bmp')
    _Button_Set_Pic($hButton9, 2, $pics & 'home3.bmp')

    [/autoit] [autoit][/autoit] [autoit]

    Global $Btn_msg
    Global $pos, $klick
    Global $Temp
    Global $Anzeige = 0 ; 0 = home, 1 = Menu, usw...
    Local $t = TimerInit()

    [/autoit] [autoit][/autoit] [autoit]

    ; Display an Handyrahmen "koppeln"
    _SetParent($hWnd_Main, $hWnd_Child1)

    [/autoit] [autoit][/autoit] [autoit]

    ; Gui einblenden
    GuiRoundCorners($hWnd_Main, 0, 0, 20, 20)
    GuiRoundCorners($hWnd_Child1, 0, 0, 20, 20)
    WinSetTrans($hWnd_Main, "", 0)
    WinSetTrans($hWnd_Child1, "", 0)
    GUISetState(@SW_SHOW, $hWnd_Main)
    GUISetState(@SW_SHOW, $hWnd_Child1)
    FadeIn($hWnd_Main)

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(50)

    [/autoit] [autoit][/autoit] [autoit]

    Switch $Anzeige
    Case 0 ; Home
    _home()
    Case 1 ; Menu
    _menu()
    Case 2 ; Suche
    _back()
    Case 3 ; Suche
    _suche()
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    ; Funktionen
    Func _SetParent($hWnd_Parent, $hWnd_Child)
    $nExStyle = DllCall("user32.dll", "int", "GetWindowLong", "hwnd", $hWnd_Child, "int", 0xEC)
    DllCall("user32.dll", "int", "SetWindowLong", "hwnd", $hWnd_Child, "int", 0xEC, "int", BitOR($nExStyle[0], $WS_EX_MDICHILD))
    DllCall("user32.dll", "int", "SetParent", "hwnd", $hWnd_Child, "hwnd", $hWnd_Parent)
    GUISwitch($hWnd_Parent)
    EndFunc ;==> _SetParent

    [/autoit] [autoit][/autoit] [autoit]

    Func GuiRoundCorners($h_win, $i_x1, $i_y1, $i_x3, $i_y3)
    $pos = WinGetPos($h_win)
    $ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", $i_x1, "long", $i_y1, "long", $pos[2], "long", $pos[3], "long", $i_x3, "long", $i_y3)
    If $ret[0] Then
    $ret2 = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $ret[0], "int", 1)
    If $ret2[0] Then
    Return 1
    Else
    Return 0
    EndIf
    Else
    Return 0
    EndIf
    EndFunc ;==>GuiRoundCorners

    [/autoit] [autoit][/autoit] [autoit]

    Func FadeIn($h)
    For $i = 0 To 255 Step 15
    Sleep(10)
    WinSetTrans($h, "", $i)
    Next
    EndFunc ;==>FadeIn

    [/autoit] [autoit][/autoit] [autoit]

    Func FadeOut($h)
    For $i = 255 To 0 Step -15
    Sleep(10)
    WinSetTrans($h, "", $i)
    Next
    EndFunc ;==>FadeOut

    [/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    FadeOut($hWnd_Main)
    GUIDelete($hWnd_Child1)

    [/autoit] [autoit][/autoit] [autoit]

    _Button_Dispose($hButton1)
    _Button_Dispose($hButton2)
    _Button_Dispose($hButton3)
    _Button_Dispose($hButton4)
    _Button_Dispose($hButton5)
    _Button_Dispose($hButton6)
    _Button_Dispose($hButton7)
    _Button_Dispose($hButton8)
    _Button_Dispose($hButton9)

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_GraphicsDispose($hBackbuffer)
    _GDIPlus_GraphicsDispose($hBackbuffer1)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_BitmapDispose($hBitmap1)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
    Exit
    EndFunc ;==>_Exit

    [/autoit] [autoit][/autoit] [autoit]

    Func _home_button()
    $Anzeige = 0
    GUICtrlSetState($browser, $GUI_HIDE)
    EndFunc ;==>_home_button

    [/autoit] [autoit][/autoit] [autoit]

    Func _menu_button()
    $Anzeige = 1
    GUICtrlSetState($browser, $GUI_HIDE)
    EndFunc ;==>_menu_button

    [/autoit] [autoit][/autoit] [autoit]

    Func _back_button()
    $Anzeige = 2 ;
    GUICtrlSetState($browser, $GUI_HIDE)
    EndFunc ;==>_back_button

    [/autoit] [autoit][/autoit] [autoit]

    Func _suche_button()
    $Anzeige = 3
    EndFunc ;==>_suche_button

    [/autoit] [autoit][/autoit] [autoit]

    Func _home()
    _GDIPlus_GraphicsClear($hBackbuffer1, 0xFFFFFFFF)
    _GDIPlus_GraphicsDrawImageRect($hBackbuffer1, $hImg_HTC_Brilliant, 5, 120, 260, 165)
    ; Hier was auch immer du willst...
    _GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap1, 10, 10)
    EndFunc ;==>_home

    [/autoit] [autoit][/autoit] [autoit]

    Func _menu()
    _GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
    $Btn_msg = _Button_Get_Pressed()
    _Button_Draw($hBackbuffer, $hButton1)
    _Button_Draw($hBackbuffer, $hButton2)
    _Button_Draw($hBackbuffer, $hButton3)
    _Button_Draw($hBackbuffer, $hButton4)
    _Button_Draw($hBackbuffer, $hButton5)
    _Button_Draw($hBackbuffer, $hButton6)
    _Button_Draw($hBackbuffer, $hButton7)
    _Button_Draw($hBackbuffer, $hButton8)
    _Button_Draw($hBackbuffer, $hButton9)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap, 0, 0)
    ; If $Btn_msg Then ToolTip('ButtonID: ' & $Btn_msg)
    If $Btn_msg = "1" Then
    $Anzeige = 0
    ElseIf $Btn_msg = "2" Then
    MsgBox(64,"","Menu 2")
    ElseIf $Btn_msg = "3" Then
    MsgBox(64,"","Menu 3")
    ElseIf $Btn_msg = "4" Then
    MsgBox(64,"","Menu 4")
    ElseIf $Btn_msg = "5" Then
    MsgBox(64,"","Menu 5")
    ElseIf $Btn_msg = "6" Then
    MsgBox(64,"","Menu 6")
    ElseIf $Btn_msg = "7" Then
    MsgBox(64,"","Menu 7")
    ElseIf $Btn_msg = "8" Then
    MsgBox(64,"","Menu 8")
    ElseIf $Btn_msg = "9" Then
    $Anzeige = 2
    EndIf
    EndFunc ;==>_menu

    Func _back()
    _GDIPlus_GraphicsClear($hBackbuffer1, 0xFFFFFFFF)
    _GDIPlus_GraphicsDrawImageRect($hBackbuffer1, $hImg_HTC_Brilliant, 5, 120, 260, 165)
    ; Hier was auch immer du willst...
    _GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap1, 10, 10)
    EndFunc ;==>_back

    Func _suche()
    GUICtrlSetState($browser, $GUI_SHOW)
    _IENavigate($IE,"http://www.google.com/xhtml")
    $Anzeige = -1
    EndFunc ;==>_suche

    [/autoit]

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    [EDIT]:
    Alte Anhänge entfernt
    Handy GUI.rar (40,96 kB - 19 mal heruntergeladen - zuletzt: 27.02.2012, 19:24)
    Handy GUI 26.02.2012.rar (65,6 kB - 17 mal heruntergeladen - zuletzt: 27.02.2012, 19:56)

    Dateien

    Handy GUI 27.02.2012.rar 66,38 kB – 575 Downloads htc_autoit.png 174,78 kB – 0 Downloads
  • IE Tab URL auslesen funktioniert nicht

    • mirko2002
    • 9. Februar 2012 um 12:28

    Gibts eine Erklärung was genau dein Codeschnipsel macht? Bin gerade noch auf Arbeit und kanns nicht testen :(

    Lieben Dank!

  • IE Tab URL auslesen funktioniert nicht

    • mirko2002
    • 9. Februar 2012 um 08:32

    Hallo,

    sorry für die verspätete Antwort, hatte arbeitbedingt viel zu tun.

    Auf Deine Frage zu beantworten ob es denn Tabs sein müssen: Ja!

    Warum? Ganz einfach - das ganze soll für uns hier auf Arbeit verwendet werden. Dort sind unsere Rechte soweit eingeschränkt, dass wir die Taskleiste nicht vergrößern können oder mehrere Elemente eines Programms gruppieren lassen können.
    Da wir zusätzlich etliche Programme am laufen haben ist so schon unsere Taskleiste brechend voll und unübersichtlich. Daher sind wir auf Tabbed-Browsing komplett angewiesen.

    Auch soll der User zwar alle Tabs öffnen können, bei Bedarf die Adresse aber jederzeit wecheln können und Tabs hin- und her ziehen können.

    So wie beim IE halt. Firefox dürfen wir leider nicht installieren also kann ich darauf auch nicht zurückgreifen.

    Soweit ich Deine Aussagen also verstanden habe ist damit mein Versuch also gescheitert, oder?

  • IE Tab URL auslesen funktioniert nicht

    • mirko2002
    • 3. Februar 2012 um 14:59

    Danke für die Antwort, jedoch hilft leider der Vorschlag, stattdessen _IECreate zu verwenden nicht, da er somit neue Fenster, statt neue Tabs öffnet. Bei meinem Skript sind das mal eben 9 IE Fenster die sich öffnen. Genau das soll ja mit den Tabs umgegangen werden, was mit der __IENavigate auch wunderbar funktioniert. Mit der originalen _IENavigate lassen sich halt keine weiteren Tabs öffnen, sondern nur von einer URL zur nächsten navigieren.

    Nur das auslesen der URL scheint mit __IENavigate schier unmöglich...

    Da ich das Tool hier für meine Arbeit schreibe und wir auch nur den IE nutzen dürfen, kann ich somit nicht auf die FF Variante zurückgreifen.

    Gibts denn irgendeinen Trick, wie ich im IE einfach an die URL's der offenen Tabs komme?

  • IE Tab URL auslesen funktioniert nicht

    • mirko2002
    • 3. Februar 2012 um 12:38

    Hallo AutoIt'ler

    ich versuche gerade krampfhaft in einem IE Fenster, wo mehrere TABs geöffnet sind, dessen URL auszulesen.

    Für ein einzelnes IE Fenster funktioniert es wunderbar. Sobald jedoch Tabs ins Spiel kommen liest er dennoch immer die URL des ersten Tab aus - obwohl z.b. das letzte aktiv / im Fokus ist.

    Hier mal der Code (ist nicht vollständig, war erst nur zum testen):

    [autoit]


    #include <GUIConstantsEx.au3>
    #include <IE.au3>

    [/autoit][autoit][/autoit][autoit]

    GUICreate("IE Session Manager", 300, 200)

    [/autoit][autoit][/autoit][autoit]

    GUICtrlCreateLabel("Gespeicherte Session:", 10, 28)
    GUICtrlSetFont(-1, 8, 400, 4, "Arial")

    [/autoit][autoit][/autoit][autoit]

    $button = GUICtrlCreateButton("Internet öffnen", 120, 5)

    [/autoit][autoit][/autoit][autoit]

    $var1 = "http://www.google.de"
    $var2 = "http://www.ebay.de"
    $var3 = "http://www.google.com"
    $var4 = "http://www.wikipedia.org"
    $var5 = "http://www.google.de"
    $var6 = "http://www.google.de"
    $var7 = "http://www.google.de"
    $var8 = "http://www.google.de"
    $var9 = "http://www.google.de"

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    GUICtrlCreateLabel($var1, 20, 45)
    GUICtrlCreateLabel($var2, 20, 60)
    GUICtrlCreateLabel($var3, 20, 75)
    GUICtrlCreateLabel($var4, 20, 90)
    GUICtrlCreateLabel($var5, 20, 105)
    GUICtrlCreateLabel($var6, 20, 120)
    GUICtrlCreateLabel($var7, 20, 135)
    GUICtrlCreateLabel($var8, 20, 150)
    GUICtrlCreateLabel($var9, 20, 165)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    GUISetState()

    [/autoit][autoit][/autoit][autoit]

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $button
    _start()
    EndSwitch
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func _start()
    $oIE = _IECreate($var1)
    $oIE1 = __IENavigate($oIE, $var2, 0, 0x800)
    $oIE2 = __IENavigate($oIE, $var3, 0, 0x800)
    $oIE3 = __IENavigate($oIE, $var4, 0, 0x800)
    $oIE4 = __IENavigate($oIE, $var5, 0, 0x800)
    $oIE5 = __IENavigate($oIE, $var6, 0, 0x800)
    $oIE6 = __IENavigate($oIE, $var7, 0, 0x800)
    $oIE7 = __IENavigate($oIE, $var8, 0, 0x800)
    $oIE8 = __IENavigate($oIE, $var9, 0, 0x800)

    [/autoit][autoit][/autoit][autoit]

    $test = _IEPropertyGet ($oIE, "locationurl")
    $test1 = _IEPropertyGet ($oIE1, "locationurl")
    $test2 = _IEPropertyGet ($oIE2, "locationurl")
    $test3 = _IEPropertyGet ($oIE3, "locationurl")
    $test4 = _IEPropertyGet ($oIE4, "locationurl")
    $test5 = _IEPropertyGet ($oIE5, "locationurl")
    $test6 = _IEPropertyGet ($oIE6, "locationurl")
    $test7 = _IEPropertyGet ($oIE7, "locationurl")
    $test8 = _IEPropertyGet ($oIE8, "locationurl")

    [/autoit][autoit][/autoit][autoit]

    Sleep(15000)

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0,"", $test)
    MsgBox(0,"", $test1)
    MsgBox(0,"", $test2)
    MsgBox(0,"", $test3)
    MsgBox(0,"", $test4)
    MsgBox(0,"", $test5)
    MsgBox(0,"", $test6)
    MsgBox(0,"", $test7)
    MsgBox(0,"", $test8)
    EndFunc

    [/autoit]

    Er gibt quasi immer nur die "Haupt"-URL aus. Aber nicht die, der weiteren Tabs. Keine Ahnung ob ich was falsch mache, oder ob es mit der IE.au3 nicht weiter realisierbar ist.

    Vielen Dank für Eure Hilfe!

  • WinActive und HotKeySet wollen nicht so richtig

    • mirko2002
    • 2. Dezember 2011 um 10:36

    Wunderbar.... musste nochmal 1-2 kleine Änderungen vornehmen aber so gehts....

    *hut ab*

    Ich danke Dir ;)

  • WinActive und HotKeySet wollen nicht so richtig

    • mirko2002
    • 2. Dezember 2011 um 10:15

    So hatte ich es auch schonmal probiert, jedoch ist auch hier ein Fehler:

    So akzeptiert er zwar das ENTER nur wenn mein Programm aktiv ist, blockiert es aber bei anderen Anwendungen nun total.

    Beispiel wieder am Notepad. Hole ich mein Programm in den Fokus funktioniert es wie gewünscht. Hole ich Notepad in den Vordergrund und drücke dort ENTER reagiert zwar (gewollterweise) mein Programm nicht mehr darauf - aber Notepad auch nicht mehr - sprich man kann dort keine Sätze schreiben wenn mein Programm im Hintergrund läuft.

  • WinActive und HotKeySet wollen nicht so richtig

    • mirko2002
    • 2. Dezember 2011 um 09:59

    Also einfach statt

    [autoit]


    If WinActive("FIRST RUN - Choose Master PW") Then
    HotKeySet ("{enter}", "_enter")
    EndIf

    [/autoit]

    jetzt

    [autoit]


    If WinActive($input) Then
    HotKeySet ("{enter}", "_enter")
    EndIf

    [/autoit]

    ?

  • WinActive und HotKeySet wollen nicht so richtig

    • mirko2002
    • 2. Dezember 2011 um 09:51

    Guten Morgen alle zusammen,

    ich habe derzeit eine kleine Herausforderung.

    Bei meinem Programm soll beim ersten Start ein Passwort vergeben werden. Dies wird entweder durch drücken eines Buttons oder durch ENTER gespeichert.

    War nun allerdings der Fokus nicht auf meinem Programmfenster sondern ich habe zum Beispiel Notepad geöffnet und habe dort Enter gedrückt, hat er natürlich trotzdem die ENTER "drücken" Funktion ausgeführt, da ich nicht angegeben habe, dass er dies nur ausführen soll wenn das Fenster auch aktiv ist.

    Nun habe ich das Skript soweit umgeschrieben, dass er in der While-Schleife immer erst prüft ob das Fenster aktiv ist und nur dann die Funktion _enter ausführt.

    Jedoch kann ich mein skript auf diesen Wege sogar minimieren und dennoch wendet er die _enter Funktion an was gar nicht sein dürfte. Kann hier jemand meinen Fehler finden?

    [autoit]


    #RequireAdmin

    [/autoit][autoit][/autoit][autoit]

    Opt("TrayIconHide", 1)

    [/autoit][autoit][/autoit][autoit]

    #include <WindowsConstants.au3>
    #include <StructureConstants.au3>
    #include <GUIConstants.au3>
    #include <String.au3>
    #include-once 'UPS-login.exe'

    [/autoit][autoit][/autoit][autoit]

    $crypt = 'QWERTZ'
    $winuser = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\winlogon", "Defaultusername")

    [/autoit][autoit][/autoit][autoit]

    $loginGui = GUICreate("FIRST RUN - Choose Master PW", 270, 70)
    GUICtrlCreateLabel("Please choose a Master Password to protect your data:", 5, 5)

    [/autoit][autoit][/autoit][autoit]

    $input = GUICtrlCreateInput("", 5, 20, 260, 20, 0x21)
    $button = GUICtrlCreateButton("Save", 110, 43, 55, 25)
    $read = GUICtrlRead($input)
    $check = IniRead(@WindowsDir & "\" & $winuser & "pws.ini", "MASTER", "MASTER", "")

    [/autoit][autoit][/autoit][autoit]

    If $check = "" then
    GUIsetstate()
    Else
    If not FileExists(@TempDir & "\UPS-login.exe") Then
    FileInstall("C:\Documents and Settings\751076\Desktop\UPS\UPS-login.exe", @TempDir & "\UPS-login.exe")
    EndIf
    ShellExecute(@TempDir & "\UPS-login.exe")
    Exit
    EndIf

    [/autoit][autoit][/autoit][autoit]

    Func _enter()
    $read = GUICtrlRead($input)
    IniWrite(@WindowsDir & "\" & $winuser & "pws.ini", "MASTER", "MASTER", _StringEncrypt(1, GUICtrlRead($input), $crypt, 2))
    MsgBox(0, "", "Password saved successful!")
    If not FileExists(@TempDir & "\UPS-login.exe") Then
    FileInstall("C:\Documents and Settings\751076\Desktop\UPS\UPS-login.exe", @TempDir & "\UPS-login.exe")
    EndIf
    ShellExecute(@TempDir & "\UPS-login.exe")
    Exit
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    While 1
    If WinActive("FIRST RUN - Choose Master PW") Then
    HotKeySet ("{enter}", "_enter")
    EndIf
    $msg = GUIgetmsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $button
    $read = GUICtrlRead($input)
    IniWrite(@WindowsDir & "\" & $winuser & "pws.ini", "MASTER", "MASTER", _StringEncrypt(1, GUICtrlRead($input), $crypt, 2))
    MsgBox(0, "", "Password saved successful!")
    If not FileExists(@TempDir & "\UPS-login.exe") Then
    FileInstall("C:\Documents and Settings\751076\Desktop\UPS\UPS-login.exe", @TempDir & "\UPS-login.exe")
    EndIf
    ShellExecute(@TempDir & "\UPS-login.exe")
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Inhalt eines Editfeldes Drucken lassen

    • mirko2002
    • 17. November 2011 um 20:23

    Hm alles klar. Getestet, funktioniert wunderbar, Danke! Mehr kann ich nicht sagen - wie immer wird einem in diesem Board vorzüglich geholfen. Macht weiter so!!!

  • Inhalt eines Editfeldes Drucken lassen

    • mirko2002
    • 17. November 2011 um 14:53

    Zitat:
    Für Wordpad-Dokumente findest du den Aufruf unter folgendem Schlüssel:
    HKEY_CLASSES_ROOT\Wordpad.Document.1\shell\print\command
    also: '"Pfad_wordpad.exe" /p "Pfad_zu_druckende_Datei"'


    Versteh ich nicht :D

  • Inhalt eines Editfeldes Drucken lassen

    • mirko2002
    • 17. November 2011 um 14:08

    Das ist das Problem - das Fenster soll eigentlich gar nicht aktiv werden.

    Ich möchte eigentlich nur ein Druckbutton in der GUI von der aus der Druck startet, ohne das der entsprechende User irgendetwas anderes sieht.

    Die erste Variante hat dies perfekt umgesetzt - jedoch gefällt mir das Layout vom Notepad nicht.

    Somit hab ich die WordPad Variante probiert - da der user aber eigentlich vom Hintergrundprozess des Druckens nmichts mitbekommen soll stört es mich schon das WordPad überhaupt aufgeht. Mit WinWaitActive muss auch hier das WordPad maximiert sein um arbeiten zu können...

  • Inhalt eines Editfeldes Drucken lassen

    • mirko2002
    • 17. November 2011 um 13:46

    Da ich grad auf Arbeit bin kann ich den Registryteil von Bugfix nicht testen, hab mich derweil mit folgender Version rumgeschlagen:

    [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $ButtonDrucken
    ShellExecute(@WindowsDir & "\system32\write.exe", "", "", "")
    Sleep(1000)
    ControlSend("Document - WordPad", "", "", GUICtrlRead($Edit1))
    Sleep(500)
    ControlSend("Document - WordPad", "", "", "^p")
    Sleep(500)
    ControlSend("Document - WordPad", "", "", "{ENTER}")
    Sleep(1000)
    ProcessClose("wordpad.exe")
    EndSwitch
    WEnd

    [/autoit]

    Jedoch funktioniert der ControlSend hier nicht, wenn ich WordPad auf minimize oder gar auf Hide setze... er öffnet es dann zwar aber sämtliche Send's gehen dann ins leere... warum auch immer...

  • Inhalt eines Editfeldes Drucken lassen

    • mirko2002
    • 17. November 2011 um 10:34

    Joah wunderbar.... mußte noch nen kleines Sleep einbauen, da die Datei sonst schneller gelöscht war bis der Druckauftrag zustande kam ;)

    Aber hier hab ich doch glatt noch was zu bemängeln^^

    Soweit ich die Funktion _FilePrint richtig gesehen habe wird über die shell32.dll das notepad geöffnet, mit Hide versteckt und darüber der Print durchgeführt.


    Notepad hat aber die blöde eigenschaft, über dem Dokument den Dokumentennamen (in unserem Beispiel temp.txt) mit auszudrucken und unten drunter noch Page 1 usw.

    Wenn ich denselben ausdruck über Wordpad mache druckt er solchen Mist nicht mit aus. Google hoch und runter gesucht - aber nichts gefunden wie man über Wordpad drucken könnte. Gibts da auch irgendeinen shell32 Zugriff?

    Schließlich läßt es sich ja auch einfach mit dem Befehl wordpad.exe starten so wie sonst die notepad.exe...

    Hat da noch wer Rat?

  • Inhalt eines Editfeldes Drucken lassen

    • mirko2002
    • 17. November 2011 um 00:12

    Hallo Freunde der leichten Unterhaltung,

    heute habe ich ein neues Thema womit ich mich beschäftige ;)

    Ich habe mir in de Kopf gesetzt ein bestimmtes Editfeld aus meiner GUI über einen Button "ausdruckbar" zu machen.

    Ansich kein Problem mit _PrintFile sollte man jetzt denken.

    Jedoch ist der Inhalt meiner Editbox immer nur ein Abschnitt aus einer *.ini Datei und dieser sogar noch mit StringReplace formatiert wegen der Zeilenumbrüche.

    würde ich also _PrintFile benutzen würde er ja a) die gesamte Datei drucken statt nur dem grad angezeigten Teil und b) natürlich auch die Formatierungen wie [CRLF] da diese ja erst im Skript ersetzt werden.

    Wie also kann ich das Editfeld so ausdrucken lassen wie ich es eigentlich auch direkt in der GUI aktuell sehe?

    Google und hier die Boardinterne Suchfunktion ergaben leider immer nur Hinweise auf _PrintFile.

    LG
    Mirko

  • Neue Einträge in *.ini Datei ohne alte Inhalte zu überschreiben

    • mirko2002
    • 16. November 2011 um 11:06

    Ja na klar warum bin ich nicht selber drauf gekommen ;)

    Oh man... vielen vielen Dank!

  • Neue Einträge in *.ini Datei ohne alte Inhalte zu überschreiben

    • mirko2002
    • 16. November 2011 um 10:24

    Hallo Autit'ler,

    ich habe ein Problem, welches ich in einen meiner alten Projekte schonmal gelöst hatte, es aber nun nicht mehr zur Hand habe und damit erneut auf dem Schlauch stehe.

    Ich schreibe in eine ini Datei bestimmte Daten. Ansich kein Problem - das auslesen sowie schreiben funktioniert problemlos.

    Jedoch soll alles was ich beim erneuten speichern eingetragen habe nicht die alten Daten löschen/überschreiben, sondern ergänzen.

    Hier ein kleiner Auszug wo der iniwrite stattfindet:

    [autoit]

    If @Mon & @Year = "112011" Then
    $read = GUICtrlRead($notizen)
    IniWrite(@ScriptDir & "\eDiary.ini", "Dezember 2011", "Eintrag", "***" & @MDAY&"."&@MON&"., "& @HOUR&":"&@MIN&":"&@SEC & "***" & "[CRLF]" & StringReplace($read, @CRLF, '[CRLF]')& "[CRLF][CRLF]")
    MsgBox(64, "Speichern erfolgreich", "Dein Eintrag wurde gespeichert!")

    [/autoit]

    Zwar speichert er mir das ganze natürlich ab was in meinem Notizfeld steht, jedoch wenn ich nun erneut speicher dann ersetzt er den vorherigen Wert anstatt ihn zu ergänzen.

    Ich weiß dass man irgendwie mit einer Variable +1 arbeiten musste. Aber unter Google finde ich derzeit einfach nichts passendes (mit Sicherheit einfach nur die falschen Suchbegriffe verwendet) und ich selber hab gerade einfach nur ne Denkblockade, was mir ein solch simples Problem beschert.

    Nur nochmal zum Verständniss:

    Ich speicher folgenden Wert in eine ini-Datei:

    [Januar 2012]
    Eintrag=Januar 2012[CRLF]Kein Eintrag vorhanden

    Nun möchte ich einen weiteren Text hinzufügen ohne das der alte Text ersetzt wird:

    [Januar 2012]
    Eintrag=Januar 2012[CRLF]Kein Eintrag vorhanden[CRLF]Hier soll mein weiterer Text stehen...

    Hat da jemand nochmal Hilfe für mich?

  • Editfeld mehrzeilig speichern und auslesen

    • mirko2002
    • 27. Oktober 2011 um 14:10

    Ahhhh..... alles klar - jetzt wo Du es so erklärt hast habe ich es verstanden und es erfolgreich in meinem Skript untergebracht.

    Vielen Dank für Eure großartige Hilfe!!!!!

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™