Parameterübergabe
Moderator: jNizM
Parameterübergabe
Ich möchte gern Parameter an ein laufendes Script übergeben. Bislang mache ich das mit einer Ini-Datei, die mit einem Timer abgefragt wird. Geht das auch anders? Z. B. eine Variable auf Windowsebene, die von mehreren Programmen geändert werden kann und vom Script ausgelesen wird.
Re: Parameterübergabe
Hallo ... schon mal an die Registry gedacht ... ?
Das geht ganz komfortabel per RegWrite + RegRead ... und verbraucht quasi keine Ressoursen.
gruss
gero
Das geht ganz komfortabel per RegWrite + RegRead ... und verbraucht quasi keine Ressoursen.
gruss
gero
- Seidenweber
- Posts: 17
- Joined: 30 Sep 2013, 11:40
Re: Parameterübergabe
Windows-Programme "unterhalten" sich intern durch Messages. Dieselbe Methode kannst du auch benutzen.DocToday wrote:Ich möchte gern Parameter an ein laufendes Script übergeben.
Ich habe hier mal ein einfaches Beispiel gebastelt. Die Datei Receiver.ahk zeigt eine Messagebox mit dem Text an, der via SendMessage vom Script Sender.ahk geschickt wurde.
Der Vorteil ist, dass du nicht periodisch nach eventuellen Daten suchen musst, sondern die Funktion OnMessage() ständig "abhört", ob was gesendet wurde und dann automatisch anspringt.
Eingentlich genial einfach. Ob das aber für deine Zwecke eine geeignete Methode ist, kann ich nicht sagen
Sender.ahk
Code: Select all
; =============================================================================================================================
; AHK-Version ....: AHK_L 1.1.16.04 x64 Unicode
; Getestet unter .: Windows 7 Ultimate x64 SP1
; Autor ..........: Seidenweber
; =============================================================================================================================
; #GLOBALE EINSTELLUNGEN# =====================================================================================================
#NoEnv
#SingleInstance force
; #AUTOEXEC-SEKTION# ==========================================================================================================
SomeText := "Das Knollenwachstum der Solanum tuberosum steht in reziproker Proportionalität zur kognitiven Leistungsfähigkeit des Argrarökonomen."
SendTTS(SomeText)
; #ENDE DER AUTOEXEC-SEKTION# =================================================================================================
Return ; Nachfolgend werden Funktionen, Sub-Label und HotKeys definiert
; =============================================================================================================================
SendTTS(TTSText) {
VarSetCapacity(CopyDataStruct, 3*A_PtrSize, 0)
SizeInBytes := (StrLen(TTSText) + 1) * (A_IsUnicode ? 2 : 1)
NumPut(SizeInBytes, CopyDataStruct, A_PtrSize)
NumPut(&TTSText, CopyDataStruct, 2*A_PtrSize)
saveDHW := A_DetectHiddenWindows
DetectHiddenWindows On
SendMessage, 0x4a, 0, &CopyDataStruct,, SpeechReceiverScript
DetectHiddenWindows %saveDHW%
Return ErrorLevel
}
; #HOTKEY# ====================================================================================================================
; Beenden des Scriptes
; =============================================================================================================================
Escape::
SoundPlay, *64
ExitApp
; =============================================================================================================================
Code: Select all
; =============================================================================================================================
; AHK-Version ....: AHK_L 1.1.16.04 x64 Unicode
; Getestet unter .: Windows 7 Ultimate x64 SP1 als kompilierte 32-Bit-EXE
; Autor ..........: Seidenweber
; Quelle .........: Hilfe zu OnMessage()
; Funktion .......: Empfängt per Message (WM_COPYDATA) Texte von einem anderen Script
; =============================================================================================================================
; #GLOBALE EINSTELLUNGEN# =====================================================================================================
#NoEnv
#SingleInstance force
; #AUTOEXEC-SEKTION# ==========================================================================================================
Gui, +LastFound +ToolWindow
Gui, Show, Hide, SpeechReceiverScript
OnMessage(0x4a, "Receive_WM_COPYDATA") ; 0x4a is WM_COPYDATA
; #ENDE DER AUTOEXEC-SEKTION# =================================================================================================
Return ; Nachfolgend werden Funktionen, Sub-Label und HotKeys definiert
; =============================================================================================================================
Receive_WM_COPYDATA(wParam, lParam) {
MsgBox,4160,Nachricht empfangen, % StrGet(NumGet(lParam + 2 * A_PtrSize))
}
; #HOTKEY# ====================================================================================================================
; Beenden des Scriptes
; =============================================================================================================================
Escape::
SoundPlay, *64
ExitApp
; =============================================================================================================================
Questions and answers are related to AHK 1.1.13.01 (x64) & Win 7 pro x64
Who is online
Users browsing this forum: No registered users and 34 guests