Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 10/08/2014 in all areas

  1. AoRaToS

    s!mpL3 LAN Messenger

    s!mpL3 LAN Messenger as the name suggests is a messenger designed and developed to offer chat communication over Local Area Networks while being as simple to use as possible. This project started way back in 2008 with only basic functionality and is regularly updated with new features in order to make it more useful and user friendly. What I wanted was a simple, small, serverless program that would work without installation cause that was the ideal combination for my workplace back then, so I ended up with this! I have attached some images from various versions: Check the rest below! (from various versions) More than 10.000 downloads! s!mpL3 LAN Messenger version 2.9.9.1 - [04/07/2019] - s!mpL3 LAN Messenger.zip 1. Fixed an issue that would occur when blocking another user and they would re-appear in the TreeView. 2. Updated File Transfers to make long file names shorter if they were too long to appear in the tray tip. 3. Removed notifications when checking for updates at application startup if there is no update available. You can view/download the full change log here: ChangeLog.txt Tested and working on both 32bit and 64 bit editions of Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1 and Windows 10. Things you need to know before trying it: 1. Start the program, select one or more connections from what's available and click Connect (If a firewall notice comes up, click 'Allow' or 'Add Exception') When someone else on your network does the same, they will appear in your Tree-view and you will appear in theirs, double click their name and chat! 2. s!mpL3 LAN Messenger does not require a server to be running, it's standalone. 3. On the first run an .ini file is created at @LocalAppDataDir\s!mpL3 LAN Messenger which stores the settings so that they are used every time you run the application. If you delete the .ini file it will be created again (with default settings at program startup or with your selected settings if you press Save from the Preferences window). 4. All communication is encrypted using AES so it's quite secure against Network sniffers. 5. You can send files and folders by dragging and dropping them in a conversation window. Folders are compressed before being sent. You can also drop multiple items to be sent. 6. There is a "Hide" button located in the tray right click context menu that will hide all open windows. You can assign a Hotkey combination from Preferences. The default combination is Ctrl+H. 7. s!mpL3 LAN Messenger uses port 60000 by default. You can change the port used by adding "Port=****" (without quotes, stars represent numbers) to the Config file described above. Communication is UDP. 8. There is an Updater feature you can use to always have the latest available version, you only need an internet connection for that to work. You might need to clear your Internet Explorer Temporary Files in order for it to find an updated version. 9. You can Hide + Lock s!mpL3 LAN Messenger so it'll require a password in order to "Appear". To enable this, go to the Security Preferences. 10. Note that versions after 2.9.8.1 are not compatible with previous versions due to the encryption used being changed. I recommend using the latest version, or at least use the same version over the LAN. Important Notice: I will not be releasing the source code, however, I might share some parts of code if requested... If you choose to de-compile this software, don't release the source code.
    1 point
  2. Edit 2: Version 1.0.0.3 including View History of Changes function Edit 1: Amended source code on guinness advise (replacement of obsolete _Iif() ) Example of Auto Updating of a running script using Internet Web download. Works as well for compiled as for uncompiled scripts. Download with file size and checksum verification UpdateTest_1.0.1.3.au3 this is version 1.0.1.2 for the update example Helper to setup file data (version, date, filesize and CRC) in AppsUpdates.txt AppsUpdates_Calculator.au3 Credits: MsgBoxEx() used in in the example written by Ward _CRC32() also by Ward (just a coincidence) version 1.0.0.2: Before you test the script, compile it first with AutoIt3Wrapper, to get the version number in the executable. You can test it then with both compiled and uncompiled versions. The script example will check the application update version in file AppsUpdates.txt on the update website. If required, it will propose the upgrade. You can then disregard it or accept the update. The new 'View Changes' button will download and display the change information text. If updating, the initial script will be renamed with it's version number (as safety backup), and the new updated will be renamed to the initial script file name, in order not to break shortcuts. There is no code to postpone the update proposal by a number of days, this has to be programmed separately. Web data file AppsUpdates.txt content (INI file) now includes a new line containing the url to history file: changes=... [UpdateTest.au3] version=1.0.1.3 date=2014/06/26 23:00 Filesize=22234 CRC=77446F0C download=http://users.telenet.be/GreenCan/AutoIt/Updates/UpdateTest_1.0.1.3.au3 changes=http://users.telenet.be/GreenCan/AutoIt/Updates/UpdateTest_HistoryOfChanges.txt [UpdateTest.exe] version=1.0.1.3 date=2014/06/26 23:02 Filesize=490496 CRC=28974906 download=http://users.telenet.be/GreenCan/AutoIt/Updates/UpdateTest_1.0.1.3.exe changes=http://users.telenet.be/GreenCan/AutoIt/Updates/UpdateTest_HistoryOfChanges.txt The web directory has 3 files: AppsUpdates.txt (the updater data file) UpdateTest_1.0.1.1.exe UpdateTest_1.0.1.1.au3
    1 point
  3. BrewManNH

    Runas with @comspec

    Try this: RunAs($sUserName, $sDomain, $sPassword, 0, @ComSpec & " /c copy prefs.js " & @AppDataDir & "\Mozilla\Firefox\" & $IniRead & "\", "", @SW_HIDE) You were missing a space between the .js and the closing quote, and also missing "&" between that quote and @AppDataDir.
    1 point
  4. TheAutomator, Only too human, alas. M23
    1 point
  5. Yes! Simple tool, but it is the only thing I have that might help others as of right now and I want to contribute as much as I can to the community. You all have all helped me so much, it would be nice to hopefully contribute back some!
    1 point
  6. Sorry xD I don't know specific details was only given a math formula, but I will try and explain - the floor is given brass/copper tubing and told what type of threading to add and how long. They pick the type through the combo box, then add the length so it give they how many times to rotate the tool without having to doodle on paper or open the calculator. (unfortunately these people are not the brightest and cannot for the life of them navigate computers) Does this help at all? I hope so -- this is the best I would be able to explain it haha
    1 point
  7. Mexico? Excelentemente senor! Oh dios mio, voy a actualizar el post original. Vaya con dios mi hermoso.
    1 point
  8. guinness

    Shunting-Yard algorithm

    I initially created this to improve my C# understanding and what a learning curve it was. So I decided to directly translate the C# source code I had into AutoIt as a way of showing off the >Stack UDF (which you will need). Of course it can be changed not to use the Stack UDF, but why reinvent the wheel and make life even more difficult. If you don't understand RPN or the Shunting-Yard algorithm, then please look at the links below. Sources: https://en.wikipedia.org/wiki/Shunting_yard_algorithm, https://en.wikipedia.org/wiki/Reverse_Polish_notation and http://www.slideshare.net/grahamwell/shunting-yard #include <StringConstants.au3> #include "Stack.au3" Example() Func Example() ; Create postfix notation (RPN) from infix notation. ConsoleWrite(StringFormat('%s: == %s', '3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3', ShuntingYard_Parse('3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3')) & @CRLF) ConsoleWrite('Reference: 3 4 2 * 1 5 - 2 3 ^ ^ / +' & @CRLF) ConsoleWrite(@CRLF); A new line. ConsoleWrite(StringFormat('%s: == %s', '3 + 4', ShuntingYard_Parse('3 + 4')) & @CRLF) ConsoleWrite('Reference: 3 4 +' & @CRLF) ConsoleWrite(@CRLF); A new line. ; Expression from: http://www.slideshare.net/grahamwell/shunting-yard. ConsoleWrite(StringFormat('%s: == %s', '2 + (3 * (8 - 4))', ShuntingYard_Parse('2 + (3 * (8 - 4))')) & @CRLF) ConsoleWrite('Reference: 2 3 8 4 - * +' & @CRLF) ConsoleWrite(@CRLF); A new line. ; Calculate postfix notation (RPN) examples. ConsoleWrite('3 4 + == ' & ShuntingYard_Calculate('3 4 +') & @CRLF) ConsoleWrite('3 4 2 * 1 5 - 2 3 ^ ^ / + == ' & ShuntingYard_Calculate('3 4 2 * 1 5 - 2 3 ^ ^ / +') & @CRLF) ConsoleWrite('2 3 8 4 - * + == ' & ShuntingYard_Calculate('2 3 8 4 - * +') & @CRLF) EndFunc ;==>Example Func ShuntingYard_Calculate($sExpression) Local $aChar = StringSplit($sExpression, '', $STR_NOCOUNT), _ $hStack = Stack(), _ ; Create a stack to push/pop to. $iNumber1 = 0, $iNumber2 = 2, _ $sDigits = '', _ ; Hold string digits e.g. in case there are numbers greater than 1 digit long. $sToken = '' ; Token. For $i = 0 To UBound($aChar) - 1 $sToken = $aChar[$i] If StringIsDigit($sToken) Then $sDigits &= $sToken ElseIf __ShuntingYard_IsOperator($sToken) Then $iNumber2 = Stack_Pop($hStack) $iNumber1 = Stack_Pop($hStack) Stack_Push($hStack, __ShuntingYard_Eval($iNumber1, $iNumber2, $sToken)) ElseIf StringIsSpace($sToken) And Not ($sDigits == '') Then If StringIsInt($sDigits) Or StringIsFloat($sDigits) Then $iNumber1 = Number($sDigits) Stack_Push($hStack, $iNumber1) EndIf $sDigits = '' $iNumber1 = 0 EndIf Next Return Stack_Pop($hStack) EndFunc ;==>ShuntingYard_Calculate Func ShuntingYard_Parse($sExpression) Local $aChar = StringSplit($sExpression, '', $STR_NOCOUNT), _ $bIsBracket = False, _ ; Is parenthesis. $hStack = Stack(), _ ; Create a stack to push/pop to. $sOutput, _ ; Output string. $sToken = '' ; Token. For $i = 0 To UBound($aChar) - 1 $sToken = $aChar[$i] If StringIsDigit($sToken) Then ; If a digit add to the output string. $sOutput &= $sToken ElseIf __ShuntingYard_IsOperator($sToken) Then ; Check if a valid token. If __ShuntingYard_IsBracket($sToken) Then $bIsBracket = $sToken == '(' ; True if open bracket else False if closing. If $bIsBracket Then ; Open bracket. Stack_Push($hStack, $sToken) Else ; Closing bracket. $sOutput &= ' ' Do ; Repeat until '(' is found. $sOutput &= Stack_Pop($hStack) Until (Stack_Peek($hStack) == '(') Stack_Pop($hStack) EndIf Else $sOutput &= " " ; Workaround for spacing and certain expressions. If Stack_Count($hStack) > 0 And __ShuntingYard_HasHigherPrecedence($sToken, Stack_Peek($hStack)) Then $sOutput &= Stack_Pop($hStack) Stack_Push($hStack, $sToken) $sOutput &= " " ; Workaround for spacing and certain expressions. Else Stack_Push($hStack, $sToken) EndIf EndIf EndIf Next If Stack_Count($hStack) > 0 Then ; Append what is left on the stack in reverse order. $sOutput &= ' ' While (Stack_Count($hStack) > 0) $sOutput &= Stack_Pop($hStack) & ' ' WEnd EndIf Return $sOutput EndFunc ;==>ShuntingYard_Parse Func __ShuntingYard_Eval($iNumber1, $iNumber2, $sChar) Switch $sChar Case '+' Return $iNumber1 + $iNumber2 Case '-', ChrW(8722) ; Char 8722 is - but the unicode char code Return $iNumber1 - $iNumber2 Case '*' Return $iNumber1 * $iNumber2 Case '/' Return $iNumber1 / $iNumber2 Case '^' Return $iNumber1 ^ $iNumber2 Case Else Return $iNumber1 EndSwitch EndFunc ;==>__ShuntingYard_Eval Func __ShuntingYard_HasHigherPrecedence($sChar1, $sChar2) Local $iChar1 = __ShuntingYard_PrecendenceValue($sChar1), _ $iChar2 = __ShuntingYard_PrecendenceValue($sChar2) If $iChar1 = 0 And $iChar2 = 0 Then Return False EndIf Return $iChar1 <= $iChar2 And Not ($sChar1 == '^') EndFunc ;==>__ShuntingYard_HasHigherPrecedence Func __ShuntingYard_IsBracket($sChar) Return $sChar == '(' Or $sChar == ')' EndFunc ;==>__ShuntingYard_IsBracket Func __ShuntingYard_IsOperator($sChar) Return $sChar == '+' Or $sChar == '-' Or $sChar == ChrW(8722) Or $sChar == '*' Or $sChar == '/' Or $sChar == '^' Or $sChar == '(' Or $sChar == ')'; Char 8722 is - but the unicode char code. EndFunc ;==>__ShuntingYard_IsOperator Func __ShuntingYard_PrecendenceValue($sChar) Switch $sChar Case '+', '-' Return 2 Case '*', '/' Return 3 Case '^' Return 4 Case Else Return 0 EndSwitch EndFunc ;==>__ShuntingYard_PrecendenceValue
    1 point
  9. If you would like to send a message to all users on the local system during an installation, have a look at MSG.exe. Here is an example. RunWait('msg.exe * /TIME:60 /V /W "This computer, %COMPUTERNAME%, is going to log off. Please save your work and then close this dialog"', @SystemDir, @SW_HIDE) Run("logoff 1 & logoff 2 & logoff 3", @SystemDir, @SW_HIDE) I have used this on quite a few deployments to log users off. If I need to reboot or shutdown, and inform the user with SHUTDOWN.exe. Here is an example. Run('shutdown -r -f -t 60 -c "This computer, %COMPUTERNAME%, is going reboot in 60 seconds. Please save your work."', @SystemDir, @SW_HIDE)
    1 point
  10. Hi, chachew. In my case, the utility sat in the system tray, just something the customer wanted so users could click on the image and be able to relay system information to their Helpdesk (I don't ask, I just do what they pay me to do). Below is the code. I just compiled this code, then wrapped it with SRVANY to make it start on login, once the system detects "explorer.exe" running, otherwise the service tried to start too soon and returned rubbish. #NoTrayIcon #include <GUIConstantsEx.au3> Opt("TrayMenuMode", 3) $strComputer = @ComputerName Global $strNameOfUser Global $strUserDomain Global $_user Global $_domain ;On Startup, wait until the Process "explorer.exe" exists in the Logged In User context. ProcessWait("explorer.exe") ;Call the _WMI function to return the Logged In User's Name and Domain. _WMI() Func _WMI() $objWMIService = ObjGet("winmgmts:" _ & "{impersonationLevel=impersonate}!" _ & $strComputer & "rootcimv2") $colProcessList = $objWMIService.ExecQuery _ ("Select * from Win32_Process") For $objProcess in $colProcessList $colProperties = $objProcess.GetOwner( _ $strNameOfUser,$strUserDomain) If $objProcess.Name = "explorer.exe" Then _test() EndIf Next EndFunc ;Called by _WMI function. This function actually create the System Tray icon, using data gathered by WMI call. Func _test() TrayCreateItem("Account: " & $strNameOfUser) TrayCreateItem("Hostname: " & @ComputerName) TrayCreateItem("Domain: " & $strUserDomain) TrayCreateItem("Resolution: " & @DesktopWidth & "x" & @DesktopHeight) TrayCreateItem("") $aboutItem = TrayCreateItem("About") TraySetState() TraySetToolTip("Helpdesk Utility") While 1 $msg = TrayGetMsg() Select Case $msg = 0 ContinueLoop Case $msg = $aboutItem Msgbox(64,"About","Helpdesk Tooltip Utility" & @CRLF & "Version 0.1b, September 2011") Case $msg = $GUI_EVENT_CLOSE Exit EndSelect WEnd EndFunc
    1 point
×
×
  • Create New...