
zackrspv
Active Members-
Posts
420 -
Joined
-
Last visited
About zackrspv
- Birthday 12/02/1979
Profile Information
-
Location
USA
Recent Profile Visitors
384 profile views
zackrspv's Achievements

Universalist (7/7)
6
Reputation
-
mLipok reacted to a post in a topic: RTF2HTML Conversion
-
mesale0077 reacted to a post in a topic: [SOLVED] Transparent Control Background
-
mesale0077 reacted to a post in a topic: [SOLVED] Transparent Control Background
-
meows reacted to a post in a topic: MessageBox Constants
-
Nah I'm allowed to have whatever attitude i wish Just like anyone else on this forum, i'm allowed to post whenever, and however I wish. As long as i dont break the terms of service (which i havn't flamed, or done anything wrong therein), i'm fine But, anywho. i'm sure you'll end up replying to this with some retort or something, but i have better things to do than read those. So, have fun
-
have i been paying attention to the forums at all? no, not really. Do i really care if i answer a dup post? No, not really. information is information. i'm allowed to reply to whatever thread I want. I didn't cuss anyone out, i didn't state anything that's untrue, i didn't do anything wrong. So yeah, whatever.
-
Whenever i need to validate a URL entry from a client, I really just do a basic url stat test, and sure there's data after it: local $URL_Heads = "http|https|file|ftp|gopher|rtsp" $URL = StringRegExp(GUICtrlRead($inp_Url), "["&$URL_Heads&"]\://(.*?)",3,1) if NOT IsArray($URL) then MsgBox(16, "Invalid URL error", "URL " & GUICtrlRead($inp_Url) & @LF & "either blank or invalid." & @LF & @LF & "Error: " & @error, 10) Else MsgBox(0, "Good", "URL is valid: "&GUICtrlRead($inp_Url)) EndIf If it passes the heads test, then i do a simple connect test to ensure the URL is valid. I do check for DNS providers as well, as many people who use Google DNS, OpenDNS, FreeDNS, etc, will be given an ip address regardless of what URL they type in. (This check is simple, just make up a random URL, ping it, record the IP i nthe script as the DNS related IP address, then ping the above URL to obtain the address, compare, and if the same, then the URL is invalid). But, i have found, with security standards changing, that pinging a web address isn't really effective to see if it's valid. instead, creating a connection to it (web based), or TCP based for the others, is necessary. There are many functions that can do this, most notably the _IE* ones, and the TCPConnect* ones. My general rule of thumb is: Verify Text inputVerify endpoint (with either IE or TCP based on head) Doesn't even need to be this complex, honestly. Just verify the heads, and go, and do some error handling on your connect strings.
-
I see how to use the functions, but i'm not that much of an expert on structs using Au3. $tSystem = _Date_Time_GetSystemTime() $tLocal = _Date_Time_SystemTimeToTzSpecificLocalTime(DllStructGetPtr($tSystem)) ConsoleWrite("System time to local time .: " & _Date_Time_SystemTimeToDateTimeStr($tLocal )&@CRLF) $tLocal = _Date_Time_GetLocalTime() $tSystem = _Date_Time_TzSpecificLocalTimeToSystemTime(DllStructGetPtr($tLocal)) Let's assume that i already have a DTG in GMT from the server, how do i plug that into the 2nd structure to convert it from System to Local time? GMT_stamp="20110302T13:28:13" Would be the example time stamp from the server. Which i need to convert from GMT over to Local time to display in the application. Now, I assume that i'm going to have to do some manipulations to get that to work, such as pull the date, month, year out of that, and then pull the 13:28:13 out of it as well. Which i can do via regex just fine. But how do i create the struct?
-
So, Our new jabber server has the ability to send some data to us, but unfortunately, the requests, responses, and data is all encoded with GMT time. So, it makes it hard for me to figure out just what exactly is going on, considering that, for my application, I have to be able to send requests from the LOCAL time, encode it in GMT, send to server, receive response, DECODE to local time from GMT, and post to screen. The problem here, is that not everyone uses the same time zone, and finding the time zone in the registry is just too slow, and too unreliable if the person doesn't auto handle daylight savings time. So, i'm stumped. How can i convert the current time on the computer, to GMT, and then from GMT to the local time on the computer, taking into account that i have users across almost all time zones in the US? I did a search, went through literally dozens of posts, and most pointed to the Auto3Lib UDF, but that's been removed, as have many of the _TIME* functions, so not sure where to go from here.
-
Sent an email on down to the developers of Skin Sharp, great people, good comunication skills (for being non native english speakers). They identified the above bugs as actual issues, and are working on a resolve that should be out soon. I hope they can work it out soon, i love this DLL.
-
I dont wish to hijack this thread, so, no, i wont provide that demo here. However, the link i provided above, to ProgAndy's website, has a zip you can download with the UDF and demo. You really dont have to do anything special, just like the OP's post, you just add the init, and load and boom, you have a skin.
-
Interesting concept, and would cool skinned. However, when i move the keyboard to another monitor, and try to use it to control a window, it resets to 0,0 on the primary monitor (mouse moves there that is), and you have to keep moving back for every keypress. Win 7 x64 here.
-
ProgAndy's UDF for uscript works wonders. Even the free version is awesome. http://progandy.co.cc/downloads/view.download/6 is the link. I've used it to skin many a GUI with .msstyle files, which you can easilly find online. Even works with aero on, and on multiple monitors.
-
Interesting concept. Looks like it has some compatibility issues with Aero (on vista and win7). Also, like the last Skin UDF you mentioned (skin sharp), it has the same window position issues. meaning if on primary monitor the buttons in the title bar work, but if on secondary montior, they do not. Not sure if that is an issue w/ aero, or not, but should be addressed, in my opinion, so that it works with aero w/o an issue. Also, when opening the 'File Open Dialog', it flashes the child UI and you have to move your mouse around to see all of the buttons on the screen. bit delayed, and not workin nicely.
-
The following issues: Unable to click menu optionsUnable to click maximize, minimize, closeMenu's activated with alt key appear on separate monitorAll stem from a multi-monitor incompatiblity with this dll. When i ran the included test file on my PRIMARY monitor, skinned and unskinned, the menu's and buttons worked like a charm. But when I moved the window (GUI) to my 2nd monitor, I was unable to click any menu choices, or titlebar buttons. Once i moved the window (GUI) back over to my primary monitor, everything worked fine. It's a shame, really. If this dll were multi-monitor supported, things would be awesome, and this dll would be great. But, guess that's just in how the dll was designed.
-
#AutoIt3Wrapper_UseX64=N Yep, same result, can't click menu's or buttons in the titlebar (minimize, maximize, close).
-
Dunno, all i know is the example in your zip is great, however, none of the menus or minimize, maximize, close buttons seem to work when skined. They work fine when not skinned, but as soon as it's skinned, they all = unclickable. I'm on win7 x64 here. No UAC. So not sure what's up. I would LOVE for this to work, so i can release it with my chat program, to give it a fresh interface, but if it doesn't work, then *sighs*.
-
I notice in your example that I cannot click the menu's created, nor can i click the minimize, maximize or close buttons once a skin is applied. Did you have a workaround for that? *Edit: I also notice that when moving the UI to a different scren, and using the mouse to activate the menus (as you can't click on them once a theme is applied) that the menus open away from the menu location. Still properly skinned, but not where they should be. Does one need to BUY the DLL in order to have the menus work?
-
Using the code that martin posted, here's the adapted script to highlight even disabled controls: #include <GuiConstantsEx.au3> #include <WindowsConstants.au3> #include <Misc.au3> Opt("GuiOnEventMode", 1) HotKeySet("{ESC}", "QuitApp") $dll = dllopen("user32.dll") If Not IsDeclared("WM_WINDOWPOSCHANGED") Then Assign("WM_WINDOWPOSCHANGED",0x0047) Global $ahGUI[4] Global $Last_hControl = -1 Global $Frame_Color = 0xff0000;0xFF0000 Global $Frame_Width = 2 Global $hCtrl GUIRegisterMsg($WM_WINDOWPOSCHANGED, "WM_WINDOWPOSCHANGED") While 1 $hCtrl = WindowFromPoint() If $hCtrl <> 0 And $Last_hControl <> $hCtrl And Not IsHighLight_GUIs($hCtrl) Then if not _IsPressed("1") Then $Last_hControl = $hCtrl $aCtrlPos = WinGetPos($hCtrl) GUISquareDelete() GUICreateSquare($aCtrlPos[0], $aCtrlPos[1], $aCtrlPos[2], $aCtrlPos[3]) EndIf Else $aNewCtrlPos = WinGetPos($hCtrl) for $n = 0 to 3 if $aCtrlPos[$n] <> $aNewCtrlPos[$n] Then GUISquareDelete() $hCtrl = 0 $Last_hControl = 0 ExitLoop EndIf Next EndIf WEnd Func GUICreateSquare($X, $Y, $W, $H) $X -= $Frame_Width $Y -= $Frame_Width $W += $Frame_Width $H += $Frame_Width $ahGUI[0] = GUICreate("", $W, $Frame_Width, $X, $Y, $WS_POPUP, $WS_EX_TOPMOST+$WS_EX_TOOLWINDOW) GUISetBkColor($Frame_Color) $ahGUI[1] = GUICreate("", $Frame_Width, $H, $X, $Y, $WS_POPUP, $WS_EX_TOPMOST+$WS_EX_TOOLWINDOW) GUISetBkColor($Frame_Color) $ahGUI[2] = GUICreate("", $Frame_Width, $H, $X+$W, $Y, $WS_POPUP, $WS_EX_TOPMOST+$WS_EX_TOOLWINDOW) GUISetBkColor($Frame_Color) $ahGUI[3] = GUICreate("", $W+$Frame_Width, $Frame_Width, $X, $Y+$H, $WS_POPUP, $WS_EX_TOPMOST+$WS_EX_TOOLWINDOW) GUISetBkColor($Frame_Color) For $i = 0 To 3 GUISetState(@SW_SHOW, $ahGUI[$i]) Next EndFunc Func GUISquareDelete() For $i = 0 To 3 If IsHWnd($ahGUI[$i]) Then GUIDelete($ahGUI[$i]) Next $ahGUI = "" Dim $ahGUI[4] EndFunc Func IsHighLight_GUIs($hCtrl) For $i = 0 To 3 If $ahGUI[$i] = $hCtrl Then Return True Next Return False EndFunc Func WindowFromPoint() Local $point, $cHwnd, $hwnd, $pos, $size $point = MouseGetPos() $hwnd = DLLCall($dll, "hwnd", "WindowFromPoint", "int", $point[0], "int", $point[1]) If $hwnd[0] <> 0 Then $pos = WinGetPos($hwnd[0]) If @error Then Return 0 $size = WinGetClientSize($hwnd[0]) If @error Then Return 0 $pos[0] += (($pos[2] - $size[0]) / 2) $pos[1] += (($pos[3] - $size[1]) - (($pos[2] - $size[0]) / 2)) $cHwnd = DLLCall($dll,"hwnd","RealChildWindowFromPoint","hwnd",$hwnd[0], _ "int",$point[0] - $pos[0],"int",$point[1] - $pos[1]) If $cHwnd[0] <> 0 Then $hwnd[0] = $cHwnd[0] EndIf Return $hwnd[0] EndFunc Func WM_WINDOWPOSCHANGED($hWndGUI, $MsgID, $WParam, $LParam) If $hWndGUI = $hCtrl Then GUISquareDelete() $Last_hControl = -1 Else Return $GUI_RUNDEFMSG EndIf EndFunc Func QuitApp() DllClose($dll) Exit EndFunc