Jump to content

_SplitMon:Window Mgmt Suite!


fisofo
 Share

Recommended Posts

I wondered if my message would be interpreted as a offer of genuine help versus the stab in the back you seem to have taken it as. This will be my only response to this issue as the always ensuing flame war (or any for that matter) is pointless. I don't mean to sound rude but there are some issues that need to be addressed.

Easy man, I'm not trying to attack you, just trying to understand... I too do not want a flame war, but a civilized dialog to get on the same page... sorry if my words sounded harsh, but you have to understand I was a bit shocked at first.

If you do not want to try to finish the dialog in a civilized manner, that is fine, but I do feel that I should respond so that we can at least attempt to be on the same page... I'm not trying to make enemies here, but to come to an understanding.

First: I understand your almost parent-like attachment to your project but you have to lose the ego and understand that the vultures (other coders) will pick the sweet meat (functions and such) for their own chicks (projects). I give credit everywhere in my projects, documentation, and forum posts if I use another's code or idea as I feel I owe them at least that much.

This has nothing to do with my ego, I too am completely open to people using my code... but it appeared to me that you were just duplicating my efforts and taking credit. I raised up the issue to figure out your motives. I fully understand that opening my code up to everyone leaves it vulnerable to "vultures" as you call them, but if it is within my power to address a possible issue, I will do so. I'm sure you don't consider yourself a vulture, and I did not intend to imply you were, that's why I did my best to be civilized (obviously it could have been better, but I was not too happy at the time). If I regarded you as just some punk, I would have told you off instead of asking questions. Just to be clear, I do not regard you as such, which is why I want to make the effort to mend this.

Secondly: My post indicated that if he needed simple window manipulation, he could *try* mine. Did I say "My project is the the bomb, dewd...forget about this _SplitMon project. Mine does everything!"? No, I didn't. Relocate is similar to SplitMon in window repositioning only. That is where mine stops. I have no plans to revise my project scope and develop additional features.

thank you for the clarification, I was more referring to what I saw on your website, but I understand.

Third: *At the time* I tried your project, _SPLITMON DID NOT HAVE THE ABILITY TO MOVE WINDOWS INTO NEIGHBORING MONITORS ergo no multi-monitor support, so my statement is true. This is the main and only reason I created my own project...I saw a greate idea, needed it, and wanted to address it ASAP. This also served as a learning opportunity for me to get direct experience with the way Windows manages its desktop.

Easy on the caps brother :) I consider this a minor detail, but listen, although my program did not move windows in the same manner as yours currently does, my function did have multi-monitor support. I checked your website, you started on the 8th of february. That was when version 2.4 was out, but perhaps you saw 2.3. in either case, my code not only found multiple monitors, but allowed you to move a window to another monitor by hitting a hotkey twice (v2.3) or once in the direction of a monitor (v2.4). I completely understand if you missed this, or perhaps it had a bug on your system, but it was there nonetheless, in the code and in the first post.

Fourth: I have made a few contributions to your project however, I dedicate most of my time to improving my own projects. Unfortunately, this does thin out the thinktank a bit. Anybody that writes code (at least at our level; trying to make small full blown utilities) would say the same. As time permits and if something relevant comes across our plate we distribute as needed to those we think we can help, as I have.

agreed.

Fifth: Repositioning twice...I take it you're refering to my restore/move/maximize procedure. Yes, you can move a maximized window however it creates a window that cannot be manually resized thereafter. Obviously, a window state that would never occur normally. Additionally, I'm working on monitors with different resolutions at the same time...you just can't move a window into another screen expecting the res to be the same.

Sorry, but you imply something my code does not do. This is another very minor issue, but look at "SetWindowPlacement" in _NewWinMove. my code moves once changes the state at the same time. It works. I also have made an attempt to consider monitor resolutions, but am still improving upon it.

Sixth: As for donations, they are totally voluntary. The projects I author have no nags, no limitations, nor do I shove a "DONATE NOW" screen in anyones face. The donations I receive help me recover hosting costs to serve out my own website and keep DP on my desk while I stare for hours at the 1,000/1 contrast off my screen. They are from users that feel that the projects I've authored and the support I've provided them has helped. No one is obligated to donate...RTF donation page!.

