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

Beiträge von foorschtbar

  • URL Handler/IPC zwischen zwei unabhänigen Instanzen

    • foorschtbar
    • 24. September 2013 um 22:28

    Wow, das sieht sehr gut aus. Werde ich mir morgen mal in Ruhe ansehen und ggf. den Thread schließen. Vielen Dank!

  • URL Handler/IPC zwischen zwei unabhänigen Instanzen

    • foorschtbar
    • 24. September 2013 um 21:40

    Das registrieren des URL Handlers ist kein Problem, habe ich doch geschrieben.

    Ich mach es etwas konkreter. Ich habe einen TAPI Client entwickelt welcher im Systemtray läuft. Diesem möchte ich jetzt noch diverse URL Handler zuweisen. Die Übergabe an die EXE ist kein Problem, aber im Normalfall verhindert Singleton das nicht ein zweite Instanz des TAPI Client läuft. Ich möchte beim Aufruf der zweiten Instanz den Befehl an die erste übergeben und das möglichst "smooth" ohne Sockets oder sowas...

  • URL Handler/IPC zwischen zwei unabhänigen Instanzen

    • foorschtbar
    • 24. September 2013 um 17:22

    Hallo Zusammen,

    leider habe ich in den weiten des Internet nichts finden können. Ich möchte einen URL Handler erstellen welcher im Stile von autoit:\\<Paramater> etwas an mein Programm übergibt. Den Handler zu registrieren ist überhaupt kein Problem, das ist alles sehr schön im MSDN beschrieben. Nur wie bekomme ich es hin, dass der bereits laufende Prozess diesen Befehl von dem vom URL Handler gestartet neuen Prozess empfängt. IPC geht ja nur mit dem Child oder? Theoretisch könnte man ein Singleton machen und vor dem Exit dem anderen Process etwas mitteilen nur wie? Ich mein das machen ja viele Anwendungen, wie z.B. steam://, mailto:// oder auch nur der Browser der bei entsprechender Konfiguration kein neues Fenster startet, sondern nur einen neuen Tab....

    Gruß

  • Text in Label vertikal zentrieren

    • foorschtbar
    • 7. Oktober 2011 um 12:38

    Die lösung ist $SS_CENTERIMAGE aber leider wird der Text dann nichtmehr umgebrochen. Schade.

  • Text in Label vertikal zentrieren

    • foorschtbar
    • 7. Oktober 2011 um 11:21

    Hallo,

    ist es möglich den Text nicht nur horizontal zu zentrieren ($SS_CENTER) sondern auch vertikal? Ich habe Text der mal ein- oder zweizeilig ist, aber immer zentriert sein soll.

    Gruß

  • Einem Contextmenu ein Submenu/Untermenü hinzufügen

    • foorschtbar
    • 28. September 2011 um 13:20

    Ich habs:

    [autoit]

    $hMenu = _GUICtrlMenu_CreatePopup()
    $hSubMenu = _GUICtrlMenu_CreatePopup()
    _GUICtrlMenu_AddMenuItem($hMenu, "Erweitert", 0, $hSubMenu)
    _GUICtrlMenu_AddMenuItem($hSubMenu, "Info", $idInfo)
    _GUICtrlMenu_AddMenuItem($hMenu, "Beenden", $idClose)
    _GUICtrlMenu_TrackPopupMenu($hMenu, $GUI)
    _GUICtrlMenu_DestroyMenu($hMenu)

    [/autoit]

    Kann geschlossen werden.

  • Einem Contextmenu ein Submenu/Untermenü hinzufügen

    • foorschtbar
    • 28. September 2011 um 13:17

    Weil es ein _GUICtrlMenu_CreatePopup()-Menü ist! Ich Erzeuge es aus WM_CONTEXTMENU heraus.

  • Einem Contextmenu ein Submenu/Untermenü hinzufügen

    • foorschtbar
    • 28. September 2011 um 13:06

    Hallo,

    ich erstelle mit _GUICtrlMenu_CreatePopup() ein Menü. Ich würde gerne ein Submenü hinzufügen. Im TrayMenu geht das wunderbar, aber ich komme hier nicht weiter. Ich find leider auch keine Codeschnippsel.

    [autoit]

    MenuItem1
    MenuItem2 > SubmenuItem1
    SubmenuItem2
    MenuItem3

    [/autoit]

    Mit _GUICtrlMenu_InsertMenuItem erstelle ich die Items. Dort gibt es auch die möglichkeit ein "Submenu" anzugeben, aber ich finde nicht wie!

    Gruß Fabian

  • GUICreate mit Flag ähnlich "Task Modal"...

    • foorschtbar
    • 14. September 2010 um 15:33

    okay, doof beschrieben. Es soll ein Fenster aufgehen welches man sich nicht weg klicken lässt, solange bleibt die restliche Applikation gesperrt...

  • GUICreate mit Flag ähnlich "Task Modal"...

    • foorschtbar
    • 14. September 2010 um 15:01

    Hallo,

    ich habe herausgefunden dann eine MsgBox mit dem Flag "Task modal" dafür sorgt das man diese "Beantworten" muss. So etwas möchte ich gerne für mit einem GUI. Man könnte natürlich das Parent-GUI deaktivieren aber das muss doch auch anders gehen oder?

  • HotKey Aufzeichnen

    • foorschtbar
    • 7. Dezember 2009 um 08:08

    Tja, ich würde sagen Perfekt. Zwar etwas überdimensioniert aber konnte nichts viel nicht nötiges entdecken. Jetzt muss ich nurnoch aus [STRG] + [F8] ein "^{F8}" umformen und fertig... Danke Calypso & Community

    Zitat von Calypso

    http://www.autoitscript.com/forum/index.php?showtopic=90241

    wie wärs damit ?^^

    Edit:
    Hier bisschen umgeformte Version. Liest einfach die Inputs aus und speichert die in ne Ini.

    Spoiler anzeigen
    [autoit]

    ;~ Func _hotkeyset()
    ; ==================================================================================================
    ; <_HotKeyControl.au3>
    ;
    ; Functions:
    ; _ToggleAsHotkeyControl()
    ; _GetAutoItHotkey()
    ;
    ; _HotkeyWindowProc()
    ; _GetAutoItCode()
    ; _ShowHotKey()
    ; _GetHandleIndex()
    ;
    ; Author: WideBoyDixon
    ; ==================================================================================================

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

    #include-once

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

    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIEdit.au3>

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

    #Region VIRTUAL_KEYS
    Global Const $VKEY_LBUTTON = 0x01, $VKEY_RBUTTON = 0x02, $VKEY_CANCEL = 0x03, $VKEY_MBUTTON = 0x04
    Global Const $VKEY_XBUTTON1 = 0x05, $VKEY_XBUTTON2 = 0x06, $VKEY_BACK = 0x08, $VKEY_TAB = 0x09
    Global Const $VKEY_CLEAR = 0x0C, $VKEY_RETURN = 0x0D, $VKEY_SHIFT = 0x10, $VKEY_CONTROL = 0x11
    Global Const $VKEY_MENU = 0x12, $VKEY_PAUSE = 0x13, $VKEY_CAPITAL = 0x14, $VKEY_KANA = 0x15
    Global Const $VKEY_HANGEUL = 0x15, $VKEY_HANGUL = 0x15, $VKEY_JUNJA = 0x17, $VKEY_FINAL = 0x18
    Global Const $VKEY_HANJA = 0x19, $VKEY_KANJI = 0x19, $VKEY_ESCAPE = 0x1B, $VKEY_CONVERT = 0x1C
    Global Const $VKEY_NONCONVERT = 0x1D, $VKEY_ACCEPT = 0x1E, $VKEY_MODECHANGE = 0x1F, $VKEY_SPACE = 0x20
    Global Const $VKEY_PRIOR = 0x21, $VKEY_NEXT = 0x22, $VKEY_END = 0x23, $VKEY_HOME = 0x24
    Global Const $VKEY_LEFT = 0x25, $VKEY_UP = 0x26, $VKEY_RIGHT = 0x27, $VKEY_DOWN = 0x28
    Global Const $VKEY_SELECT = 0x29, $VKEY_PRINT = 0x2A, $VKEY_EXECUTE = 0x2B, $VKEY_SNAPSHOT = 0x2C
    Global Const $VKEY_INSERT = 0x2D, $VKEY_DELETE = 0x2E, $VKEY_HELP = 0x2F, $VKEY_LWIN = 0x5B
    Global Const $VKEY_RWIN = 0x5C, $VKEY_APPS = 0x5D, $VKEY_SLEEP = 0x5F, $VKEY_NUMPAD0 = 0x60
    Global Const $VKEY_NUMPAD1 = 0x61, $VKEY_NUMPAD2 = 0x62, $VKEY_NUMPAD3 = 0x63, $VKEY_NUMPAD4 = 0x64
    Global Const $VKEY_NUMPAD5 = 0x65, $VKEY_NUMPAD6 = 0x66, $VKEY_NUMPAD7 = 0x67, $VKEY_NUMPAD8 = 0x68
    Global Const $VKEY_NUMPAD9 = 0x69, $VKEY_MULTIPLY = 0x6A, $VKEY_ADD = 0x6B, $VKEY_SEPARATOR = 0x6C
    Global Const $VKEY_SUBTRACT = 0x6D, $VKEY_DECIMAL = 0x6E, $VKEY_DIVIDE = 0x6F, $VKEY_F1 = 0x70
    Global Const $VKEY_F2 = 0x71, $VKEY_F3 = 0x72, $VKEY_F4 = 0x73, $VKEY_F5 = 0x74
    Global Const $VKEY_F6 = 0x75, $VKEY_F7 = 0x76, $VKEY_F8 = 0x77, $VKEY_F9 = 0x78
    Global Const $VKEY_F10 = 0x79, $VKEY_F11 = 0x7A, $VKEY_F12 = 0x7B, $VKEY_F13 = 0x7C
    Global Const $VKEY_F14 = 0x7D, $VKEY_F15 = 0x7E, $VKEY_F16 = 0x7F, $VKEY_F17 = 0x80
    Global Const $VKEY_F18 = 0x81, $VKEY_F19 = 0x82, $VKEY_F20 = 0x83, $VKEY_F21 = 0x84
    Global Const $VKEY_F22 = 0x85, $VKEY_F23 = 0x86, $VKEY_F24 = 0x87, $VKEY_NUMLOCK = 0x90
    Global Const $VKEY_SCROLL = 0x91, $VKEY_OEM_NEC_EQUAL = 0x92, $VKEY_OEM_FJ_JISHO = 0x92, $VKEY_OEM_FJ_MASSHOU = 0x93
    Global Const $VKEY_OEM_FJ_TOUROKU = 0x94, $VKEY_OEM_FJ_LOYA = 0x95, $VKEY_OEM_FJ_ROYA = 0x96
    Global Const $VKEY_LSHIFT = 0xA0, $VKEY_RSHIFT = 0xA1, $VKEY_LCONTROL = 0xA2, $VKEY_RCONTROL = 0xA3
    Global Const $VKEY_LMENU = 0xA4, $VKEY_RMENU = 0xA5, $VKEY_BROWSER_BACK = 0xA6, $VKEY_BROWSER_FORWARD = 0xA7
    Global Const $VKEY_BROWSER_REFRESH = 0xA8, $VKEY_BROWSER_STOP = 0xA9, $VKEY_BROWSER_SEARCH = 0xAA, $VKEY_BROWSER_FAVORITES = 0xAB
    Global Const $VKEY_BROWSER_HOME = 0xAC, $VKEY_VOLUME_MUTE = 0xAD, $VKEY_VOLUME_DOWN = 0xAE, $VKEY_VOLUME_UP = 0xAF
    Global Const $VKEY_MEDIA_NEXT_TRACK = 0xB0, $VKEY_MEDIA_PREV_TRACK = 0xB1, $VKEY_MEDIA_STOP = 0xB2, $VKEY_MEDIA_PLAY_PAUSE = 0xB3
    Global Const $VKEY_LAUNCH_MAIL = 0xB4, $VKEY_LAUNCH_MEDIA_SELECT = 0xB5, $VKEY_LAUNCH_APP1 = 0xB6, $VKEY_LAUNCH_APP2 = 0xB7
    Global Const $VKEY_OEM_1 = 0xBA, $VKEY_OEM_PLUS = 0xBB, $VKEY_OEM_COMMA = 0xBC, $VKEY_OEM_MINUS = 0xBD
    Global Const $VKEY_OEM_PERIOD = 0xBE, $VKEY_OEM_2 = 0xBF, $VKEY_OEM_3 = 0xC0, $VKEY_OEM_4 = 0xDB
    Global Const $VKEY_OEM_5 = 0xDC, $VKEY_OEM_6 = 0xDD, $VKEY_OEM_7 = 0xDE, $VKEY_OEM_8 = 0xDF
    Global Const $VKEY_OEM_AX = 0xE1, $VKEY_OEM_102 = 0xE2, $VKEY_ICO_HELP = 0xE3, $VKEY_ICO_00 = 0xE4
    Global Const $VKEY_PROCESSKEY = 0xE5, $VKEY_ICO_CLEAR = 0xE6, $VKEY_PACKET = 0xE7, $VKEY_OEM_RESET = 0xE9
    Global Const $VKEY_OEM_JUMP = 0xEA, $VKEY_OEM_PA1 = 0xEB, $VKEY_OEM_PA2 = 0xEC, $VKEY_OEM_PA3 = 0xED
    Global Const $VKEY_OEM_WSCTRL = 0xEE, $VKEY_OEM_CUSEL = 0xEF, $VKEY_OEM_ATTN = 0xF0, $VKEY_OEM_FINISH = 0xF1
    Global Const $VKEY_OEM_COPY = 0xF2, $VKEY_OEM_AUTO = 0xF3, $VKEY_OEM_ENLW = 0xF4, $VKEY_OEM_BACKTAB = 0xF5
    Global Const $VKEY_ATTN = 0xF6, $VKEY_CRSEL = 0xF7, $VKEY_EXSEL = 0xF8, $VKEY_EREOF = 0xF9
    Global Const $VKEY_PLAY = 0xFA, $VKEY_ZOOM = 0xFB, $VKEY_NONAME = 0xFC, $VKEY_PA1 = 0xFD, $VKEY_OEM_CLEAR = 0xFE
    #EndRegion VIRTUAL_KEYS

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

    #Region GLOBAL_VARIABLES
    ; This maps virtual keycodes to AutoIt equivalents
    Global $gaVirtkeyMap[75][2] = [[$VKEY_SPACE, "{SPACE}"],[$VKEY_RETURN, "{ENTER}"],[$VKEY_MENU, "{ALT}"],[$VKEY_BACK, "{BS}"], _ ; 4
    [$VKEY_DELETE, "{DEL}"],[$VKEY_UP, "{UP}"],[$VKEY_DOWN, "{DOWN}"],[$VKEY_LEFT, "{LEFT}"], _ ; 8
    [$VKEY_RIGHT, "{RIGHT}"],[$VKEY_HOME, "{HOME}"],[$VKEY_END, "{END}"],[$VKEY_ESCAPE, "{ESC}"], _ ; 12
    [$VKEY_INSERT, "{INS}"],[$VKEY_PRIOR, "{PGUP}"],[$VKEY_NEXT, "{PGDN}"],[$VKEY_F1, "{F1}"], _ ; 16
    [$VKEY_F2, "{F2}"],[$VKEY_F3, "{F3}"],[$VKEY_F4, "{F4}"],[$VKEY_F5, "{F5}"], _ ; 20
    [$VKEY_F6, "{F6}"],[$VKEY_F7, "{F7}"],[$VKEY_F8, "{F8}"],[$VKEY_F9, "{F9}"], _ ; 24
    [$VKEY_F10, "{F10}"],[$VKEY_F11, "{F11}"],[$VKEY_F12, "{F12}"],[$VKEY_TAB, "{TAB}"], _ ; 28
    [$VKEY_PRINT, "{PRINTSCREEN}"],[$VKEY_LWIN, "{LWIN}"],[$VKEY_RWIN, "{RWIN}"], _ ; 31
    [$VKEY_NUMLOCK, "{NUMLOCK}"],[$VKEY_CAPITAL, "{CAPSLOCK}"],[$VKEY_SCROLL, "{SCROLLLOCK}"], _ ; 34
    [$VKEY_PAUSE, "{PAUSE}"],[$VKEY_NUMPAD0, "{NUMPAD0}"],[$VKEY_NUMPAD1, "{NUMPAD1}"], _ ; 37
    [$VKEY_NUMPAD2, "{NUMPAD2}"],[$VKEY_NUMPAD3, "{NUMPAD3}"],[$VKEY_NUMPAD4, "{NUMPAD4}"], _ ; 40
    [$VKEY_NUMPAD5, "{NUMPAD5}"],[$VKEY_NUMPAD6, "{NUMPAD6}"],[$VKEY_NUMPAD7, "{NUMPAD7}"], _ ; 43
    [$VKEY_NUMPAD8, "{NUMPAD8}"],[$VKEY_NUMPAD9, "{NUMPAD0}"],[$VKEY_ADD, "{NUMPADADD}"], _ ; 46
    [$VKEY_SUBTRACT, "{NUMPADSUB}"],[$VKEY_DIVIDE, "{NUMPADDIV}"],[$VKEY_DECIMAL, "{NUMPADDOT}"], _ ; 49
    [$VKEY_APPS, "{APPSKEY}"],[$VKEY_LMENU, "{LALT}"],[$VKEY_RMENU, "{RALT}"], _ ; 52
    [$VKEY_LCONTROL, "{LCTRL}"],[$VKEY_RCONTROL, "{RCTRL}"],[$VKEY_LSHIFT, "{LSHIFT}"], _ ; 55
    [$VKEY_RSHIFT, "{RSHIFT}"],[$VKEY_SLEEP, "{SLEEP}"],[$VKEY_BROWSER_BACK, "{BROWSER_BACK}"], _ ; 58
    [$VKEY_BROWSER_FORWARD, "{BROWSER_FORWARD}"],[$VKEY_BROWSER_REFRESH, "{BROWSER_REFRESH}"], _ ; 60
    [$VKEY_BROWSER_STOP, "{BROWSER_STOP}"],[$VKEY_BROWSER_SEARCH, "{BROWSER_SEARCH}"], _ ; 62
    [$VKEY_BROWSER_FAVORITES, "{BROWSER_FAVORITES}"],[$VKEY_BROWSER_HOME, "{BROWSER_HOME}"], _ ; 64
    [$VKEY_VOLUME_MUTE, "{VOLUME_MUTE}"],[$VKEY_VOLUME_DOWN, "{VOLUME_DOWN}"],[$VKEY_VOLUME_UP, "{VOLUME_UP}"], _ ; 67
    [$VKEY_MEDIA_NEXT_TRACK, "{MEDIA_NEXT}"],[$VKEY_MEDIA_PREV_TRACK, "{MEDIA_PREV}"], _ ; 69
    [$VKEY_MEDIA_STOP, "{MEDIA_STOP}"],[$VKEY_MEDIA_PLAY_PAUSE, "{MEDIA_PLAY_PAUSE}"], _ ; 71
    [$VKEY_LAUNCH_MAIL, "{LAUNCH_MAIL}"],[$VKEY_LAUNCH_MEDIA_SELECT, "{LAUNCH_MEDIA}"], _ ; 73
    [$VKEY_LAUNCH_APP1, "{LAUNCH_APP1}"],[$VKEY_LAUNCH_APP2, "{LAUNCH_APP2}"]] ; 75

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

    ; Up to 20 hotkeys. Use this array to store:
    ; - Window handle of the edit control
    ; - AutoIt key combination
    ; - Wndproc_new
    ; - Wndproc_old
    ; - Modifier key flags
    ; - Locked flag
    ; - Key
    Global $gaHotkeyList[20][7]
    #EndRegion GLOBAL_VARIABLES

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

    ; ==================================================================================================
    ; Func _ToggleAsHotkeyControl($hWnd)
    ;
    ; Function to toggle whether the input control is a hotkey
    ;
    ; $hWnd = Handle to the input control
    ;
    ; Returns:
    ; Success: True
    ; Failure: False, with @error set:
    ;
    ; Author: WideBoyDixon
    ; ==================================================================================================
    ;### Tidy Error -> func Not closed before "Func" statement.
    ;### Tidy Error -> "func" cannot be inside any IF/Do/While/For/Case/Func statement.
    Func _ToggleAsHotkeyControl($hWnd)
    Dim $nI, $nJ = -1, $bFound = False

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

    ; Check the current array to see if we've already got this one
    For $nI = 0 To UBound($gaHotkeyList) - 1
    If $gaHotkeyList[$nI][0] = $hWnd Then
    ; Found it
    $bFound = True
    $nJ = $nI
    ExitLoop
    ElseIf (Not IsHWnd($gaHotkeyList[$nI][0])) And ($nJ = -1) Then
    ; Remember the first empty location
    $nJ = $nI
    EndIf
    Next

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

    ; If we already had it then remove this one
    If $bFound Then
    $gaHotkeyList[$nJ][0] = ""
    _WinAPI_SetWindowLong($hWnd, 0xFFFFFFFC, $gaHotkeyList[$nJ][3])
    Return SetError(0, 0, True)
    EndIf

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

    ; If we don't have any spare slots then this is an error
    If ($nJ = -1) Then Return SetError(1, 0, False)
    ; Store the details and subclass the window
    $gaHotkeyList[$nJ][0] = $hWnd
    $gaHotkeyList[$nJ][1] = ""
    $gaHotkeyList[$nJ][2] = DllCallbackRegister("_HotkeyWindowProc", "ptr", "hwnd;uint;long;ptr")
    $gaHotkeyList[$nJ][3] = _WinAPI_SetWindowLong($hWnd, 0xFFFFFFFC, DllCallbackGetPtr($gaHotkeyList[$nJ][2]))
    $gaHotkeyList[$nJ][4] = 0
    $gaHotkeyList[$nJ][5] = False
    $gaHotkeyList[$nJ][6] = ""

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

    ; Success
    Return SetError(0, 0, True)
    EndFunc ;==>_ToggleAsHotkeyControl

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

    ; ==================================================================================================
    ; Func _HotkeyWindowProc($hWnd, $uiMsg, $wParam, $lParam)
    ;
    ; Windows procedure for subclassing an input control
    ;
    ; $hWnd = Handle to the input control
    ; $uiMsg = The windows message
    ; $wParam = WPARAM
    ; $lParam = LPARAM
    ;
    ; Returns:
    ; 1 = Don't process this message as it's already been handled
    ; Other = Use the default processing for this message
    ;
    ; Author: WideBoyDixon
    ; ==================================================================================================
    ;### Tidy Error -> func Not closed before "Func" statement.
    ;### Tidy Error -> "func" cannot be inside any IF/Do/While/For/Case/Func statement.
    Func _HotkeyWindowProc($hWnd, $uiMsg, $wParam, $lParam)
    Local $scanCode, $sAutoitKey
    Local $nIndex = _GetHandleIndex($hWnd) ; Get the index of this window in the array
    If $nIndex >= 0 Then
    If $uiMsg = $WM_GETDLGCODE Then
    If $wParam = $VKEY_RETURN Then
    $uiMsg = $WM_KEYDOWN ; A bit of a hack to get {ENTER} recognised ...
    EndIf
    EndIf
    Switch $uiMsg
    Case $WM_SETFOCUS
    ; Re-start when we get the focus
    $gaHotkeyList[$nIndex][4] = 0
    $gaHotkeyList[$nIndex][5] = False
    $gaHotkeyList[$nIndex][6] = ""
    Case $WM_SYSKEYDOWN, $WM_KEYDOWN
    ; A key is down
    $scanCode = DllCall("user32.dll", "uint", "MapVirtualKey", "uint", $wParam, "uint", 2) ; Map the virtual key to a scan code
    Switch $wParam
    Case $VKEY_SHIFT, $VKEY_LSHIFT, $VKEY_RSHIFT
    ; Shift has been pressed
    $gaHotkeyList[$nIndex][4] = BitOR($gaHotkeyList[$nIndex][4], 1)
    Case $VKEY_CONTROL, $VKEY_LCONTROL, $VKEY_RCONTROL
    ; Control has been pressed
    $gaHotkeyList[$nIndex][4] = BitOR($gaHotkeyList[$nIndex][4], 2)
    Case $VKEY_LWIN, $VKEY_RWIN
    ; Windows key has been pressed
    $gaHotkeyList[$nIndex][4] = BitOR($gaHotkeyList[$nIndex][4], 4)
    Case $VKEY_MENU, $VKEY_LMENU, $VKEY_RMENU
    ; Alt key has been pressed
    $gaHotkeyList[$nIndex][4] = BitOR($gaHotkeyList[$nIndex][4], 8)
    ;~ Case Else
    $sAutoitKey = _GetAutoItCode($wParam) ; Is there an AutoIt equivalent?
    ;~ If $sAutoitKey = "" Then
    ;~ ; No AutoIt code ... can we use the scan code?
    ;~ If $scanCode[0] <> 0 Then $sAutoitKey = Chr($scanCode[0])
    ;~ EndIf
    Case Else
    $sAutoitKey = _GetAutoItCode($wParam)
    If $sAutoitKey = "" Then
    Select; No AutoIt code ... can we use the scan code?
    Case $scanCode[0] = 65
    $sAutoitKey = Chr(97)
    Case $scanCode[0] = 66
    $sAutoitKey = Chr(98)
    Case $scanCode[0] = 67
    $sAutoitKey = Chr(99)
    Case $scanCode[0] = 68
    $sAutoitKey = Chr(100)
    Case $scanCode[0] = 69
    $sAutoitKey = Chr(101)
    Case $scanCode[0] = 70
    $sAutoitKey = Chr(102)
    Case $scanCode[0] = 71
    $sAutoitKey = Chr(103)
    Case $scanCode[0] = 72
    $sAutoitKey = Chr(104)
    Case $scanCode[0] = 73
    $sAutoitKey = Chr(105)
    Case $scanCode[0] = 74
    $sAutoitKey = Chr(106)
    Case $scanCode[0] = 75
    $sAutoitKey = Chr(107)
    Case $scanCode[0] = 76
    $sAutoitKey = Chr(108)
    Case $scanCode[0] = 77
    $sAutoitKey = Chr(109)
    Case $scanCode[0] = 78
    $sAutoitKey = Chr(110)
    Case $scanCode[0] = 79
    $sAutoitKey = Chr(111)
    Case $scanCode[0] = 80
    $sAutoitKey = Chr(112)
    Case $scanCode[0] = 81
    $sAutoitKey = Chr(113)
    Case $scanCode[0] = 82
    $sAutoitKey = Chr(114)
    Case $scanCode[0] = 83
    $sAutoitKey = Chr(115)
    Case $scanCode[0] = 84
    $sAutoitKey = Chr(116)
    Case $scanCode[0] = 85
    $sAutoitKey = Chr(117)
    Case $scanCode[0] = 86
    $sAutoitKey = Chr(118)
    Case $scanCode[0] = 87
    $sAutoitKey = Chr(119)
    Case $scanCode[0] = 88
    $sAutoitKey = Chr(120)
    Case $scanCode[0] = 89
    $sAutoitKey = Chr(121)
    Case $scanCode[0] = 90
    $sAutoitKey = Chr(122)
    Case $sAutoitKey = ""
    If $scanCode[0] <> 0 Then $sAutoitKey = Chr($scanCode[0])
    ;~ MsgBox(0, "", $scanCode[0])
    EndSelect
    EndIf
    ; If we have a key then store it
    If $sAutoitKey <> "" Then
    $gaHotkeyList[$nIndex][6] = $sAutoitKey
    _ShowHotKey($nIndex)
    $gaHotkeyList[$nIndex][5] = True
    EndIf
    EndSwitch

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

    If Not $gaHotkeyList[$nIndex][5] Then _ShowHotKey($nIndex) ; Show the current status
    Return 1 ; Don't process this message any more
    Case $WM_SYSKEYUP, $WM_KEYUP
    ; A key is up
    Switch $wParam
    Case $VKEY_SHIFT, $VKEY_LSHIFT, $VKEY_RSHIFT
    ; Shift is up
    $gaHotkeyList[$nIndex][4] = BitAND($gaHotkeyList[$nIndex][4], 14)
    Case $VKEY_CONTROL, $VKEY_LCONTROL, $VKEY_RCONTROL
    ; Control is up
    $gaHotkeyList[$nIndex][4] = BitAND($gaHotkeyList[$nIndex][4], 13)
    Case $VKEY_LWIN, $VKEY_RWIN
    ; Windows key is up
    $gaHotkeyList[$nIndex][4] = BitAND($gaHotkeyList[$nIndex][4], 11)
    Case $VKEY_MENU, $VKEY_LMENU, $VKEY_RMENU
    ; Alt is up
    $gaHotkeyList[$nIndex][4] = BitAND($gaHotkeyList[$nIndex][4], 7)
    EndSwitch
    If Not $gaHotkeyList[$nIndex][5] Then _ShowHotKey($nIndex) ; Show the current status if necessary
    If $gaHotkeyList[$nIndex][5] Then
    ; Have all modifier keys been released? If so then reset the hotkey
    $gaHotkeyList[$nIndex][5] = ($gaHotkeyList[$nIndex][5] <> 0)
    If Not $gaHotkeyList[$nIndex][5] Then $gaHotkeyList[$nIndex][6] = ""
    EndIf
    Return 1 ; Don't process this message any more
    Case $WM_CHAR, $WM_PASTE, $WM_CUT
    Return 1 ; Don't process this message any more
    EndSwitch

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

    ; Use default processing for all other messages
    Return _WinAPI_CallWindowProc($gaHotkeyList[$nIndex][3], $hWnd, $uiMsg, $wParam, $lParam)
    Else
    Return _WinAPI_DefWindowProc($hWnd, $uiMsg, $wParam, $lParam)
    EndIf
    EndFunc ;==>_HotkeyWindowProc

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

    ; ==================================================================================================
    ; Func _GetAutoItCode($vkCode)
    ;
    ; Get an AutoIt equivalent for a virtual key
    ;
    ; $vkCode = The virtual key code
    ;
    ; Returns:
    ; The AutoIt equivalent or an empty string if there isn't one
    ;
    ; Author: WideBoyDixon
    ; ==================================================================================================
    ;### Tidy Error -> func Not closed before "Func" statement.
    ;### Tidy Error -> "func" cannot be inside any IF/Do/While/For/Case/Func statement.
    Func _GetAutoItCode($vkCode)
    Local $nI, $sRet = ""

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

    ; Look through the map array to find this value
    For $nI = 0 To UBound($gaVirtkeyMap) - 1
    If $gaVirtkeyMap[$nI][0] = $vkCode Then
    ; Found it ... return it
    $sRet = $gaVirtkeyMap[$nI][1]
    ExitLoop
    EndIf
    Next

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

    Return SetError(0, 0, $sRet)
    EndFunc ;==>_GetAutoItCode

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

    ; ==================================================================================================
    ; Func _ShowHotKey($nIndex)
    ;
    ; Display the hotkey for an input control
    ;
    ; $nIndex = The array index for the control
    ;
    ; Returns:
    ; None - the text of the control is set
    ;
    ; Author: WideBoyDixon
    ; ==================================================================================================
    ;### Tidy Error -> func Not closed before "Func" statement.
    ;### Tidy Error -> "func" cannot be inside any IF/Do/While/For/Case/Func statement.
    Func _ShowHotKey($nIndex)
    Local $sText = ""
    $gaHotkeyList[$nIndex][1] = ""

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

    ; Build up the hotkey - display and AutoIt specific
    If BitAND($gaHotkeyList[$nIndex][4], 1) Then
    $gaHotkeyList[$nIndex][1] &= "+"
    $sText &= "SHIFT + "
    EndIf
    If BitAND($gaHotkeyList[$nIndex][4], 2) Then
    $gaHotkeyList[$nIndex][1] &= "^"
    $sText &= "CTRL + "
    EndIf
    If BitAND($gaHotkeyList[$nIndex][4], 4) Then
    $gaHotkeyList[$nIndex][1] &= "#"
    $sText &= "WIN + "
    EndIf
    If BitAND($gaHotkeyList[$nIndex][4], 8) Then
    $gaHotkeyList[$nIndex][1] &= "!"
    $sText &= "ALT + "
    EndIf
    $gaHotkeyList[$nIndex][1] &= $gaHotkeyList[$nIndex][6]
    $sText &= $gaHotkeyList[$nIndex][6]

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

    ; Set the window text and set the selection to be the end of the string
    _WinAPI_SetWindowText($gaHotkeyList[$nIndex][0], $sText)
    _GUICtrlEdit_SetSel($gaHotkeyList[$nIndex][0], StringLen($sText), StringLen($sText))
    EndFunc ;==>_ShowHotKey

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

    ; ==================================================================================================
    ; Func _GetHandleIndex($hWnd)
    ;
    ; Get the index in the array for a window handle
    ;
    ; $hWnd = The window handle of the input control
    ;
    ; Returns:
    ; The array index for the handle or -1 if it's not found
    ;
    ; Author: WideBoyDixon
    ; ==================================================================================================
    ;### Tidy Error -> func Not closed before "Func" statement.
    ;### Tidy Error -> "func" cannot be inside any IF/Do/While/For/Case/Func statement.
    Func _GetHandleIndex($hWnd)
    Local $nI, $nJ = -1
    For $nI = 0 To UBound($gaHotkeyList) - 1
    If $gaHotkeyList[$nI][0] = $hWnd Then
    $nJ = $nI
    ExitLoop
    EndIf
    Next
    Return $nJ
    EndFunc ;==>_GetHandleIndex

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

    ; ==================================================================================================
    ; Func _GetAutoItHotkey($hWnd)
    ;
    ; Get the AutoIt hotkey combination for a window handle
    ;
    ; $hWnd = The window handle of the input control
    ;
    ; Returns:
    ; Success: The AutoIt version of the hotkey which can be used in HotKeySet
    ; Failure: An empty string ("") with @error set to 1
    ;
    ; Author: WideBoyDixon
    ; ==================================================================================================
    ;### Tidy Error -> func Not closed before "Func" statement.
    ;### Tidy Error -> "func" cannot be inside any IF/Do/While/For/Case/Func statement.
    Func _GetAutoItHotkey($hWnd)
    Local $nIndex = _GetHandleIndex($hWnd)
    If $nIndex = -1 Then Return SetError(1, 0, "")
    Return SetError(0, 0, $gaHotkeyList[$nIndex][1])
    EndFunc ;==>_GetAutoItHotkey

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

    ; ==================================================================================================
    ; Func _SetAutoItHotkey($hWnd, $sAutoitKey)
    ;
    ; Set the AutoIt hotkey combination for a window handle
    ;
    ; $hWnd = The window handle of the input control
    ; $sAutoitKey = The Autoit hotkey string
    ;
    ; Returns:
    ; Success: The AutoIt version of the hotkey which can be used in HotKeySet
    ; Failure: An empty string ("") with @error set to 1
    ;
    ; Author: WideBoyDixon
    ; ==================================================================================================
    ;### Tidy Error -> func Not closed before "Func" statement.
    ;### Tidy Error -> "func" cannot be inside any IF/Do/While/For/Case/Func statement.
    Func _SetAutoItHotkey($hWnd, $sAutoitKey)
    Local $nIndex = _GetHandleIndex($hWnd), $sKey = $sAutoitKey
    If $nIndex = -1 Then Return SetError(1, 0, False)
    $gaHotkeyList[$nIndex][4] = 0
    $gaHotkeyList[$nIndex][5] = False
    $gaHotkeyList[$nIndex][6] = ""
    While StringInStr("+^#!", StringLeft($sKey, 1)) > 0
    Switch StringLeft($sKey, 1)
    Case "+"
    $gaHotkeyList[$nIndex][4] += 1
    Case "^"
    $gaHotkeyList[$nIndex][4] += 2
    Case "#"
    $gaHotkeyList[$nIndex][4] += 4
    Case "!"
    $gaHotkeyList[$nIndex][4] += 8
    EndSwitch
    $sKey = StringMid($sKey, 2)
    WEnd
    $gaHotkeyList[$nIndex][6] = $sKey
    _ShowHotKey($nIndex)
    EndFunc ;==>_SetAutoItHotkey

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

    $hotkeyfenster = GUICreate("Tastenbelegung ändern", 300, 230)
    GUICtrlCreateLabel("Start :", 8, 10)
    GUICtrlCreateLabel("Stopp", 8, 45)
    GUICtrlCreateLabel("Lauter :", 8, 80)
    GUICtrlCreateLabel("Leiser :", 8, 115)

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

    $okbutton = GUICtrlCreateButton("&Speichern", 110, 180, 80, 23)
    Dim $cEdit1 = GUICtrlCreateInput("-", 110, 10, 130, 24)
    Dim $hwndEdit1 = GUICtrlGetHandle($cEdit1)
    Dim $cEdit2 = GUICtrlCreateInput("-", 110, 45, 130, 24)
    Dim $hwndEdit2 = GUICtrlGetHandle($cEdit2)
    Dim $cEdit3 = GUICtrlCreateInput("-", 110, 80, 130, 24)
    Dim $hwndEdit3 = GUICtrlGetHandle($cEdit3)
    Dim $cEdit4 = GUICtrlCreateInput("-", 110, 115, 130, 24)
    Dim $hwndEdit4 = GUICtrlGetHandle($cEdit4)
    GUISetState(@SW_SHOW)

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

    _ToggleAsHotkeyControl($hwndEdit1)
    _ToggleAsHotkeyControl($hwndEdit2)
    _ToggleAsHotkeyControl($hwndEdit3)
    _ToggleAsHotkeyControl($hwndEdit4)

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

    While 1
    Sleep(50)
    $guimsg = GUIGetMsg()
    Switch $guimsg
    Case $GUI_EVENT_CLOSE
    GUIDelete($hotkeyfenster)
    Exit
    Case $okbutton
    IniWrite(@ScriptDir & "\Eigene_Radios.ini", "Section Hotkeys", "Hotkeystart", _GetAutoItHotkey($hwndEdit1))
    IniWrite(@ScriptDir & "\Eigene_Radios.ini", "Section Hotkeys", "Hotkeystopp", _GetAutoItHotkey($hwndEdit2))
    IniWrite(@ScriptDir & "\Eigene_Radios.ini", "Section Hotkeys", "Hotkeylauter", _GetAutoItHotkey($hwndEdit3))
    IniWrite(@ScriptDir & "\Eigene_Radios.ini", "Section Hotkeys", "Hotkeyleiser", _GetAutoItHotkey($hwndEdit4))
    GUIDelete($hotkeyfenster)
    Exit
    EndSwitch
    WEnd
    ;~ EndFunc ;==>_SetAutoItHotkey

    [/autoit]
    Alles anzeigen
  • HotKey Aufzeichnen

    • foorschtbar
    • 3. Dezember 2009 um 17:21

    Ich möchte das er die Tastenkombination aufgezeichnet wird wie "Drücken sie jetzt einen Tastenkombination" und dann steht da "[alt] + [Strg] + [3]", dann registriere ich das alt Hotkey und alle sind glücklich :)

  • HotKey Aufzeichnen

    • foorschtbar
    • 3. Dezember 2009 um 16:25

    Hallo,

    wie kann ich einen Tastenkombination aufzeichne zb. [alt] + [F11] oder sowas? Möchte diese Funktion in ein GUI einbauen...

    Gruß Fabian

  • Mauscursor über Label ändern

    • foorschtbar
    • 19. November 2009 um 13:36
    Zitat von SEuBo

    Zwischen den beiden Posts waren 2 Minuten vergangen. Wenn ich mal davon ausgehe, dass du noch ca. 30 sekunden zum aufschlagen der Hilfe, sowie zitieren deines alten posts und einfügen des Code Schnipsels gebraucht hast, dann frage ich mich :
    Warum hast du dir nicht 1:30 min mehr Zeit genommen, um zu suchen, BEVOR du das gepostet hast?

    Ganz einfach. Weil ich vorher vergeblich gesucht habe und nach dem Absenden des Posts zufällig ein Arbeitskollege kam der es wusste. Tut mir Leid das ich die Lösung allen zur Verfügung stellen wollte. Scheinbar bin ich der einzige der es nicht wusste... Gruß Fabian

  • Mauscursor über Label ändern

    • foorschtbar
    • 19. November 2009 um 08:11
    Zitat von wischmopp90

    Hallo Community,

    ich möchte gerne das sich der Cursor wenn er über einem Bestimmten Label ist in eine Hand und beim verlassen zurück ändert. Wie geht das?

    Gruß Fabian

    Gefunden:

    Code
    GUICtrlSetCursor(-1, 0)
  • Mauscursor über Label ändern

    • foorschtbar
    • 19. November 2009 um 08:09

    Hallo Community,

    ich möchte gerne das sich der Cursor wenn er über einem Bestimmten Label ist in eine Hand und beim verlassen zurück ändert. Wie geht das?

    Gruß Fabian

  • Fenster-Focus

    • foorschtbar
    • 6. Oktober 2009 um 13:09
    Zitat von AutoBert

    Hallo wischmopp90,

    wichtig ist auch der Parameter Parent bei GuiCreate , schau dir mal Funktion zur Osterberechnung jetzt als UDF und modalem Meldungsfenster'] da habe ich diese Technik angewendet,

    mfg (Auto)Bert

    Funktioniert super. Danke. @SW_DISABLE ist die lösung...

  • Fenster-Focus

    • foorschtbar
    • 5. Oktober 2009 um 16:27

    Schau ich mir morgen mal an. Danke. Hört sich aber gut an.

  • Fenster-Focus

    • foorschtbar
    • 5. Oktober 2009 um 15:54

    Hallo,

    ich finde leider keine Antwort im Forum. Und zwar es geht um folgendes: Ich möchte aus einem GUI ein neues GUI erzeugen. Solange dieses aber geöffnet soll man nicht auf das "Mutter"-Fenster klicken können. Ist ja bei vielen Dialogboxen so, nur wie geht das? Es so sich natürlich nicht dahinter verstecken lassen etc. Also auf DAU-Prooft.

    Gruß Fabian

  • Interprocess Kommunikation

    • foorschtbar
    • 23. September 2009 um 08:22

    Die Commandline habe ich schon erforscht mit dem ProcessExplorer. Dort passiert nichts. Werde mir mal die Sachen vom eF_Hacks anschauen...

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™