Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 05/24/2015 in all areas

  1. Add this to top of script Opt("WinTitleMatchMode", 2) And remove "µ" from window title. EDIT: and look again at your parameters of ControlSend.
    1 point
  2. ​PMSL EDIT: Probably getting it from cache. Use flag $INET_FORCERELOAD
    1 point
  3. Cod3369, You should wait at least 24 hours before bumping your post. Lots of folks, including myself, will read a thread and move on without responding. A couple of items for you to examine: Have you verified that the file deletion is actually occurring on the server?Where are you deleting the local copy of the file?Regards, Dan
    1 point
  4. gottygolly, Use UBound to find the size of the array: For $i = 0 To UBound($ss) - 1 $data &= $ss[$i] & @CRLF NextAnd you can see that using the &= operator makes the code a bit shorter too. M23
    1 point
  5. argumentum

    Help with arrays

    I looked at your code and made a mess .... but functional. Try it out: #RequireAdmin #notrayicon ;~ #include <ProcessInfo.au3> #include <Array.au3> ;~ #include <Toast.au3> if Not ProcessExists("svchost.exe") Then MsgBox(16,"Error","The process havent been founded :(") Exit EndIf ;~ _Toast_Set(0) Func _Toast_Show($1="",$2="",$3="",$4="",$5="",$6="") ; my fake "_Toast_Show" ToolTip( $1 , 20,20,$2 ) ConsoleWrite( $1&@CRLF&@TAB&$2&@CRLF&@CRLF) EndFunc _Toast_Show(@ScriptFullPath,"Svchost Checker","Checking the svchost..."&@CRLF&"This will take some time, please wait",0,True,True) Local $arraym[15][3] = [[1, 2, 3], [2, 3, 4], [3, 4, 5],[1, 2, 3],[1, 2, 3],[1, 2, 3],[1, 2, 3],[1, 2, 3],[1, 2, 3],[1, 2, 3],[1, 2, 3],[1, 2, 3],[1, 2, 3],[1, 2, 3],[1, 2, 3]] MsgBox(0,"","array created") $proceso=_ProcessListProperties("svchost.exe") For $x=1 To $proceso[0][0] $isput=0 $command=StringSplit($proceso[$x][9]," ") If $command[1]<>@SystemDir&"\svchost.exe" Then $arraym[$x][1]="The file its not at the usually directory" $arraym[$x][2]=$command[1] $isput=1 $arraym[0][0]=$arraym[0][0]+1 EndIf If $command[2]<>"-k" Then If $arraym[$x][1]<>"" then $arraym[$x][1]="Not acting like a normal svchost behaviour" $arraym[$x][2]=$command[1] EndIf If $isput<>0 Then $arraym[0][0]=$arraym[0][0]+1 EndIf EndIf Next ;~ _Toast_Hide() ;~ _Toast_Set(0) If $arraym[0][0]>0 Then _Toast_Show(@ScriptFullPath,"Svchost Checker","We found"&$arraym[0][0],0,True,True) Else _Toast_Show(@ScriptFullPath,"Svchost Checker","It seems that the process svchost its correct :)",0,True,True) Sleep(8000) ;~ _Toast_Hide() Exit EndIf For $g=1 To $arraym[0][0] MsgBox(4144,"Svchost checker","Problem "&$g&" of "&$arraym[0][0]&@CRLF&"Path: "&$arraym[$g][2]&@CRLF&"Reason: "&$arraym[$g][1]) Next ;=============================================================================== ; Function Name: _ProcessListProperties() ; Description: Get various properties of a process, or all processes ; Call With: _ProcessListProperties( [$Process [, $sComputer]] ) ; Parameter(s): (optional) $Process - PID or name of a process, default is "" (all) ; (optional) $sComputer - remote computer to get list from, default is local ; Requirement(s): AutoIt v3.2.4.9+ ; Return Value(s): On Success - Returns a 2D array of processes, as in ProcessList() ; with additional columns added: ; [0][0] - Number of processes listed (can be 0 if no matches found) ; [1][0] - 1st process name ; [1][1] - 1st process PID ; [1][2] - 1st process Parent PID ; [1][3] - 1st process owner ; [1][4] - 1st process priority (0 = low, 31 = high) ; [1][5] - 1st process executable path ; [1][6] - 1st process CPU usage ; [1][7] - 1st process memory usage ; [1][8] - 1st process creation date/time = "MM/DD/YYY hh:mm:ss" (hh = 00 to 23) ; [1][9] - 1st process command line string ; ... ; [n][0] thru [n][9] - last process properties ; On Failure: Returns array with [0][0] = 0 and sets @Error to non-zero (see code below) ; Author(s): PsaltyDS at http://www.autoitscript.com/forum ; Date/Version: 12/01/2009 -- v2.0.4 ; Notes: If an integer PID or string process name is provided and no match is found, ; then [0][0] = 0 and @error = 0 (not treated as an error, same as ProcessList) ; This function requires admin permissions to the target computer. ; All properties come from the Win32_Process class in WMI. ; To get time-base properties (CPU and Memory usage), a 100ms SWbemRefresher is used. ;=============================================================================== Func _ProcessListProperties($Process = "", $sComputer = ".") Local $sUserName, $sMsg, $sUserDomain, $avProcs, $dtmDate Local $avProcs[1][2] = [[0, ""]], $n = 1 ; Convert PID if passed as string If StringIsInt($Process) Then $Process = Int($Process) ; Connect to WMI and get process objects $oWMI = ObjGet("winmgmts:{impersonationLevel=impersonate,authenticationLevel=pktPrivacy, (Debug)}!\\" & $sComputer & "\root\cimv2") If IsObj($oWMI) Then ; Get collection processes from Win32_Process If $Process == "" Then ; Get all $colProcs = $oWMI.ExecQuery("select * from win32_process") ElseIf IsInt($Process) Then ; Get by PID $colProcs = $oWMI.ExecQuery("select * from win32_process where ProcessId = " & $Process) Else ; Get by Name $colProcs = $oWMI.ExecQuery("select * from win32_process where Name = '" & $Process & "'") EndIf If IsObj($colProcs) Then ; Return for no matches If $colProcs.count = 0 Then Return $avProcs ; Size the array ReDim $avProcs[$colProcs.count + 1][10] $avProcs[0][0] = UBound($avProcs) - 1 ; For each process... For $oProc In $colProcs ; [n][0] = Process name $avProcs[$n][0] = $oProc.name ; [n][1] = Process PID $avProcs[$n][1] = $oProc.ProcessId ; [n][2] = Parent PID $avProcs[$n][2] = $oProc.ParentProcessId ; [n][3] = Owner If $oProc.GetOwner($sUserName, $sUserDomain) = 0 Then $avProcs[$n][3] = $sUserDomain & "\" & $sUserName ; [n][4] = Priority $avProcs[$n][4] = $oProc.Priority ; [n][5] = Executable path $avProcs[$n][5] = $oProc.ExecutablePath ; [n][8] = Creation date/time $dtmDate = $oProc.CreationDate If $dtmDate <> "" Then ; Back referencing RegExp pattern from weaponx Local $sRegExpPatt = "\A(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(?:.*)" $dtmDate = StringRegExpReplace($dtmDate, $sRegExpPatt, "$2/$3/$1 $4:$5:$6") EndIf $avProcs[$n][8] = $dtmDate ; [n][9] = Command line string $avProcs[$n][9] = $oProc.CommandLine ; increment index $n += 1 Next Else SetError(2); Error getting process collection from WMI EndIf ; release the collection object $colProcs = 0 ; Get collection of all processes from Win32_PerfFormattedData_PerfProc_Process ; Have to use an SWbemRefresher to pull the collection, or all Perf data will be zeros Local $oRefresher = ObjCreate("WbemScripting.SWbemRefresher") $colProcs = $oRefresher.AddEnum($oWMI, "Win32_PerfFormattedData_PerfProc_Process" ).objectSet If Not IsObj($colProcs) Then Return $avProcs ; <---- it was failing here $oRefresher.Refresh ; Time delay before calling refresher Local $iTime = TimerInit() Do Sleep(20) Until TimerDiff($iTime) >= 100 $oRefresher.Refresh ; Get PerfProc data For $oProc In $colProcs ; Find it in the array For $n = 1 To $avProcs[0][0] If $avProcs[$n][1] = $oProc.IDProcess Then ; [n][6] = CPU usage $avProcs[$n][6] = $oProc.PercentProcessorTime ; [n][7] = memory usage $avProcs[$n][7] = $oProc.WorkingSet ExitLoop EndIf Next Next Else SetError(1); Error connecting to WMI EndIf ; Return array Return $avProcs EndFunc ;==>_ProcessListProperties
    1 point
  6. You should use AU3Inf (spy for the screen, part of AutoIT) to see if you can read the data of the screen If not try simplespy and check iuiautomation in examples section @TheDCoder: Not sure why you refer to forumrules. Its not about bypassing the logon box just identifying which server so right credentials can be given
    1 point
  7. ​There is no need to discard.Keep it up every problem have a solution....If you are a hard-worker... $ctrHndl = ControlGetHandle("Tilte".""."[CLASS:Your Class]") ControlTreeView("PhraseExpress Freeware v10.5.41f","",$ctrHndl,"Select","PhraseExpress|Ahat|#3") Try like this one.......
    1 point
  8. Very Cool MikahS ! So using this additional code I have updated my example. Now you can click on your excel sheet where you want to insert and then click the send button on the GUI... #include <GUIConstantsEx.au3> #include <Excel.au3> Example() Func Example() ; Create a GUI with various controls. Local $hGUI = GUICreate("Example") Local $idOK = GUICtrlCreateButton("OK", 310, 370, 85, 25) Local $idSend = GUICtrlCreateButton("Send", 200, 200, 85, 25) Global $Radio1 = GUICtrlCreateRadio("22", 56, 136, 49, 17) ; Display the GUI. GUISetState(@SW_SHOW, $hGUI) ; Loop until the user exits. While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $idOK ExitLoop Case $idSend ;---------------------------------Send Button Calls Case $iDSend----------Case calls Function named ""SendToExcel()"" below SendToExcel() EndSwitch WEnd ; Delete the previous GUI and all controls. GUIDelete($hGUI) EndFunc ;==>Example Func SendToExcel() $radioVar = GUICtrlRead($Radio1) Local $sWorkbook = @ScriptDir & "\_Excel1.xls" Local $oWorkbook = _Excel_BookAttach($sWorkbook) Local $oRange = $oWorkbook.Application.Activecell.Address Local $oAddress = StringReplace($oRange, "$", "") _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $radioVar, $oAddress) If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Example 2", "Error writing to worksheet." & @CRLF & "@error = " & @error & ", @extended = " & @extended) EndFunc ;==>SendToExcel
    1 point
×
×
  • Create New...