Windows Self-Rename abschalten und auslesen

  • Hiho,

    ich habe gesehen, dass man mit AutoIt auch Fenstern verbieten kann, den Title zu ändern. Leider find ich aber keine entsprechende Funktion. Wichtig wäre auch in dem zusammenhang, später wieder rauszufinden, bei welchem Fenster die Funktion aktiviert wurd.

    kann jmd helfen?

    beispielscript ist dieses, leider finde ich mich zu diesem thema im code nicht zurecht: http://www.autoitscript.com/forum/index.php?showtopic=81398&st=0

  • Hiho,

    so, ich bin jetzt an dieser Funktion dran. Also so wir ihr es beschreibt, würde es gehen, aber irgendwie glaube ich, geht es auch leichter.
    leider kann ich den code nicht genau analysieren, also verstehen, aber könnte das nicht dafür sein?

    [autoit]

    Func ShellHookWindow($hWnd, $bFlag)
    Local $sFunc = 'DeregisterShellHookWindow'
    If $bFlag Then $sFunc = 'RegisterShellHookWindow'
    Local $aRet = DllCall('user32.dll', 'int', $sFunc, 'hwnd', $hWnd)
    Return $aRet[0]
    EndFunc

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

    Func RegisterWindowMessage($sText)
    Local $aRet = DllCall('user32.dll', 'int', 'RegisterWindowMessage', 'str', $sText)
    Return $aRet[0]
    EndFunc

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

    Func On_WM_SYSCOMMAND($hWnd, $Msg, $wParam, $lParam)
    Switch BitAND($wParam, 0xFFF0)
    Case $SC_MOVE, $SC_SIZE
    Case $SC_CLOSE
    ShellHookWindow($form2, 0)
    Return $GUI_RUNDEFMSG
    EndSwitch
    EndFunc

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

    Func initMinMax($x0,$y0,$x1,$y1)
    Local Const $WM_GETMINMAXINFO = 0x24
    $aUtil_MinMax[0]=$x0
    $aUtil_MinMax[1]=$y0
    $aUtil_MinMax[2]=$x1
    $aUtil_MinMax[3]=$y1
    GUIRegisterMsg($WM_GETMINMAXINFO,'MY_WM_GETMINMAXINFO')
    EndFunc

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

    Func MY_WM_GETMINMAXINFO($hWnd, $Msg, $wParam, $lParam)
    Local $minmaxinfo = DllStructCreate('int;int;int;int;int;int;int;int;int;int',$lParam)
    DllStructSetData($minmaxinfo,7,$aUtil_MinMax[0]); min X
    DllStructSetData($minmaxinfo,8,$aUtil_MinMax[1]); min Y
    DllStructSetData($minmaxinfo,9,$aUtil_MinMax[2]); max X
    DllStructSetData($minmaxinfo,10,$aUtil_MinMax[3]); max Y
    Return $GUI_RUNDEFMSG
    EndFunc

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

    func _Rename_Window()
    Local $get_win = _get_item_substring()
    if $get_win[6] <> "" AND $get_win[6] <> $form2 Then
    Local $hwnd2 = HWnd($get_win[6]);WinGetHandle($get_win[0])
    _toggle_hooker()
    Local $new_name = _My_Input_Box($get_win[0])
    _toggle_hooker()
    if $new_name <> -1 then
    ;~ MsgBox(0, "ok", $hwnd2 & ", " & $get_win[6])
    $allow_renaming_global = false
    WinSetTitle($hwnd2, "", $new_name)
    _GUICtrlListView_SetItem($listt, $new_name, $get_win[4])
    _set_above_win()
    EndIf
    $allow_renaming_global = true
    Else
    SoundPlay(@WindowsDir & "\media\ding.wav",0)
    EndIf
    EndFunc

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

    func _change_title_window($handle, $title)
    Local $item_index = 9999999
    ;~ Local $get_state = _get_item_substring()
    for $w = 0 to _GUICtrlListView_GetItemCount($listt)-1
    if _GUICtrlListView_GetItemText($listt, $w, 6) = $handle Then
    $item_index = $w
    ExitLoop
    endif
    Next
    if $item_index <> 9999999 then
    if _GUICtrlListView_GetItemText($listt, $item_index, 4) = "Allow" then
    _GUICtrlListView_SetItemText($listt, $item_index, $title)
    Else
    if $allow_renaming_global = true Then
    WinSetTitle($handle, "", _GUICtrlListView_GetItemText($listt, $item_index, 0))
    Sleep(10)
    EndIf
    EndIf
    EndIf
    EndFunc

    [/autoit]