Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 10/25/2020 in all areas

  1. Hi sudeepjd I registered the WM_NCHITTEST message with interesting results, both child windows having the $WS_EX_CONTROLPARENT extended style. Now everything is scrollable & tabbable. You can even scroll the child Gui's (without moving them +++) by dragging the mouse anywhere inside the child GUI's, which could be interesting too. #include <GUIConstants.au3> #include <GUIScrollbars.au3> #include <WindowsConstants.au3> Opt("GUIOnEventMode", 1) ; Change to OnEvent mode Global $width=500, $height=500, $titel="Tabtest in Childwindow" ; create the parentwindow $mainwindow = GUICreate($titel, $width, $height, -1, -1) GUISetBkColor(0x00ffff) ; show the parentwindow GUISetState(@SW_SHOW,$mainwindow) ; check on screen ; sleep(1000) ; create the childwindow with the scrollbars active ->TABSTOPS Dont work $childwindo1 = GUICreate("child", 220, $height, 10, 10, $WS_CHILD, $WS_EX_CONTROLPARENT, $mainwindow) _GUIScrollBars_Init($childwindo1, 100, 100) GUISetBkColor(0xff0000, $childwindo1) GUISetState(@SW_SHOW, $childwindo1) $input_1 = GUICtrlCreateInput("Scroll Works",10,10) $input_2 = GUICtrlCreateInput("Tab too",10,40) $label_2a = GUICtrlCreateLabel("Low label 1", 10, $height + 100) ; create the childwindow with the scrollbars active ->TABSTOPS Work, Scroll does not because window moves $childwindo2 = GUICreate("child", 220, $height, 240, 10, $WS_CHILD, $WS_EX_CONTROLPARENT, $mainwindow) _GUIScrollBars_Init($childwindo2, 100, 100) GUISetBkColor(0xff0000, $childwindo2) GUISetState(@SW_SHOW, $childwindo2) $input_3 = GUICtrlCreateInput("Tab Works",10,10) $input_4 = GUICtrlCreateInput("Scroll too",10,40) $label_4a = GUICtrlCreateLabel("Low label 2", 10, $height + 100) GUIRegisterMsg($WM_VSCROLL, "WM_VSCROLL") GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST") ; register close GUISetOnEvent($GUI_EVENT_CLOSE, "close_it",$mainwindow) ;loop While 1 Sleep(100) ; Idle around WEnd ;=============================================== Func close_it() ; exit application GUIDelete($mainwindow) exit EndFunc ;=============================================== Func WM_VSCROLL($hWnd, $iMsg, $wParam, $lParam) #forceref $iMsg, $wParam, $lParam Local $iScrollCode = BitAND($wParam, 0x0000FFFF) Local $iIndex = -1, $iCharY, $iPosY Local $iMin, $iMax, $iPage, $iPos, $iTrackPos For $x = 0 To UBound($__g_aSB_WindowInfo) - 1 If $__g_aSB_WindowInfo[$x][0] = $hWnd Then $iIndex = $x $iCharY = $__g_aSB_WindowInfo[$iIndex][3] ExitLoop EndIf Next If $iIndex = -1 Then Return 0 ; Get all the vertial scroll bar information Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT) $iMin = DllStructGetData($tSCROLLINFO, "nMin") $iMax = DllStructGetData($tSCROLLINFO, "nMax") $iPage = DllStructGetData($tSCROLLINFO, "nPage") ; Save the position for comparison later on $iPosY = DllStructGetData($tSCROLLINFO, "nPos") $iPos = $iPosY $iTrackPos = DllStructGetData($tSCROLLINFO, "nTrackPos") Switch $iScrollCode Case $SB_TOP ; user clicked the HOME keyboard key DllStructSetData($tSCROLLINFO, "nPos", $iMin) Case $SB_BOTTOM ; user clicked the END keyboard key DllStructSetData($tSCROLLINFO, "nPos", $iMax) Case $SB_LINEUP ; user clicked the top arrow DllStructSetData($tSCROLLINFO, "nPos", $iPos - 1) Case $SB_LINEDOWN ; user clicked the bottom arrow DllStructSetData($tSCROLLINFO, "nPos", $iPos + 1) Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box DllStructSetData($tSCROLLINFO, "nPos", $iPos - $iPage) Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box DllStructSetData($tSCROLLINFO, "nPos", $iPos + $iPage) Case $SB_THUMBTRACK ; user dragged the scroll box DllStructSetData($tSCROLLINFO, "nPos", $iTrackPos) EndSwitch ; // Set the position and then retrieve it. Due to adjustments ; // by Windows it may not be the same as the value set. DllStructSetData($tSCROLLINFO, "fMask", $SIF_POS) _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO) _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO) ;// If the position has changed, scroll the window and update it $iPos = DllStructGetData($tSCROLLINFO, "nPos") If ($iPos <> $iPosY) Then _GUIScrollBars_ScrollWindow($hWnd, 0, $iCharY * ($iPosY - $iPos)) $iPosY = $iPos EndIf Return $GUI_RUNDEFMSG EndFunc ;==>WM_VSCROLL ;=============================================== Func WM_NCHITTEST($hWnd, $iMsg, $wParam, $lParam) #forceref $iMsg, $wParam, $lParam If $hWnd = $childwindo1 Or $hWnd = $childwindo2 Then Return $HTVSCROLL EndIf Return $GUI_RUNDEFMSG EndFunc ;==>WM_NCHITTEST
    4 points
  2. As I said buy already developed solution to Invoce, raporting system, EDIT/ADDED: You should buy one which will fit to your needs. If you need you can Automate them with AutoIt.
    2 points
  3. I don't know if you are like me, but I am always searching for that specific code I wrote over the years, but cannot find it. It was way too exhausting to look at 1k+ scripts. And Windows Explorer is not the best tool to do such exploration. So I made this little script that save me tons of time. Hope you will find it useful too. You can adjust default search folders and type of files you want to search for, but you can also change it at runtime. To use multiple filters separate them with ";" Let me know if you have any suggestion to enhance the tool. Version 2023-12-27 * Code revision : 3.3.16.1 now required Version 2023-05-10 * Sets children flag on first drawn list Version 2021-04-06 * Context menu modified to allow clipping file name and line content Version 2020-11-21 * Allows only 1 running instance of the script * Added right-click support on Tray to exit script Version 2020-06-29 * Added Copy File Name to context menu (helps to copy include files names) Version 2020-04-22 * Added icons to main buttons * Added informative box to describe progress and results of a search * Increased robustness of the GUI * Open Button enabled only under the right conditions * Added Tooltip on filter field to describe how to enter multiple criteria * Forced a minimum Window size Version 2020-04-18 * Added support of Context Menu in Tree View * Added support of Tray * Minimizes on Tray Version 2020-04-12 * Added DPI awareness * Added Enter Key functionality to start a search Version 2020-04-09 * Changed base size of the GUI to make it wider * Made the window resizable * Added Reset button * Shown busy cursor more appropriately * Corrected bug of first line displayed Thanks all for your input. SearchContent.au3
    1 point
  4. Chimaera

    Find Display Resolution

    Here's a little something back to the community for all the help I've had since I've been here It took me quite a while to research all the modes, but its a fairly complete list up to and including the latest types that will come along as the price for some of these monitors drops to normal human buying power. I've gone for the complete list so that in years to come it should still be valid. Ive commented all the resolutions so you can see what they are. If on the rare chance someone uses it gimme a credit plz #cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.6.1 Author: Chimaera Script Function: Desktop Resolution #ce ---------------------------------------------------------------------------- Global $resolution ; ------------------------------------------------------------------------------ MsgBox(0, "Desktop Resolution", _Desktop_Resolution() & " @ " & @DesktopRefresh & " Hertz") Func _Desktop_Resolution() Switch $resolution = "" Case @DesktopWidth = 640 And @DesktopHeight = 480; Video Graphics Array $resolution = "640 x 480 (4:3) VGA" Case @DesktopWidth = 800 And @DesktopHeight = 480; Wide Video Graphics Array $resolution = "800 x 480 (4:3) WVGA" Case @DesktopWidth = 854 And @DesktopHeight = 480; Full Wide Video Graphics Array $resolution = "854 x 480 (4:3) FWVGA" Case @DesktopWidth = 800 And @DesktopHeight = 600; Super Video Graphics Array $resolution = "800 x 600 (4:3) SVGA" Case @DesktopWidth = 960 And @DesktopHeight = 540; Quarter Full HD $resolution = "960 x 540 (16:9) qHD" Case @DesktopWidth = 1024 And @DesktopHeight = 576; Wide Super Video Graphics Array $resolution = "1024 x 576 (5:3) WSVGA" Case @DesktopWidth = 1024 And @DesktopHeight = 600; Wide Super Video Graphics Array $resolution = "1024 x 600 (5:3) WSVGA" Case @DesktopWidth = 1024 And @DesktopHeight = 768; eXtended Graphics Array $resolution = "1024 x 768 (4:3) XGA" Case @DesktopWidth = 1152 And @DesktopHeight = 864; eXtended Graphics Array Plus $resolution = "1152 x 864 (4:3) XGA+" Case @DesktopWidth = 1280 And @DesktopHeight = 720; Wide eXtended Graphics Array $resolution = "1280 x 720 (16:9) HD Ready" Case @DesktopWidth = 1280 And @DesktopHeight = 768; Wide eXtended Graphics Array $resolution = "1280 x 768 (15:9) WXGA" Case @DesktopWidth = 1280 And @DesktopHeight = 800; Wide eXtended Graphics Array $resolution = "1280 x 800 (16:10) WXGA" Case @DesktopWidth = 1280 And @DesktopHeight = 960; Super eXtended Graphics Array $resolution = "1280 x 960 (4:3) SXGA" Case @DesktopWidth = 1280 And @DesktopHeight = 1024; Super eXtended Graphics Array $resolution = "1280 x 1024 (5:4) SXGA" Case @DesktopWidth = 1360 And @DesktopHeight = 768; Wide eXtended Graphics Array $resolution = "1360 x 768 (16:9) WXGA" Case @DesktopWidth = 1366 And @DesktopHeight = 768; High Definition (720p) $resolution = "1366 x 768 (16:9) HD [720p]" Case @DesktopWidth = 1440 And @DesktopHeight = 900; Wide Super eXtended Graphics Array $resolution = "1440 x 900 (16:10) WSXGA" Case @DesktopWidth = 1400 And @DesktopHeight = 1050; Wide Super eXtended Graphics Array $resolution = "1440 x 900 (16:10) WSXGA" Case @DesktopWidth = 1600 And @DesktopHeight = 900; High Definition Plus (900p) $resolution = "1600 x 900 (16:9) HD+ [900p]" Case @DesktopWidth = 1600 And @DesktopHeight = 1200; Ultra eXtended Graphics Array $resolution = "1600 x 1200 (4:3) UXGA" Case @DesktopWidth = 1680 And @DesktopHeight = 1050; Wide Super eXtended Graphics Array Plus $resolution = "1680 x 1050 (16:10) WSXGA+" Case @DesktopWidth = 1920 And @DesktopHeight = 1080; Full High Definition (1080p) $resolution = "1920 x 1080 (16:9) HD [1080p]" Case @DesktopWidth = 1920 And @DesktopHeight = 1200; Wide Ultra eXtended Graphics Array $resolution = "1920 x 1200 (16:10) WUXGA" Case @DesktopWidth = 1920 And @DesktopHeight = 1400; Tesselar eXtended Graphics Array $resolution = "1920 x 1400 (48:35) TXGA" Case @DesktopWidth = 2048 And @DesktopHeight = 1080; Digital Film Projection $resolution = "2048 x 1080 (19:10) 2K" Case @DesktopWidth = 2048 And @DesktopHeight = 1152; Quad Wide eXtended Graphics Array $resolution = "2048 x 1152 (4:3) QWXGA" Case @DesktopWidth = 2048 And @DesktopHeight = 1536; Quad eXtended Graphics Array $resolution = "2048 x 1536 (4:3) QXGA" Case @DesktopWidth = 2538 And @DesktopHeight = 1080; Wide Projector $resolution = "2538 x 1080 (47:20) Wide Projector" Case @DesktopWidth = 2560 And @DesktopHeight = 1080; Cinema TV $resolution = "2560 x 1080 (64:27) Cinema TV" Case @DesktopWidth = 2560 And @DesktopHeight = 1440; Wide Quad High Definition $resolution = "2560 x 1440 (16:9) WQHD" Case @DesktopWidth = 2560 And @DesktopHeight = 1600; Wide Quad eXtended Graphics Array $resolution = "2560 x 1600 (16:10) WQXGA" Case @DesktopWidth = 2560 And @DesktopHeight = 2048; Quad Super eXtended Graphics Array $resolution = "2560 x 2048 (5:4) QSXGA" Case @DesktopWidth = 2880 And @DesktopHeight = 900; Dell Alienware $resolution = "2880 x 900 (16:5) Curved Display" Case @DesktopWidth = 3200 And @DesktopHeight = 2048; Wide Quad Super eXtended Graphics Array $resolution = "3200 x 2048 (25:16) WQSXGA" Case @DesktopWidth = 3200 And @DesktopHeight = 2400; Quad Ultra eXtended Graphics Array $resolution = "3200 x 2048 (4:3) QUXGA" Case @DesktopWidth = 3840 And @DesktopHeight = 2160; Quad Full High Definition $resolution = "3840 x 2160 (16:9) QFHD" Case @DesktopWidth = 3840 And @DesktopHeight = 2400; Wide Quad Ultra eXtended Graphics Array $resolution = "3840 x 2048 (16:10) WQUXGA" Case @DesktopWidth = 4096 And @DesktopHeight = 1716; Digital Film Projection $resolution = "4096 x 1716 (2:39) 4K" Case @DesktopWidth = 4096 And @DesktopHeight = 3072; Hex[adecatuple] eXtended Graphics Array $resolution = "4096 x 3072 (4:3) HXGA" Case @DesktopWidth = 5120 And @DesktopHeight = 3200; Wide Hex[adecatuple] Extended Graphics Array $resolution = "5120 x 3200 (16:10) WHXGA" Case @DesktopWidth = 5120 And @DesktopHeight = 4096; Hex[adecatuple] Super eXtended Graphics Array $resolution = "5120 x 4096 (5:4) HSXGA" Case @DesktopWidth = 6400 And @DesktopHeight = 4096; Wide Hex[adecatuple] Super eXtended Graphics Array $resolution = "6400 x 4096 (25:16) WHSXGA" Case @DesktopWidth = 6400 And @DesktopHeight = 4800; Hex[adecatuple] Ultra eXtended Graphics Array $resolution = "6400 x 4800 (4:3) HUXGA" Case @DesktopWidth = 7680 And @DesktopHeight = 4320; Ultra High Definition Television $resolution = "7680 x 4320 (16:9) UHDT" Case @DesktopWidth = 7680 And @DesktopHeight = 4800; Wide Hex[adecatuple] Ultra eXtended Graphics Array $resolution = "7680 x 4800 (16:10) WHUXGA" Case Else Return SetError(1, 0, $resolution) EndSwitch Return $resolution EndFunc ;==>_Desktop_Resolution Enjoy Chimaera
    1 point
  5. This is a modification of a script that was originally posted back in 2006, that was itself a modification of a script in the same thread, which was a modification of another script linked in that thread. All credits remain in the header as to who contributed to this. The only credit I take in this script is modifying parts of it to: 1.make it a bit faster, by removing a ReDim that was inside a loop 2.add support for OSs other than XP because of the number of file properties returned 3.add support for the future if the number of file properties returned changes again with future versions of Windows Please take note, this script will only work if you know the name of the property you're trying to retrieve. These properties are dependent upon the OS version, the OS language, and the file's properties. This function does not take any of these things into account, if you want to use this and make it OS neutral, you'll have to do that in your script, because it doesn't get done in here. Fortunately, if you access this function and leave the parameter $FGP_Property blank, it will return an array of all the properties that Windows knows about, and in the language that Windows is running in. Windows XP only returns 38 properties, Windows 7 returns 288, Windows 8 returns 290. The same properties can have different names depending on which OS you're using this with. Update Sept. 6, 2017 Changed the code slightly to make sure the return includes all properties, the last update cut off some of the properties at the end, and increased the $iPropertyCount to 500 (from 300) because of Windows 10 file property count increase. Update: Jun-25-2013 I have tweaked this function again, a small update. Added a new parameter to the function, $iPropertyCount, with a default setting of 300. This parameter was previously hard coded inside the function, now you are able to adjust it to the setting you desire/require. This value is used to determine how many file properties will be searched for the value passed in $FGP_PROPERTY, or the maximum amount of properties that will be returned in the array if $FGP_PROPERTY is a blank string. The $FGP_PROPERTY parameter will now accept the Default keyword in place of a blank string, which tells the function to return an array of all known properties, up to the setting of $iPropertyCount. Update: Feb-11-2013 I have updated this function again. Now it has a single point of return, except for error exceptions, instead of multiple places that it returned from previously. I've renamed the variables used so that they'll be less chance of a name collision with someone's script. Fixed a small bug that added a blank line to the end of the array returned when getting all properties. Changed the return value on an error from 0 to an empty string. NOTE: This is a repost of a thread I had already posted last year. I went looking for it today to update the code in it, and found that it had disappeared. New code #include <File.au3> ; only used for the example script, not needed for the UDF #include <Array.au3> ; only used for the example script, not needed for the UDF #include <Constants.au3> ; only used for the MsgBox, not needed for the UDF $sFolder = FileSelectFolder("Select a folder to scan", "") $sFolder &= "" $aFiles = _FileListToArray($sFolder, "*.exe") For $I = 1 To $aFiles[0] $aDetails = _FileGetProperty($sFolder & "\" & $aFiles[$I]) ; Returns an array with all properties of the file _ArrayDisplay($aDetails) Next Global $sDetails = _FileGetProperty($sFolder & "\" & $aFiles[$aFiles[0]], "date modified") MsgBox($MB_SYSTEMMODAL, "Date Modified", $sDetails) ;=============================================================================== ; Function Name.....: _FileGetProperty ; Description.......: Returns a property or all properties for a file. ; Version...........: 1.0.2 ; Change Date.......: 05-16-2012 ; AutoIt Version....: 3.2.12.1+ ; Parameter(s)......: $FGP_Path - String containing the file path to return the property from. ; $FGP_PROPERTY - [optional] String containing the name of the property to return. (default = "") ; $iPropertyCount - [optional] The number of properties to search through for $FGP_PROPERTY, or the number of items ; returned in the array if $FGP_PROPERTY is blank. (default = 300) ; Requirements(s)...: None ; Return Value(s)...: Success: Returns a string containing the property value. ; If $FGP_PROPERTY is blank, a two-dimensional array is returned: ; $av_array[0][0] = Number of properties. ; $av_array[1][0] = 1st property name. ; $as_array[1][1] = 1st property value. ; $av_array[n][0] = nth property name. ; $as_array[n][1] = nth property value. ; Failure: Returns an empty string and sets @error to: ; 1 = The folder $FGP_Path does not exist. ; 2 = The property $FGP_PROPERTY does not exist or the array could not be created. ; 3 = Unable to create the "Shell.Application" object $objShell. ; Author(s).........: - Simucal <Simucal@gmail.com> ; - Modified by: Sean Hart <autoit@hartmail.ca> ; - Modified by: teh_hahn <sPiTsHiT@gmx.de> ; - Modified by: BrewManNH ; URL...............: http://www.autoitscript.com/forum/topic/34732-udf-getfileproperty/page__view__findpost__p__557571 ; Note(s)...........: Modified the script that teh_hahn posted at the above link to include the properties that ; Vista and Win 7 include that Windows XP doesn't. Also removed the ReDims for the $av_ret array and ; replaced it with a single ReDim after it has found all the properties, this should speed things up. ; I further updated the code so there's a single point of return except for any errors encountered. ; $iPropertyCount is now a function parameter instead of being hardcoded in the function itself. ;=============================================================================== Func _FileGetProperty($FGP_Path, $FGP_PROPERTY = "", $iPropertyCount = 500) If $FGP_PROPERTY = Default Then $FGP_PROPERTY = "" $FGP_Path = StringRegExpReplace($FGP_Path, '["'']', "") ; strip the quotes, if any from the incoming string If Not FileExists($FGP_Path) Then Return SetError(1, 0, "") ; path not found Local Const $objShell = ObjCreate("Shell.Application") If @error Then Return SetError(3, 0, "") Local Const $FGP_File = StringTrimLeft($FGP_Path, StringInStr($FGP_Path, "\", 0, -1)) Local Const $FGP_Dir = StringTrimRight($FGP_Path, StringLen($FGP_File) + 1) Local Const $objFolder = $objShell.NameSpace($FGP_Dir) Local Const $objFolderItem = $objFolder.Parsename($FGP_File) Local $Return = "", $iError = 0 If $FGP_PROPERTY Then For $I = 0 To $iPropertyCount If $objFolder.GetDetailsOf($objFolder.Items, $I) = $FGP_PROPERTY Then $Return = $objFolder.GetDetailsOf($objFolderItem, $I) EndIf Next If $Return = "" Then $iError = 2 EndIf Else Local $av_ret[$iPropertyCount + 1][2] = [[0]] For $I = 1 To $iPropertyCount If $objFolder.GetDetailsOf($objFolder.Items, $I) Then $av_ret[$I][0] = $objFolder.GetDetailsOf($objFolder.Items, $I - 1) $av_ret[$I][1] = $objFolder.GetDetailsOf($objFolderItem, $I - 1) ;~ $av_ret[0][0] += 1 $av_ret[0][0] = $I EndIf Next ReDim $av_ret[$av_ret[0][0] + 1][2] If Not $av_ret[1][0] Then $iError = 2 $av_ret = $Return Else $Return = $av_ret EndIf EndIf Return SetError($iError, 0, $Return) EndFunc ;==>_FileGetProperty Warning, old code below.
    1 point
  6. Nine

    Retrieve Tooltip size ?

    _WinAPI_GetWindowRect ?
    1 point
  7. Musashi

    RichEdit resize

    Take a look at :
    1 point
  8. 1) Hi guys, so me and my friends started a new business and I wanted to have a system for it. 2) I don't know yet where to start and I'm not very good at programming but I'm willing to learn if this system will ease our jobs a little. 3) So, I wanted to have a system where we put all our expenses and sales, and weekly or monthly, we could generate a report from it. We might also need a POS. 4) My question is, where do I start? Can I just use MS access for the database? What should I learn first? ok, so, you can not code point 3 without prior experience. For point 2 I recommend reading the help file, run the examples and modify them to gain experience. If you read on SQLite from the help file, you'll answer point 4. As for point 1, is better to go with some industry standard due to the lack of know how, that in the end will give you the experience to come up with your own if so you wish. The learning curve for coding can reach years for proficiency. You have not shared the business type or country or ages of you and your friends, but regardless, the above is my answer
    1 point
  9. Nine

    Read time

    If you want to start a program at a specific time, just use Windows Task Scheduler for it. That way you won't overload your CPU for nothing and you will be sure that it will launch (not like your code where you may be missing the exact msec)
    1 point
  10. Somerset

    Read time

    The op does have at least one game related locked thread. I agree the topic is fishy cause of the vagueness.
    1 point
  11. You could use GUISetAccelerators function. Or you can register a LL KB callback function. Or you can use _WinAPI_SetWindowLong(GUICtrlGetHandle($idXXX), $GWL_WNDPROC, DllCallbackGetPtr($wProcHandle)) for each field that can be tabbed in.
    1 point
  12. Looks easy enough. Check out the below help topics to get you started. _Excel_Open to open the Excel - https://www.autoitscript.com/autoit3/docs/libfunctions/_Excel_Open.htm _Excel_BookOpen to open the workbook - https://www.autoitscript.com/autoit3/docs/libfunctions/_Excel_BookOpen.htm _Excel_RangeRead to read the range and put it into an array - https://www.autoitscript.com/autoit3/docs/libfunctions/_Excel_RangeRead.htm For...Next to Loop through the array - https://www.autoitscript.com/autoit3/docs/keywords/For.htm FileCopy to Copy the file - https://www.autoitscript.com/autoit3/docs/functions/FileCopy.htm _Excel_BookClose the Excel book - https://www.autoitscript.com/autoit3/docs/libfunctions/_Excel_BookClose.htm _Excel_Close - Close Excel - https://www.autoitscript.com/autoit3/docs/libfunctions/_Excel_Close.htm Actually I just seem to have written the code for you using the exact steps you need and the help files to read through to get there. If you still have a problem post the code that you have tried and will try and help. All the Best. Sudeep.
    1 point
  13. Don’t write it yourself get professional software that’s premade as mentioned above. You do not have time or resources to sink into software development at this point
    1 point
  14. I totally disagree. Start a project for his own business is a "must", if he wants to grow his skills to make more complicated things later without the need of spend money for it. But I will add a precision... It depends on if you want to do your own spreadsheet. To answer, I recommend you to simply use office as all enterprise do. And then if you do so, to learn water's UDFs to understand how to manipulate office with AutoIT. And how to manage data Output and post process them. But it's not logic to make a tool to make stats with office, if office is a tool to make stats. But if you want a start : -Try to make a simple GUI. -To read data into Office. -And how to calculate what do you want. If office can't do it already for you. Water's UDF are well documented. Watch my signature.
    1 point
  15. Be careful what you wish for... #include <WinAPISysWin.au3> #include <WindowsConstants.au3> $g_hWnd=WinGetHandle("[TITLE:Untitled - Notepad]") AlwaysOnTop($g_hWnd) Func AlwaysOnTop($hWnd) While True _WinAPI_SetWindowPos($hWnd, $HWND_TOPMOST, 0, 0, 0, 0, BitOR($SWP_NOACTIVATE, $SWP_NOSIZE, $SWP_NOMOVE)) WinWaitNotActive(WinGetHandle("[ACTIVE]")) WEnd EndFunc @Jos, just realized, I may have inadvertently “burfed”
    1 point
  16. FYI, an SQLite DB is just one file, not a herd of files, which is portable verbatim on any hardware/software platform you can think of. SQLite is zero installation and zero maintainance. Also SQLite is by far the most widespread DB engine ever and one of the top most used software piece: https://www.sqlite.org/mostdeployed.html So you already use SQLite several times daily, without even noticing. A DB file is by far more reliable that anything else, thanks to the ACID properties of DBs. SQLite file format has not changed since introduction of version 3, 2004-07-22, something very few software can be proud of. Yet there have been an enormous number of powerful features added to the library over the years. Given the "around 10¹²" implementations in current use all over the world, it's guaranteed that this format is going to last very long (authors says at least till 2050). SQLite is free: public-domain open source, just needs a C compiler to build from source. Standard SQLite DBs can reach 281 TB, more than you'll ever need! All in all, an SQLite DB is ideal for storage, maintainance and query of any-sized dataset, with the added benefit of possible concurrency and powerful querying language. No other file format offers the same power, speed and flexibility. Of course, there is always a little price to pay: learn to use the features you'll need, but that's what help foras are for, aren't they?
    1 point
  17. @igana to forum. As @Danp2 said you should use one of already developed, maintaned, by other companies. It is not recomended to write such project from scratch. Also this two mentioned by @Danp2 could not fit to your needs, as they are related to country-specific accounting rules. You have not specified in which country you conduct your business activity. And here, rather, no one is a tax and accounting specialist.... I suppouse even you are not . For example I use: https://www.faktury-ok.pl/mr-faktury-pro Also I have many things in EXCEL and in TeamViewer management console. For this reason in few cases I automate them with AutoIt. But it would be very unwise to create a separate financial and accounting system from scratch.
    1 point
  18. Sounds like you need an accounting system, which I wouldn't recommend writing from scratch. Take a look at Wave or Quickbooks
    1 point
  19. Question: Is this functionality not available in the included thinkScript®? Maybe do your arithmetic within the thinkScript® and just use AutoIT3 for your hotkeys. Is it worth asking the developers for hotkey functionality for precisely what you are doing? Other traders may have exactly the same needs. https://tlc.thinkorswim.com/center/reference/thinkScript/tutorials/Basic/Chapter-2---Mathematical-Functions I see they have rounding functionality and declared variable sizing/precision too, similar to AutoIT3. Comment: Learning multiple scripting languages as a secondary function of what you want to do is a painful exercise. Hint: Debugging your code where you send intermediate results of variables to the console or a messagebox usually finds your oversights quickly and helps you learn a lot more. My uncle once told me: Remember you are in a no win scenario - for you to make lots of money on the share market with trading, somebody else has to be losing it. You are betting against others that may have insider knowledge, better information to base their decisions on, and faster/more powerful tools to trade. You don't have to be good, you have to be the best. Best of luck.
    1 point
  20. No need to quote what I posted. I also said the code would need extra functions. My purpose was to examplify thatwe can go a long way to dissect what a variable contains, contrary to what name we use to manipulate it. Anyway here's the current version I use.
    1 point
  21. Maybe _WinAPI_EnumDisplayMonitors can help you : - In extended mode, the return array contains 2 lines (2 monitors) - In Duplicate mode, the return array contains just 1 line #include <WinAPIGdi.au3> Local $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & @ComputerName & "\root\cimv2") Local $colMonitors = $objWMIService.ExecQuery ("Select * from Win32_DesktopMonitor Where Availability=3", "WQL", 0x10 + 0x20) If NOT IsObj($colMonitors) Then Exit Local $iCount = 0 For $oMonitor In $colMonitors $iCount += 1 Next MsgBox(0, "", "Number of monitors : " & $iCount) $aMonitor = _WinAPI_EnumDisplayMonitors() If @error Then Exit If $aMonitor[0][0] > 1 Then MsgBox(0, "", "extended mode") Else MsgBox(0, "", "duplicate mode") EndIf
    1 point
  22. You can dispense with the maths if you are as lazy as I am and easily deal with any resizing method that is available for standard controls. Draw a label and set the sizeand position to be the same as the richedit at design time, and set the resizing for that as you want. Then, when you handle the resizing for the richedit you only have to copy the label size and position (using ControlGetPos). Just set the label to not visible of course.
    1 point
  23. you forget the space after notepad ! Try Run ( "notepad.exe " & $sTextFile, @WindowsDir, @SW_MAXIMIZE )
    1 point
×
×
  • Create New...