16 posts in this topic
Hello all I am trying to use this function to detect if a specific window is running. Then for it to activate it and send an ALT+F command to close the window. But I cannot seem to get it to detect the window and subsequently the rest of the code does not work.
#include <MsgBoxConstants.au3> Handleit() Func Handleit() If WinExists("[CLASS:MsiDialogCloseClass]","InstallShield") Then WinActivate("[CLASS:MsiDialogCloseClass]","Installshield") Send("!f") Else MsgBox($MB_SYSTEMMODAL, "", "Uhhh... something didn't work. Fix it!") EndIf EndFunc Is there anything that I can substitute for the CLASS?
Thank you for taking the time to read my question!
I want to check if the cmd.exe + window of it is running, if it is running I want to put the window to the foreground, but somehow this does not work:
Local $sCommandlinePath = "C:\Windows\system32\cmd.exe" RunCm() Func RunCm() If FileExists($sCommandlinePath) Then If ProcessExists("cmd.exe") Then If WinExists("[CLASS:ConsoleWindowClass]") And WinActive("[CLASS:ConsoleWindowClass]") Then Local $hCmdWindow = WinGetHandle("[CLASS:ConsoleWindowClass]") WinSetOnTop($hCmdWindow, "", $WINDOWS_ONTOP) EndIf Else Local $iCmMax = Run($sCommandlinePath, "", @SW_SHOWMAXIMIZED) EndIf EndIf EndFunc I started the command line and put another window above it then I started my script and it did not put the command line window to the foreground.
I did some experiments with FileOpenDialog function. I did this from a GUI's button click. Then i wrote another function to the same script to find the file open dialog window with WinExists function. But i can't detect the presence of the open dialog with "WinExists" function. I think when the FileOpenDialog is came, then the main script is not focused. Then i tested it with another script. That is - I run the first function (the one which contains the gui code and the fileOpenDialog code) from another IDE. And i run th window detecting function (the WinExists function) from SciTE. Then it worked. So my qustion is- Is it possible to do this task from the same script ?
This is the code that not working
#include <WindowsConstants.au3> #include <GUIConstantsEx.au3> $hGUI = GUICreate("Window", 500, 400, -1, -1) Global $hButton = GUICtrlCreateButton("Button", 144, 179, 202, 60) GUISetState() While 1 Sleep(30) $hMsg = GUIGetMsg() Switch $hMsg Case $GUI_EVENT_CLOSE Exit Case $hButton BtnClick() EndSwitch Checker() WEnd Func BtnClick() Local $sPath = FileOpenDialog("TestWindow","D:\AutoIt Works\EXEs","(*.*)") ConsoleWrite($sPath & @LF) EndFunc Func Checker() if WinExists("TestWindow") = 1 Then ConsoleWrite("Yes, it is there" & @CRLF) EndIf EndFunc After first failure, i ran the Checker function from SciTE and this gui function from another IDE. Then it worked.
I am looking for some help with my code. I want to be able to have this script always run, and append a file each time a program is opened adding a new line. Here is my code, and help would be greatly appreciated.
#include <MsgBoxConstants.au3> #include <FileConstants.au3> #include <File.au3> Local $aLines, $iCount = 0 local $hDate = @YEAR & '-' & @MON & '-' & @MDAY & ' ' & @HOUR & ':' & @MIN & ':' & @SEC local $hfile=FileOpen("C:\Users\public\Desktop\new1.txt", $FO_APPEND) Local $hComputername = @ComputerName ; Computer Name Local $hUsername = @UserName ; User Name While 1 If $hfile = -1 Then SplashTextOn("Error", "Unable to open and append the log file.", 300, 50) Sleep(2000) SplashOff() EndIf _FileReadToArray("C:\Users\public\Desktop\new1.txt", $aLines) If Not @error Then ; if the file exists look for the ID starting on the last line For $i = $aLines To 1 Step -1 If StringLeft($aLines[$i], 2) == "id" Then ; get the ID number $iCount = Int(StringRegExpReplace($aLines[$i], "id(\d*):.*", "$1")) ExitLoop EndIf Next ; Check we found an ID If $i = 0 Then MsgBox(0, "Error", "No line id found") Exit EndIf EndIf If WinExists("[Class:Notepad]", "") Then FileWrite($hfile, _LineID() & '|' & $hDate & '|' & $hComputername & '|' & "Notepad was opened by " & $hUsername & @CRLF) Sleep(10) FileClose($hfile) Sleep(1000) EndIf WEnd Func _LineID() $iCount += 1 Return "id" & StringFormat("%04i", $iCount) & ": " EndFunc ;==> LineID Thanks!
I have been trying to write a script to silently install CRM Outlook client for about the past 6 days. No matter what I have tried this doesn't seem to be doing anything.
Code is below. Any help is appreciated.
Opt("TrayIconDebug",1) ShellExecute("R:\IT\SoftLib\CRM2011\CRM2011-Client-ENU-i386\SetupClient.exe") winwait("Microsoft Dynamics CRM 2011 for Outlook Setup") WinActivate("Microsoft Dynamics CRM 2011 for Outlook Setup") WinExists("Microsoft Dynamics CRM 2011 for Outlook Setup","I &accept the license agreement") ControlClick("Microsoft Dynamics CRM 2011 for Outlook Setup","I &accept the license agreement",1007) WinExists("Microsoft Dynamics CRM 2011 for Outlook Setup","&Next") ControlClick("Microsoft Dynamics CRM 2011 for Outlook Setup","&Next",1008) WinExists("Microsoft Dynamics CRM 2011 for Outlook Setup","Install Now") ControlClick("Microsoft Dynamics CRM 2011 for Outlook Setup","&Install Now",1019) WinExists("Microsoft Dynamics CRM 2011 for Outlook Setup","The installation completed successfully.") ControlClick("Microsoft Dynamics CRM 2011 for Outlook Setup","&Close",1038)