I understand, but you gotta understand how shocked I was. Just put yourself in my shoes... from my perspective it looked like you were posting a duplicated version of my code and then asking for donations. you gave credit to me for the idea, but implied yours was different somehow. Obviously there was confusion here, but I'm just giving you what my impression was.

Lastly: Yes, I'm using the same MICROSOFT REMOTE TERMINAL icon as you. What's your point? You ripped off MS first...well you got me there. That you were first to pick the obvious icon to associate with a window repositioning util...you got me there, too.

agreed again. Honestly sorry I brought this one up, I was just still in the moment of being frustrated. And in reality, I stopped using that icon a couple versions ago... sorry for bringing it up, unnecessary.

I offer any of my code so that it may be incorporated elsewhere. No strings. Don't like my coding style; rewrite it. Think you can optimize my functions; go for it. The world doesn't revolve around me and I know that I'm not a master at anything...I have a desire to learn and be helpful and that's good enough for me.

I completely agree with what you said here, my code is (obviously) open for all (I would obfuscate it if I wanted it otherwise), and I too don't consider myself to be a "master" at this (I just got here! :whistle: ), so sorry if I gave a different impression. I sincerely hope you can understand my reaction after seeing where I was coming from.

Listen, there were a lot of things I could be really offended by in your post (implying the world revolves around me, my ego, etc...), but seeing as my goal is not to start a flame war, I have not commented on these and have attempted to not be offensive back. I hope we can come to an understanding on this whole thing.

Link to comment
Share on other sites

  • Replies 127
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Ruffled feathers, dewd. It's kewl.

Glad to hear it, thanks bro.

Now back to coding!

Okay, check this guys, I found that with my new quad monitor setup at work, the script was acting very strangely when moving windows around... I found that the way I was recording monitor id's sometimes returned id's of zero, which then completely hosed my array of Monitors ( doh! :) )

Well, as stupid as it sounds, I finally stumbled upon the magic of Assign and Eval while searching through the helpfile. Man o' man, this is exactly what I've been trying to find. the Code will be updated (and way improved) for v2.5 :whistle:

Link to comment
Share on other sites

Glad to hear it, thanks bro.

Now back to coding!

Okay, check this guys, I found that with my new quad monitor setup at work, the script was acting very strangely when moving windows around... I found that the way I was recording monitor id's sometimes returned id's of zero, which then completely hosed my array of Monitors ( doh! :) )

Well, as stupid as it sounds, I finally stumbled upon the magic of Assign and Eval while searching through the helpfile. Man o' man, this is exactly what I've been trying to find. the Code will be updated (and way improved) for v2.5 :whistle:

This script rocks !

It's exactly what i was looking for... moreover the using of the keypad is a great idea

i just found an error trying to use the CTRL key to select 2 windows:

