Hi,
I keept playing with some tooltips inside the function and I found that hooking to sheel it's so quick that the created win hasn't have it's Title yet
I got the copying... and moving... windows but not the deleting...
(Actually now I'm running an other script (I'll post it when looks less like frankkestain) from my main that launches with parameters and then call ShellFileOperation().
That has the advantaje that the main script can do something else and even reload without afecting the copy, move etc.)
I think I don't get deleting... because I'm not using ShellFileOperation() for Deleting.
I'm sending {Del} or +{Del} to Win Explorer
Do you know the flags on the ShellFileOperation() for deleting to Recycle and deleting without sending in to the recycle bin????
Any help there appreciated!!!
So this is how the complete function looks like now, a few vars comes from my main script.
This funtion is on a separate script that check New wins created and Redraw it (wParam 1 and 6)
An does a variaty of things
1) Apply styles
2) Set list view in win Explorer to current choice (icons, list, details etc)
3) block some nasty pop ups
Still testing any ideas wellcome
(this is not stand allone function you need to set the variables to run it properly)
Code:
ShellMessage( wParam,lParam )
{
If wParam not in 1,6 ;ALL WPARAM THAT THIS AHK WORKS WITH OTHERWISE RETURN
Return
WinGetClass, ACTIVE_WIN_CLASS, ahk_id %lParam% ;TO CHECK THAT THIS WIN BELONGS TO ONE OF ALL CLASSES THAT THIS AHK WORKS WITH, OTHERWISE RETURN
If ACTIVE_WIN_CLASS not in IEFrame,MozillaUIWindowClass,CabinetWClass,ExploreWClass,Notepad,Notepad++,AU3Reveal,HH Parent,TForm_Main,TMainForm.UnicodeClass
,ShImgVw:CPreviewWnd,AutohotKey,AutoHotkeyGUI,OpusApp,XLMAIN,rctrl_renwnd32,#32770,WMPlayerApp
{
If ACTIVE_WIN_CLASS <>
If ACTIVE_WIN_CLASS not Contains Afx:00400000:b:
If ACTIVE_WIN_CLASS not in TApplication,gdkWindowToplevel
{
ToolTip, Wrong Win Class`nClass: %ACTIVE_WIN_CLASS%`nTitle: %ACTIVE_WIN_TITLE%
SetTimer, RemoveToolTip, 4000
SoundBeep, 100, 200
}
Return
}
If ACTIVE_WIN_CLASS in CabinetWClass,ExploreWClass ;FIRST TO RETURN BECAUSE FOR EXPLORER CLASSES BOTH WPARAM 1 AND 6 SHOLD TRIGGER THIS
{
WinGetTitle, ACTIVE_WIN_TITLE, ahk_id %lParam%
ControlGetText, ACTIVE_WE_CURRENT_PATH, Edit1, ahk_id %lParam% ;GET WORKING PATH
EnvGet, SET_WE_VIEW_TO_MSG, SET_WE_VIEW_TO_MSG_CHOSEN ;THIS WILL BE THE MESSAGE SENT UNLESS IS MODIFYED BY FOLDER
EnvGet, CUSTOM_WE_VIEW_STATUS, CUSTOM_WE_VIEW_STATUS ;REPLACE FOR PARAMETERS
If CUSTOM_WE_VIEW_STATUS = MERGE ;THIS IS DEFAULT OPTION AND WILL MERGE SELECTED VIEW WITH CUSTOM ONES
{
IfInString, ACTIVE_WE_CURRENT_PATH, \My Music ;NEED TO BE IN THIS PARTICULAR ORDER TO AUTO FILTER ITSELF
SET_WE_VIEW_TO_MSG = 28715 ;List
IfInString, ACTIVE_WE_CURRENT_PATH, \My Music\
{
SET_WE_VIEW_TO_MSG = 28717 ;Thumbnails
;COUNT "\" to go back to list when inside albums
}
IfInString, ACTIVE_WE_CURRENT_PATH, \My Pictures
SET_WE_VIEW_TO_MSG = 28715 ;List
IfInString, ACTIVE_WE_CURRENT_PATH, \My Pictures\
SET_WE_VIEW_TO_MSG = 28717 ;Thumbnails
IfInString, ACTIVE_WE_CURRENT_PATH, \DVD Covers
SET_WE_VIEW_TO_MSG = 28715 ;List
IfInString, ACTIVE_WE_CURRENT_PATH, \DVD Covers\
SET_WE_VIEW_TO_MSG = 28717 ;Thumbnails
}
If ACTIVE_WE_CURRENT_PATH in My Computer,My Documents
SET_WE_VIEW_TO_MSG = 28715 ;List
If ACTIVE_WE_CURRENT_PATH = C:\Documents and Settings\%A_UserName%\My Documents
SET_WE_VIEW_TO_MSG = 28715
If ACTIVE_WE_CURRENT_PATH = %A_MyDocuments%\
SET_WE_VIEW_TO_MSG = 28715 ;Thumbnails UP TO THIS SETTINGS CAN NOT BE OVERIDE AS CUSTOM SETTINGS
If ACTIVE_WIN_TITLE = Search Results
SET_WE_VIEW_TO_MSG = 28716 ;Details
If SET_WE_VIEW_TO_MSG in 28713,28715,28716,28717,28718 ;CHECK IN MATCHING LIST BEFORE SEND
{
IfWinExist, ahk_id %lParam%
{
PostMessage, 0x111, %SET_WE_VIEW_TO_MSG%, 0 , , ahk_id %lParam% ;SET VIEW WIN EXPLORER TO TIMMER SETTINGS
; ToolTip, List Style Appled
; SetTimer, RemoveToolTip, 1000
}
}
Return
}
If wParam = 1 ; HSHELL_WINDOWCREATED := 1
{
; Critical
If ACTIVE_WIN_CLASS in IEFrame,MozillaUIWindowClass ;INTERNET EXPLORER NEEDS MORE TIME TO GET THE FINAL WIN TITLE
LOOP_LENGTH = 400
Else
LOOP_LENGTH = 150
Loop,
{
Sleep 10 ;Helps to see the title AND REDUCE CPU
WinGetClass, ACTIVE_WIN_CLASS, ahk_id %lParam%
WinGetTitle, ACTIVE_WIN_TITLE, ahk_id %lParam%
If ACTIVE_WIN_CLASS not in TApplication
If (ACTIVE_WIN_TITLE <> "") && (ACTIVE_WIN_TITLE <> "Microsoft Internet Explorer") && (ACTIVE_WIN_TITLE <> "Microsoft Internet Explorer provided by COMPANY_NAME")
Break
If (A_Index > LOOP_LENGTH)
{
ToolTip, Win Data Not Found`nTitle: %ACTIVE_WIN_TITLE%`nClass: %ACTIVE_WIN_CLASS%
SetTimer, RemoveToolTip, 4000
SoundBeep, 100, 200
Return
}
}
SoundBeep, 4800, 50
ToolTip, New Win Open`nTitle: %ACTIVE_WIN_TITLE%`nClass: %ACTIVE_WIN_CLASS%
SetTimer, RemoveToolTip, 4000
If ACTIVE_WIN_CLASS = #32770
If ACTIVE_WIN_TITLE in Copying...,Deleting...
{
Control, Disable, , Button1, ahk_id %lParam%
WinSet, Transparent, 200, ahk_id %lParam%
WinSet, AlwaysOnTop, On, ahk_id %lParam%
ControlGetPos, CONTROL_0_X, CONTROL_0_Y, CONTROL_0_W, CONTROL_0_H, SysAnimate321, ahk_id %lParam%
ControlGetPos, CONTROL_1_X, CONTROL_1_Y, CONTROL_1_W, CONTROL_1_H, Button1, ahk_id %lParam%
WinGetPos, WIN_X, WIN_Y, WIN_W, WIN_H, ahk_id %lParam%
X0 := CONTROL_0_X - 6
Y0 := CONTROL_0_Y + CONTROL_0_H - 1 ;MAY NEED ADJUSTMENTS IF SYS FONT IS NORMAL ETC
X1 := CONTROL_1_X - X0
Y1 := CONTROL_1_Y + CONTROL_1_H - Y0 + 14
WinSet, Region, %X0%-%Y0% W%X1% H%Y1% R20-20, ahk_id %lParam%
MCRD_WIN_ENABLED = 0 ;RESET VALUE
WinGet, MCDR_WIN_GROUP_ID_LIST, list, ahk_group MCDR_WIN_GROUP
Loop, %MCDR_WIN_GROUP_ID_LIST%
{
MCDR_WIN_GROUP_ID_LIST_CURRENT := MCDR_WIN_GROUP_ID_LIST%A_Index%
ControlGet, MCRD_WIN_ENABLED, Enabled, , Button1, ahk_id %MCDR_WIN_GROUP_ID_LIST_CURRENT%
MCRD_WIN_ENABLED += MCRD_WIN_ENABLED ;ZERO ID DISABLE
}
MCRD_WIN_DISABLED := MCDR_WIN_GROUP_ID_LIST - MCRD_WIN_ENABLED
SysGet, MonitorWorkArea1, MonitorWorkArea, 1
WIN_MOVE_X := MonitorWorkArea1Right - X0 - X1
WIN_MOVE_Y := MonitorWorkArea1Bottom - Y0 - (Y1 * MCRD_WIN_DISABLED) ;MULT BY THE NUMBER OF MCDR WINS
WinMove, ahk_id %lParam%, , WIN_MOVE_X, WIN_MOVE_Y
}
If ACTIVE_WIN_CLASS in IEFrame,MozillaUIWindowClass ;INTERNET EXPLORER, FIREFOX ETC
{
If ACTIVE_WIN_TITLE Contains media.fastclick.net,BestDietForMe.com,adserving.cpxinteractive.com
,casalemedia.com,partypoker,ezytones.net,You've Won,%COMPANY_NAME% - Access Denied
{
WinClose, ahk_id %lParam%
ToolTip, Pop Up Win Closed`nTitle: %ACTIVE_WIN_TITLE%`nClass: %ACTIVE_WIN_CLASS%
SetTimer, RemoveToolTip, 3000
}
}
If ACTIVE_WIN_CLASS not in ThunderRT6FormDC,gdkWindowToplevel ;,#32770
{
WinSet, Style, ^0x40000, ahk_id %lParam% ; MAKE WINDOW BORDERLESS
; ToolTip, Win Style Aplyed
; SetTimer, RemoveToolTip, 1000
}
}
}