Jump to content

Bluesmaster

Active Members
  • Posts

    140
  • Joined

  • Last visited

Recent Profile Visitors

266 profile views

Bluesmaster's Achievements

Adventurer

Adventurer (3/7)

6

Reputation

  1. Hi, It returns 0. But that might be because of GetPhysicalMonitorsFromHMonitor returns 0 before. Also the c#-Project I meantioned (http://sourceforge.net/projects/monitorswitcher/) does use the same API with success. And I have several ( 7 ) very modern LED-Monitors which must support this standards. However, Monitorconfiguration is a very complex topic, and it might have somethink to do with my computer config. Anyway I dont die without these functions, and for everyone else this is great work done here and I could highly recommend this powerful udf. I just fear, your "I code the 0.9-version and anyone else will pick up and maintain it" is a bit illusive, and I would encourage you to take the main responsibility for the udf. But thats just my opinion (in bad english ) thank you & best regards Bluesmaster
  2. what I forgot to mention is that GetPhysicalMonitorsFromHMonitor delivers the monitor name ( 2. DllStruct Entry ) which indicates that it is working somehow..
  3. 1. OP example didnt work because GetPhysicalMonitorsFromHMonitor didnt work. (I thought but I tried with manual monitorNumbers "1", "2"...which is what GetPhysicalMonitorsFromHMonitor returns???) 2. 78h means 78hex means 0x78 3. You changed EDIDOperation to from GetVCPFeature in to GetVCPFeatureAndVCPFeatureReply which is better but for me returns [ 0 0 0 ] for any blocks and any monitorNumbers (and for you???) *found a small mistake in your GetVCPFeatureAndVCPFeatureReply > it returns [ $VCPCodeType $CurrentValue $CurrentValue ] instead of [ $VCPCodeType $CurrentValue $MaximumValue ] 4. Its no problem to read the EDID from registry but they are not in PhysicalMonitorNumber-order so I cannot correlate them to my monitors, which I intend 5. I tried it in virtual machine, doesnt work either. I think I will give up for the moment, which is very hard after so much time spend
  4. @ Community Can some of the community test the following code quickly and post the results? I would like to know if it is a specific problem to my computer configuration #include <WinAPIGdi.au3> $physical_monitor = DllStructCreate("handle physicalMonitor;wchar physicalMonitorDescription[128]") DllCall( "Dxva2.dll" , "bool", "GetPhysicalMonitorsFromHMONITOR", "handle", _WinAPI_EnumDisplayMonitors()[1][0], "dword", 1, "ptr", DllStructGetPtr( $physical_monitor ) ) ConsoleWrite( @OSVersion & @OSArch & @LF & DllStructGetData($physical_monitor, "physicalMonitor") & @LF & DllStructGetData($physical_monitor, "physicalMonitorDescription") & @LF ) @ jaberwacky I used the "EDIDOperation". ...ok It reads the EDID-Block ( 12-15 = monitor serial number > http://en.wikipedia.org/wiki/Extended_display_identification_data ) But it only tells me that it succeded...now where is the data ? I know you are not an monitor expert...but honestly...who else should know if not you If we solve the problem we can also answer this thread: '?do=embed' frameborder='0' data-embedContent>> btw i recommend linking this in the op: http://msdn.microsoft.com/en-us/library/windows/desktop/dd692964(v=vs.85).aspx ( as I had my problems figuring out which api you are using firstly )
  5. Hi jaberwacky, At the beginning of my research I saw your UDF, I didnt work so 2-day journey of research followed. I was on WMI > "WmiMonitorID" which can read the serial but cannot associate it with a monitor number (this was hard to swallow) Now I took a deeper look into your UDF again. It the capabilities are amazing...but: GetNumberOfPhysicalMonitorsFromHMonitor() fails. Argh...it returns 0 for all handles. And throws no errors. I thought it might be a problem in your implementation so I tried implementations in other programming languages but all the same. ( I am on Win8.1x64 autoit v3.3.10.0 ) It might have something to do with my Monitor Configuration (DisplayPort > Adapters > Monitor) But on the other hand I found a c# project which can successfully save my monitor configuration using the dxva2: http://sourceforge.net/projects/monitorswitcher/ Do you have any idea what we can debug here to find the root of the problem? best regards Bluesmaster
  6. Can I receive the (hardware-)serial of the monitor providing a HMonitor (from "_WinAPI_GetMonitorInfo" etc...) Thank you Bluesmaster
  7. here is a quick sketch of a UDF: ;~ _KillScript( "test1.au3") Func _KillScript( $targetScript = "" ) ; acknowledge: "Exit" http://www.autoitscript.com/forum/user/45639-exit/ For $oProcess In ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2").ExecQuery( "SELECT * FROM Win32_Process", "WQL", 0x30 ) If $oProcess.Name = "AutoIt3_x64.exe" and StringInStr( $oProcess.CommandLine , $targetScript ) Then ProcessClose( $oProcess.ProcessId ) Next EndFunc
  8. ah... what a shame. I totaly missunderstood your script. I use AutoIt3_x64.exe instead of AutoIt3.exe so the list was empty and I didnt really took a deeper look. This is brilliant! Revealing the command line arguments is the method I wasnt even aware of. Thank you very much. Bluesmaster
  9. @Sodori Thank you for your effort. Unfortunately going to the killer is exactly what I wanted to avoid. I mean everybody wants to avoid the killer except socrates right? Your system is very clever, but I really want no "child knows mother"-relationship otherwise I simply would have done: ; Victim AutoItWinSetTitle( @ScriptName ) ; Killer Opt( "WinDetectHiddenText" , 1 ) ProcessClose( WinGetProcess( "Victim.au3" ) ) @Exit: I dont want to kill all other scipts, but just one I know the scipts filename. Conclusion: We need someone who really knows about deep autoIt internals. Otherwise there is only the "victim exposes itself to the killer"-method anyone? best regards Bluesmaster
  10. Hello, I am running a lot of autoIt-scripts. Sometimes I need to kill one or another "the hard way" (Taskmanager, ProcessClose() ...). Is it possible to find out which exe uses which script? - Scripts without TrayIcon - Dont want to use "AutoItWinSetTitle" (for complexity reasons, difficult to explain) - autoIt.exe seems to have no file-handle to the scipt (only to the directory) Any suggestions? Thank you very much Bluesmaster
  11. update: - runable - new methodology
  12. I had the feeling it was to complex but I couldnt figure it out Thank you jchd
  13. ah sorry my fault, the $diff must be numeric: ; Which weekday is tommorow ( +1 ) ? $sourceDay = @WDAY $diff = 1 ConsoleWrite(Mod( Mod( $sourceDay + 7 + Mod( $diff , 7 ) , 7 ) + 6 , 7 ) + 1 & @LF) ; Which weekday was yesterday ( -1 ) ? $sourceDay = @WDAY $diff = -1 ConsoleWrite(Mod( Mod( $sourceDay + 7 + Mod( $diff , 7 ) , 7 ) + 6 , 7 ) + 1 & @LF) ; Which weekday is in a lot of days that you can never calculate in your head? $sourceDay = @WDAY $diff = 533 ConsoleWrite(Mod( Mod( $sourceDay + 7 + Mod( $diff , 7 ) , 7 ) + 6 , 7 ) + 1 & @LF)
  14. $diff is the ( + / -) difference in days that you want to calculate. I thought the snippet was to short to unnecessarily encapsulate it in a (better understandable) func()
  15. just a small one-liner contribution that came along today. Calculates the weekday based on another weekday and the diffrence in days between them: (I know you can do it by combining udfs but hey.. if you get very very bored you can reverse engineer the math ) Mod( Mod( @WDAY + 7 + Mod( $diff , 7 ) , 7 ) + 6 , 7 ) + 1 best regards Bluesmaster *Update: there is a much shorter way to do this (thanks to jchd) $sourceDay = @WDAY $diff = 22 ; = 22 days in the future ConsoleWrite( Mod($sourceDay + Mod($diff, 7) + 6, 7) + 1 & @LF)
×
×
  • Create New...