Line 0  (File "C:\Documents and Settings\User\Bureau\SplitMon_v2[1].4\_SplitMon_v2.4.exe"):
$MonitorX = $Displays[$IDtoDisplays[$hMonitor]][1]
$MonitorX = $Displays[$IDtoDisplays^ ERROR
Error: Subscript used with non-Array variable.

Thank you anyway for this script

Link to comment
Share on other sites

This script rocks !

It's exactly what i was looking for... moreover the using of the keypad is a great idea

i just found an error trying to use the CTRL key to select 2 windows:

Line 0  (File "C:\Documents and Settings\User\Bureau\SplitMon_v2[1].4\_SplitMon_v2.4.exe"):
 $MonitorX = $Displays[$IDtoDisplays[$hMonitor]][1]
 $MonitorX = $Displays[$IDtoDisplays^ ERROR
 Error: Subscript used with non-Array variable.

Thank you anyway for this script

Thanks Jango, and thanks for the bug report! I actually just fixed that, it'll be taken care of in the 2.5 release.
Link to comment
Share on other sites

Just checking in to see if there is any news of v2.5.

Looking forward to the new features when they arrive (especially the Laptop keyboard mapping :whistle: )

My Scripts[topic="73325"]_ReverseDNS()[/topic]Favourite scripts by other members[topic="81687"]SNMP udf[/topic][topic="70759"]Using SNMP - MIB protocol[/topic][topic="39050"]_SplitMon:Section off your monitor!, split your monitor into sections for easy management[/topic][topic="73425"]ZIP.au3 UDF in pure AutoIt[/topic][topic="10534"]WMI ScriptOMatic tool for AutoIt[/topic][topic="51103"]Resources UDF embed/use any data/files into/from AutoIt compiled EXE files[/topic]
Link to comment
Share on other sites

Just checking in to see if there is any news of v2.5.

Looking forward to the new features when they arrive (especially the Laptop keyboard mapping :) )

Sorry it's been a bit quiet this week... It's partly because of roughly 20-some hours of emergency work for a client early in the week (I finally slept wednesday night, woohoo!) and then I was getting vista up and runnin... Sure is pretty, but wow is it a dog!

Laptop Option is what I'm working on now, should be not too bad... updating the GUI sometimes takes me more time than anything else :whistle: I'm hoping to release it Sunday if I can get my coding in tomorrow.

Also I've found that the fixes I made last week must have fixed any incompatibility issues with Vista, cause it's running great for me right now... sweetness! Maybe I should add that "Vista Certified" Icon to the GUI... yeah right :lol:

Btw, I can't seem to get scite to work in Vista... haven't tried much yet, but I definitely don't have syntax highlighting anymore. Weird huh?

edit: although it appears everything works in Vista, the Resizer functionality is incredibly slow because of the shiny Aero effects splattered everywhere... definitely some collateral damage there.

Edited by fisofo
Link to comment
Share on other sites

Found a problem.

Seems that Windows isn't returning back monitor info in any particular order. We need to figure this out as it's impossible to tell exactly which monitor # is enabled or not and therefore where to put window at.

I have two 2 output vid cards. On my PC, monitor #1 is disabled however, the first thing that gets returned in _MonitorInfo is monitor #2's info and returns monitor #1 last (fourth).

Specifically, my results are in 2,3,4,1 order. (maybe that's an order; enabled first, disabled last...however, without a monitor # to ref, we're boned).

If possible (if you figure this out before me), you'll need to add another array element to $MonitorPos in MonitorInfo() to store the monitor #. To test if the monitor is 'enabled', check the width value. If 0, it's disabled.

Sean Shrum :: http://www.shrum.net

All my published AU3-based apps and utilities

'Make it idiot-proof, and someone will make a better idiot'

 

Link to comment
Share on other sites

Found a problem.

Seems that Windows isn't returning back monitor info in any particular order. We need to figure this out as it's impossible to tell exactly which monitor # is enabled or not and therefore where to put window at.

I have two 2 output vid cards. On my PC, monitor #1 is disabled however, the first thing that gets returned in _MonitorInfo is monitor #2's info and returns monitor #1 last (fourth).

Specifically, my results are in 2,3,4,1 order. (maybe that's an order; enabled first, disabled last...however, without a monitor # to ref, we're boned).

If possible (if you figure this out before me), you'll need to add another array element to $MonitorPos in MonitorInfo() to store the monitor #. To test if the monitor is 'enabled', check the width value. If 0, it's disabled.

I think I understand what you're saying, and the problem may actually be with the way I was storing Monitor ID's previously. I have a similar setup to yours, and with the code I updated, the problem seems to have gone away. I will be posting the latest version with said improvements later Sunday... so it may be worthwhile to wait and see how that version works with your system. Hopefully it's already ironed out!

I'll release it as soon as I am able...

Edit: re-reading what you said, it actually may not matter too much... most of my code is not dependent on the windows monitor number, but purely on position. When moving monitor to monitor, I simply use MonitorFromPoint DLL to grab what monitor is next in line... see the _MonitorFromDirection function for how I do it.

Edited by fisofo
Link to comment
Share on other sites

2.5.0 is released! WooHoo!!

I added the .0 so that I can release a .1 if bugs are found... should cut update time a good deal... because otherwise if I find a bug, I don't want to release 2.6 just to get fix out :whistle:

edit: Updated the text in the first post a bit... hopefully i can put together a little video at some point of how the script works. Do you guys think that would be helpful? Or perhaps better descriptions?

Any input would be helpful!

Edited by fisofo
Link to comment
Share on other sites

Great work Chris. There's enough new features here to warrant it being released as version V3.0.0 :whistle:

Thanks for Laptop mode. I can use splitmon at home now :-)

