Recently Browsing 0 members
No registered users viewing this page.
I am trying to use RegWrite to create a key within HKLM on W10 without success.
I've had a look at a number of posts on the forum to troubleshoot, without success.
This post seems highly relevant
Here is my latest script with output
; Read/write data to registry #RequireAdmin Example() Func Example() Local $Status = "" ; Check if the registry key is already existing, so as not to damage the user's system. RegRead("HKLM\SOFTWARE\Microsoft\F1", "Key1") ConsoleWrite("Error: " & @error & @CRLF) ; Write a single REG_SZ value to the key "Key1". $Status = RegWrite("HKLM\SOFTWARE\Microsoft\F1", "Key1", "REG_SZ", "This is an example of RegWrite") ConsoleWrite("Status: " & $Status & @TAB & " Error: " & @error & @CRLF) EndFunc ;==>Example
>"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "D:\Temp\Macrium\Registry_write_read.au3" /UserParams +>16:18:46 Starting AutoIt3Wrapper (21.316.1639.1) from:SciTE.exe (184.108.40.206) Keyboard:00000409 OS:WIN_10/2009 CPU:X64 OS:X64 Environment(Language:0409) CodePage:0 utf8.auto.check:4 +> SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE UserDir => C:\Users\ZEN\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper SCITE_USERHOME => C:\Users\ZEN\AppData\Local\AutoIt v3\SciTE >Running AU3Check (220.127.116.11) from:C:\Program Files (x86)\AutoIt3 input:D:\Temp\Registry_write_read.au3 +>16:18:47 AU3Check ended.rc:0 >Running:(18.104.22.168):C:\Program Files (x86)\AutoIt3\autoit3.exe "D:\Temp\Registry_write_read.au3" +>Setting Hotkeys...--> Press Ctrl+Alt+Break to Restart or Ctrl+BREAK to Stop. Error: 0 Status: 1 Error: 0 +>16:18:47 AutoIt3.exe ended.rc:0 +>16:18:48 AutoIt3Wrapper Finished. >Exit code: 0 Time: 2.362
The user is a local admin.
According to the script output, the regwrite call should have succeeded.
SciTe has been runas admin.
I've also tried compiling the script and running the resulting exe as admin.
Obviously I can't see the consolewrite output when I do this, but if the function calls were working then the exe should update the registry.
After suggestions as to options to try next.
Also, I tried narrowing down the forum search using arguments like: "regwrite windows 10" or "regwrite windows10" and for some reason had no results on the search; so had to use more general search arguments. Would be interested to know why the above wouldn't work as a search argument.
IsRunningAsUwp() detection for AutoIt Apps published via the Windows Bridge to UWP as MSIX/APPX for the Windows Store - (Moved)By matthewjs
I am looking to code IsRunningAsUwp() detection for AutoIt Apps published via the Windows Bridge to UWP borrowing from code here in C#: DesktopBridgeHelpers/Helpers.cs at master · qmatteoq/DesktopBridgeHelpers · GitHub More info also here: GetCurrentPackageFullName function (appmodel.h) - Win32 apps | Microsoft Docs
The P/Invoke equivalent looks to be a pain in AutoIt and I am sure that DllStructCreate|GetData|GetPtr etc are required so if anyone one else finds this of interest and useful to them they are most welcome to contribute: I hacked a workaround as IsRunningAsUwp() (I think its only the "\VFS\" that matches!) whereas IsRunningAsUwpToDo() is to be fixed and coded up properly using DLLStruct functions as I mentioned and I figure that there will be a Guru around here with this stuff as I have also heard that the AutoIt Devs are planning a move to UWP and the below is going to be pretty fundamental (at least until then although similar will likely wind up in the libraries eventually anyways..).
OutputDebugString() is here:
#Include-once Func OutputDebugString($lpOutputString) DllCall("kernel32.dll", "NONE", "OutputDebugString", "STR", $lpOutputString) EndFunc The script to be fixed is here:
#Include <OutputDebugString.au3> Const $APPMODEL_ERROR_NO_PACKAGE = 15700 Const $ERROR_INSUFFICIENT_BUFFER = 122 Func IsRunningAsUwp() If IsWindows7OrLower Then Return False EndIf Return StringinStr(@ScriptDir, "\WindowsApps\") > 0 Or StringInStr(@ScriptDir, "\VFS\") > 0 EndFunc Func IsRunningAsUwpToDo() If IsWindows7OrLower Then Return False EndIf Local $packageFullNameLength = 0; Local $packageFullName[$packageFullNameLength]; Local $result = DllCall("kernel32.dll", "LONG", "GetCurrentPackageFullName", "UINT32*", $packageFullNameLength, "PWSTR", $packageFullName) OutputDebugString("$result=" & String($result)) OutputDebugString("packageFullNameLength=" & String($packageFullNameLength)) OutputDebugString("packageFullName=" & String($packageFullName)) Local $packageFullName[$packageFullNameLength]; Local $result = DllCall("kernel32.dll", "LONG", "GetCurrentPackageFullName", "UINT32*", $packageFullNameLength, "PWSTR", $packageFullName) OutputDebugString("$result=" & String($result)) OutputDebugString("packageFullNameLength=" & String($packageFullNameLength)) OutputDebugString("packageFullName=" & String($packageFullName)) Return $result <> $APPMODEL_ERROR_NO_PACKAGE And $packageFullNameLength > 0 EndFunc Func IsWindows7OrLower() Local $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2") Local $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", 0x30) If IsObj($colItems) Then For $objItem In $colItems Local $version = $objItem.Version OutputDebugString("Win32_OperatingSystem.Version=" & $version) Return Number($version) <= 6.1 Next Else Msgbox(0, "", "No WMI Object for Version found in WMI Class Win32_OperatingSystem") Exit(-1) Endif Return False EndFunc Kindest Regards, Matthew
I started this project alone in May 2020 as project in my spare time at work, I'm working for a IT company that started opening their services to residential customers few months ago and now my position in the company kind of drifted in the doom and gloom world of repetitive tasks like: Reinstallation + Configuration of Windows 10.
The procedure is very repetitive and I started feeling like being a robot which is the main reason I started this project.
1. Q: Do you want this project to be accomplished with the usage of AutoIt ONLY or 3rd party tools / Scripts (BATCH / POWERSHELL / VB) ? A: No, if I cannot find a way using AutoIt to accomplish a task I will move to my Plan B which consist of automating an 3rd party tool to accomplish the affected task until a solution is found. 2. Q: What do I get from helping/collaborating in this project? A: I will personally take the responsibility to mention you in the credits of this project. 3. Q: If I have more questions, can I ask? A: Certainly! feel free to ask any questions related to this project! 4. Q: What is the main goal of this project? A: Automating Windows 10 configuration without user interaction needed (as much as possible) ______________________________________________________________________________________________________________________________
Current progression of the project (more will be added in future)
« Blue = Info || Yellow = Unfinished/Untested || Purple = Could be better || Green = Done ||Red = Not Yet Started »
***Very early Stage ***
Connect Network Attached Storage(NAS) (Work but missing configuration in GUI - AutoIt only)
Download & Install up to 600+ softwares (Tested & Working - using 3rd party tool + 50/50 Powershell/AutoIt)
Auto prediction of Apps name of text typed inside input (Tested & Working - AutoIt Only)
Change OEM Informations (Tested & Working - AutoIt)
Disable hibernation (Tested & Working - AutoIt only)
Change Computer Name (Work but require testing - AutoIt only)
Show Computer Information and Smart status on GUI (Tested & Working - AutoIt Only)
Change .pdf / .pdfxml from Edge to Adobe Reader DC (Tested & Working - using 3rd party tool)
Change Edge to Google Chrome as Default Browser (Tested & Working - using 3rd party tool)
Windows Updater (Seems to work but require further testing - AutoIt only)
Install Office 365 / 2013 + Activation (To Do)
Add L2TP VPN Configuration for Windows Built-in VPN (To Do)
Save / Load tasks configuration profile in (.ini file) to avoid repeating same configuration twice (In progress - AutoIt Only)
(EXPERIMENTAL) Install Apps from Microsoft Store with UIAutomation UDF made by @junkew(Work if you know what your doing)
P.S: Installing Apps from Microsoft Store will require usage of UIA spy tool made by @LarsJ which you can download & learn how to use it on UIA Spy Tool thread.
*** If this project interest you, Reply here This will greatly help me to see if you'd like this project to become real ***
I'm not sure if its possible that I'm trying to achieve, I've looked into https://www.autoitscript.com/autoit3/scite/docs/SciTE4AutoIt3/AutoIt3Wrapper.html and such resources for help, but I cant really find the answer to my question.
So upon compiling the script in SciTE, the exe file is given a Description under file Properties>Details. I understand, that one can enter info manually there and it can even implement the version automatically with each compilation.
What I'm trying to achieve is to somehow include the "@ScriptName" in the Details>File Description Field. But as I see no variable can be taken after "#" in this case.
Do You think its achievable? (Win 10)
Much obliged for taking time on reading this.
$sCommands1 = 'powershell.exe Get-ChildItem' $iPid = run($sCommands1 , @WorkingDir , @SW_SHOW , 0x2) $sOutput = "" While 1 $sOutput &= StdoutRead($iPID) If @error Then ExitLoop EndIf WEnd ;~ msgbox(0, '' , $sOutput) ConsoleWrite("$sOutput") ConsoleWrite($sOutput) ConsoleWrite(@CRLF) $aOutput = stringsplit($sOutput ,@LF , 2) For $i=0 To UBound($aOutput) - 1 Step 1 ConsoleWrite($aOutput[$i]) Next The script above reads the whole directory into a one dimensional array, but I need to work with the array, so I need to split the array into multiple dimensions.
I have already read some forum answers here, and I have already tried these commands:
Are there any way to use the $aOutput variable like in PowerShell:
$a = Get-ChildItem $a.Mode I imagine this in AutoIt $aOutput
ConsoleWrite($aOutput[i].Mode) Or if I split this command into 2 dimension like:
For $i To UBound($aOutput)-1 Step 1 ConsoleWrite($aOutput[$i]) ConsoleWrite($aOutput[$i]) Next