Jump to content

AutoIt exe - from exe to rainmeter - Looking for pointers


Recommended Posts

  • Developers

You description doesn't offer much base to make any suggestion. 
Try to be a little more descriptive what it is you actually want to accomplish. ;) 

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to post
Share on other sites

i am hoping to grab speaker configurations from my audio manager (which I am pretty sure i can get the necessary dll from that handles those and decompile them as they are in .net format). Then switch through them using rainmeter via an exe that runs in the background once evoked - then it completes until any future need for switching to a different speaker config.

The reason is different video files use different speaker config output - stereo, quadrophonic, 5.1 or 7.1. So getting those and being able to capture a list and parse (verb/adverb usage?) the list to switch to one of those on the list.

Does that make sense?

Link to post
Share on other sites
  • Developers

I still have no clue what you are talking about:

  • Decompiling .net stuff to get the dll's used?
  • rainmeter ? (assume this is not something that measures rainfall)

I see this is your second thread on more or less the same topic and the other one also didn't get much response which in general means things aren't clear and won't be able to assist in anyway, shape or form. 
So again: try to be col=mplete in providing information about what you want to know and be clear in what the question is. ;) 

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to post
Share on other sites

i am hoping to grab speaker configurations from my audio manager. Then switch through them using the desktop customisation tool called rainmeter via an exe - then it completes until any future need for switching to a different speaker config.

To explain better, rainmeter uses a non compiled script called: rainmeter script. Rainmeter is also opensource. I have read on several occasions the AutoIt exe's work well with this desktop customisation tool - why - well, that is why I am asking here for help, because I really have no idea why.

The reason is different video files use different speaker config output - stereo, quadrophonic, 5.1 or 7.1. So getting those and being able to capture a list and parse the list to switch to one of those on the list.

Does that make sense so far? Why do I ask? Because I know nothing about AutoIt, only that it too uses a scripting language that I am hoping is less confusing then C++. Am I wrong to hope for that? Again, I do not know, that is why I am asking.

Thanks for any help.

Link to post
Share on other sites

Ok, I think i am taking the wrong approach to asking a question.

I am trying to develop a widget in the rainmeter. the widget, or skin as it is called grabs some information that rainmeter can natively handle on its own. I like rainmeter so it is my main thing i mess around with.

Rainmeter can incorporate things like exe's and dll's similar but not in the same way as AutoIt can. Since rainmeter cannot do the thing i am trying to accomplish, i am looking at other options like AutoIt which can be compiled if needed to create an exe that rainmeter can run for me to complete the task i am hoping to accomplish - the audio manager thing of locating programmatically my PC's audio output configuration - then allowing me to change amongst the 4 types my PC can handle. 

I know many PC users also use the same audio manager as me - so if i do find a way to accomplish this task - i will get the fum of sharing it as well. I have seen in some posts around the internet of people trying to do this as well - but they were trying to simulate keystrokes on a window that did not always appear in the same place. Well that had me confused since the one i use always appears in the exact same place. Anyway , that way is not what I am trying to do.

I want to find a way to call in a similar way as other features that run in the form of a dll or exe in the rainmeter environment. The kind rainmeter developers kindly have provided all users with the needed base code to make that possible with AutoIt via their online manual guide to using rainmeter - in the vein that people may wish to have the general freedom i suppose to do so. 

I know there are likely a lot of things an experienced AutoIt user would ask - but I cannot predict that any more than they can predict what I am trying to ask. 

So if anything here i've tried to elabourate on makes any sense or provides any insight into a way someone could provide any assistance for me, it would be greatly appreciated. I hope I might gain some traction on an idea that met with no option in rainmeter alone could do alone in those forums.

I know the basic idea behind the kind of things that may come up, but i don't know where to start, beyond the base code for successfully writing an AutoIt program that can be used in rainmeter. I don't know what or why the things in it are for or mean, so I am just not knowledgeable enough to ask more specifically.

So I guess the idea will not just be answered in one thread, but i hope as i start to learn that eventually my questions will make more sense as time provides. Little steps...

Cheers.

 

The following code demonstrates how to retrieve important application path information for Rainmeter from your external application:

#include <SendMessage.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>

$RAINMETER_QUERY_WINDOW = WinGetHandle("[CLASS:RainmeterTrayClass]")
$WM_QUERY_RAINMETER = $WM_APP + 1000
$RAINMETER_QUERY_ID_SKINS_PATH = 4101
$RAINMETER_QUERY_ID_SETTINGS_PATH = 4102
$RAINMETER_QUERY_ID_PROGRAM_PATH = 4104
$RAINMETER_QUERY_ID_CONFIG_EDITOR = 4106
$WM_QUERY_RAINMETER_RETURN = ""

Dim $PathsArray[4]

$hGUI = GUICreate("", 1, 1, -1, -1)

If Not ProcessExists("Rainmeter.exe") Then
	MsgBox(16, "GetPath Error", "Rainmeter must be running to use GetPath.")
	Exit
EndIf

GUIRegisterMsg($WM_COPYDATA, "_ReadMessage")

 _SendMessage($RAINMETER_QUERY_WINDOW, $WM_QUERY_RAINMETER, $RAINMETER_QUERY_ID_PROGRAM_PATH, $hGUI)
 $PathsArray[0] = $WM_QUERY_RAINMETER_RETURN

 _SendMessage($RAINMETER_QUERY_WINDOW, $WM_QUERY_RAINMETER, $RAINMETER_QUERY_ID_SETTINGS_PATH, $hGUI)
$PathsArray[1] = $WM_QUERY_RAINMETER_RETURN

 _SendMessage($RAINMETER_QUERY_WINDOW, $WM_QUERY_RAINMETER, $RAINMETER_QUERY_ID_SKINS_PATH, $hGUI)
 $PathsArray[2] = $WM_QUERY_RAINMETER_RETURN

 _SendMessage($RAINMETER_QUERY_WINDOW, $WM_QUERY_RAINMETER, $RAINMETER_QUERY_ID_CONFIG_EDITOR, $hGUI)
 $PathsArray[3] = $WM_QUERY_RAINMETER_RETURN

_ArrayDisplay($PathsArray)


Func _ReadMessage($hWnd, $uiMsg, $wParam, $lParam)

	$pCds = DllStructCreate("dword;dword;ptr", $lParam)
	$pData = DllStructGetData($pCds, 3)
	$pMem = DllStructCreate("wchar[" & DllStructGetData($pCds, 2) & "]", DllStructGetData($pCds, 3))
	$WM_QUERY_RAINMETER_RETURN = DllStructGetData($pMem, 1)

EndFunc ;_ReadMessage
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...