Noticed one small bug

If I change the the setting for mouse wheel move so that a second hot hey is required (say Win key and Ctrl Key) It wont let me change it back to a one hotkey option.

Tip

Have you tried using the stye $CBS_DROPDOWNLIST when creating the combo boxes ? It stops the user from being able to type in any data into them

cheers

Rog

My Scripts[topic="73325"]_ReverseDNS()[/topic]Favourite scripts by other members[topic="81687"]SNMP udf[/topic][topic="70759"]Using SNMP - MIB protocol[/topic][topic="39050"]_SplitMon:Section off your monitor!, split your monitor into sections for easy management[/topic][topic="73425"]ZIP.au3 UDF in pure AutoIt[/topic][topic="10534"]WMI ScriptOMatic tool for AutoIt[/topic][topic="51103"]Resources UDF embed/use any data/files into/from AutoIt compiled EXE files[/topic]
Link to comment
Share on other sites

Great work Chris. There's enough new features here to warrant it being released as version V3.0.0 :whistle:

Thanks for Laptop mode. I can use splitmon at home now :-)

Noticed one small bug

If I change the the setting for mouse wheel move so that a second hot hey is required (say Win key and Ctrl Key) It wont let me change it back to a one hotkey option.

Tip

Have you tried using the stye $CBS_DROPDOWNLIST when creating the combo boxes ? It stops the user from being able to type in any data into them

cheers

Rog

Thank you!

I thought about v3.0, but I figured I'd get everything off the to-do list first :)

I see what you mean about the hotkey, I'll work on fixing that... and good point on CBS_DROPDOWNLIST, that will definitely go in. Thanks!

Edited by fisofo
Link to comment
Share on other sites

Another quick bug fix was just put in... the Mousewheel monitor-to-monitor movement sometimes wouldn't work on startup because of the logic I used in extracting INI settings. Fixed now :whistle:

How's it working for everyone so far?

Link to comment
Share on other sites

I think this should be one of the last updates until I finish working on 2.6 features. Fixed a few things, see the first post. I'm hoping to have 2.6 out next week sometime, we'll see... I'll release new 2.5.x versions if more bugs come up, but it seems to be working pretty well right now.

Later :whistle:

Link to comment
Share on other sites

1) Bug.

If I hold down <Windows><Down><Right> or other three key combos, after a few seconds I get a recurrsion level error

2) Request - Always maximise to half screen

a- Could this be enhanced so that it is only activated if you are holding down the winssplit activation key (e.g windows + left double click)

B- Could you make the Max to half screen a definable max to x% width . I would like to be able to set it to default to 75% width (useful when using widscreen)

thanks

Edited by rogdog
My Scripts[topic="73325"]_ReverseDNS()[/topic]Favourite scripts by other members[topic="81687"]SNMP udf[/topic][topic="70759"]Using SNMP - MIB protocol[/topic][topic="39050"]_SplitMon:Section off your monitor!, split your monitor into sections for easy management[/topic][topic="73425"]ZIP.au3 UDF in pure AutoIt[/topic][topic="10534"]WMI ScriptOMatic tool for AutoIt[/topic][topic="51103"]Resources UDF embed/use any data/files into/from AutoIt compiled EXE files[/topic]
Link to comment
Share on other sites

1) Bug.

If I hold down <Windows><Down><Right> or other three key combos, after a few seconds I get a recurrsion level error

2) Request - Always maximise to half screen

a- Could this be enhanced so that it is only activated if you are holding down the winssplit activation key (e.g windows + left double click)

