Recently Browsing 0 members
No registered users viewing this page.
This topic give you access to an AutoIt functions library I maintain which is called PAL, Peter's AutoIt Library. The latest version 1.26 contains 214 functions divided into these topics:
window, desktop and monitor GUI, mouse and color GUI controls including graphical buttons (jpg, png) GUI numberbox controls for integer, real, binary and hexadecimal input logics and mathematics include constants string, xml string and file string dialogues and progress bars data lists: lists, stacks, shift registers and key maps (a.ka. dictionaries) miscellaneous: logging/debugging, process and system info Change log and files section on the PAL website (SourceForge).
A lot of these functions were created in the development of Peace, Peter's Equalizer APO Configuration Extension, which is a user interface for the system-wide audio driver called Equalizer APO.
I am a bit confused about how to change the contents of one listbox item. I have been trying to use _GuiCtrlIListbox_GetItemData and _GuiCtrlIListbox_SetItemData. Is this correct? I have tried using _GuiCtrlIListbox_GetItemText also. I have code as follows that is intended to replace the first 4 characters of the entry with 5 dashes :
$sLbxEntry = _GuiCtrlListbox_GetItemData($gLbxPlayList, $iLstIdx) FnuDebug("Listbox entry no: " & $iLstIdx & ", Listbox error = " & @error & ", Content: " & $sLbxEntry) $sLbxEntry = "-----" & StringMid($sLbxEntry, 5) _GUICtrlListBox_SetItemData($gLbxPlayList, $iLstIdx, $sLbxEntry) ;results of debug: ;DEBUG: Listbox entry no: 3, Listbox error = 0, Content: 0 It would appear that the first line of code is returning "0" yet that listbox entry is clearly populated with text. I suspect I am misunderstanding something very basic?
I have a program that has a specific function that renames the computer.
The entire program should be executed only on behalf of the current user, because some registry keys in the HKCU are being changed.
The current user does not have administrator rights, so #Requireadmin is not suitable as a solution.
The administrator accounts on the computers are different, so "RunAs" is not suitable.
Is there a way to trigger a UAC, when running a function?
The function code, if you need:
Func _RenamePC($Input2) Local $Name = GUICtrlRead($Input2) $objWMIService = ObjGet("winmgmts:\root\cimv2") For $objComputer In $objWMIService.InstancesOf("Win32_ComputerSystem") $oReturn = $objComputer.rename($Name) Next EndFunc
I seem to have lost my sense of how the Global scope works. In this example $p is Global but I can't seem to set $p in function __One and then pass that version of $p to function __Two. I thought you could set a Global to a new value from within a function and it would affect the Global value.
I've stared and played with this code for over an hour and I'm missing something really basic. Help appreciated.
#AutoIt3Wrapper_run_debug_mode=Y ; use this to debug in console window <--- LOOK Global $p = 999 MsgBox(0, "DEBUG", "MAIN - $p = '" & $p & "'") __One() Exit Func __One() ;Global $p ;this seems to make no difference - comment it out to see - how does one affect the Global in a function? MsgBox(0, "DEBUG", "Entering Func __One() - $p = '" & $p & "'") For $p = 1 to 3 MsgBox(0, "DEBUG", "IN Func __One() - $p = '" & $p & "'") __Two() Next EndFunc Func __Two() MsgBox(0, "DEBUG", "Entering __Two() $p = '" & $p & "'") EndFunc
My au3 script program needs administrator privileges on win10 to be executed correctly, because it needs to be added to the boot---Script code:RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName, "REG_SZ", @ScriptFullPath)
I need to let the program automatically get administrator privileges, so I use a function of #RequireAdmin. Although the program can be added to the boot, but does not execute after system boot up? why is that?
What should I do?
I found that after using the #RequireAdmin function, the program cannot be executed after system boot up.
An example is given below. after it is compiled, it will not be executed after system boot up in the following two ways.
1. C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\
2. RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName, "REG_SZ", @ScriptFullPath)
why is that?
MsgBox(0, "", "this is test message")