B- Could you make the Max to half screen a definable max to x% width . I would like to be able to set it to default to 75% width (useful when using widscreen)

thanks

Thanks for the infos! I'll have to see what I can do about those... I like the idea for the hotkey for half maximize, that would make the "detection" much simpler really.

As for the Max to half screen width... are you thinking a seperate width than the split percents for the winsplit code? Shouldn't be a problem, just curious as to what you were thinking.

I can probably get a bugfix out this week, it may take me longer than I thought to do the other stuff I was looking at though because I'm in the midst of organizing a few trips right now... I'll probably dive more into it next week.

Link to comment
Share on other sites

Yep, I was think that the width for the mazimise would be a seperate setting.

Thinking aloud, maybe a better method would be to define zones areas. Each Zone would be like a virtual mini screen. If a maximise took place then the window would maximise into the zone that the window was currently in.

Zones could overlap.

e.g Zone 1 could be the left 2/3 of the screen Zone2 could be the right 2/3 of the screen

If the user 'maximises' a window that was currently running on the left then the window would fill the left 2/3 of the screen

If the user 'maximises' a window that was currently running on the right then the window would fill the right 2/3 of the screen

Some of this may fit in with the 'WinSpaces' you are developing

as I said , I am just thinking aload. If it is a bad idea then forget it.

cheers

My Scripts[topic="73325"]_ReverseDNS()[/topic]Favourite scripts by other members[topic="81687"]SNMP udf[/topic][topic="70759"]Using SNMP - MIB protocol[/topic][topic="39050"]_SplitMon:Section off your monitor!, split your monitor into sections for easy management[/topic][topic="73425"]ZIP.au3 UDF in pure AutoIt[/topic][topic="10534"]WMI ScriptOMatic tool for AutoIt[/topic][topic="51103"]Resources UDF embed/use any data/files into/from AutoIt compiled EXE files[/topic]
Link to comment
Share on other sites

Yep, I was think that the width for the mazimise would be a seperate setting.

Thinking aloud, maybe a better method would be to define zones areas. Each Zone would be like a virtual mini screen. If a maximise took place then the window would maximise into the zone that the window was currently in.

Zones could overlap.

e.g Zone 1 could be the left 2/3 of the screen Zone2 could be the right 2/3 of the screen

If the user 'maximises' a window that was currently running on the left then the window would fill the left 2/3 of the screen

If the user 'maximises' a window that was currently running on the right then the window would fill the right 2/3 of the screen

Some of this may fit in with the 'WinSpaces' you are developing

as I said , I am just thinking aload. If it is a bad idea then forget it.

cheers

Hmmm... I think I see what you're going for. Each "zone", or each side of the screen, would have it's own width percentage definition. I think that would be doable, but only for the maximize redirector :whistle:

Well, I suppose I could do it for WinSplit as well... but it would change a good deal of code I think. Would it be useful to have it for both, or just the maximize?

Link to comment
Share on other sites

I can imagine it could get quite messy to incorporate it into winsplit so I would only suggest it was used for the maximise function. Even if you did implement into winsplit it might be a bit confusing for the user.

cheers and thanks

[EDIT]

Just to expand a bit further, the Zones could actually be defined as a rectangular area (Xpos,Ypos,Width,Height) anywhere on the screen. This is why I descibed it as a virtual mini screen in my last post. If this was done I could for example maximise into a predefined zone of 1024*768 pixels somewher on the screen. This would be a fairly standard screen size which would be handy for testing screen designs

Edited by rogdog
My Scripts[topic="73325"]_ReverseDNS()[/topic]Favourite scripts by other members[topic="81687"]SNMP udf[/topic][topic="70759"]Using SNMP - MIB protocol[/topic][topic="39050"]_SplitMon:Section off your monitor!, split your monitor into sections for easy management[/topic][topic="73425"]ZIP.au3 UDF in pure AutoIt[/topic][topic="10534"]WMI ScriptOMatic tool for AutoIt[/topic][topic="51103"]Resources UDF embed/use any data/files into/from AutoIt compiled EXE files[/topic]
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...