Send-Befehl hat keine Auswirkung mehr

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Joska
Posts: 13
Joined: 24 Jan 2015, 12:39

Send-Befehl hat keine Auswirkung mehr

14 Aug 2017, 10:28

Hallo liebe community

Seit 5 Jahren nutze ich ein kleines Script, welches , obwohl in fürchterlichem Code geschrieben, seine Funktion gut erfüllt hat. Sinn und Zweck ist, eine Patienten-ID aus einer Exportdatei eines Programmes A zu extrahieren und einem Programm B zur Verfügung zu stellen.

Nach dem Wechsel von 32-Bit auf 64 Bit eines Rechners mit Win7 ultimate klappt es nicht mehr, konkret funktioniert der Befehl Send nicht mehr, sowohl die Kombination Send/sendinput/ {F4}, als auch Send %PID% bleibt an diesem Rechner ohne Effekt, an 14 anderen Clients klappt alles weiterhin (Win 10).

Mit den ganzen Msgbox-Zeilen habe ich versucht, es einzugrenzen, stehe aber auf dem Schlauch. Hat es ggfls etwas mit W7-ultimate (64 Bit) zu tun?

Code: Select all

SetWorkingDir %A_ScriptDir%
;msgbox, ich bin da
SetTitleMatchMode 1 ; der Titel des Fensters muss mit dem gesuchten Fenster am ANFANG übereinstimmen
;  ############  nun wird die Export.GDT von Terminiko annalysoert und die Pat-ID (PID) extrahiert    ###############
 
PID:=

msgbox ,,, %PID%,2

Loop, 7
{
    FileReadLine, line, C:\Terminplanung\EDV1PA1.GDT, %A_Index%
    Nummer%A_index%=%line%
    ;if ErrorLevel
    ;{
     ; Msgbox %Errorlevel%
      ;  break
      ;  }
    ;MsgBox, 4, , Line #%A_Index% is "%line%".  Continue?
   ; IfMsgBox, No
    ;    return
}

;PID = %Nummer7%
StringTrimLeft, PID, Nummer7, 7   ; ########### hier wird die PID des von Terminiko übergebenen Pat extrahiert #########

msgbox ,,, %PID%,2
; MsgBox, %PID% 

IfWinNotExist, Medical
{
 Msgbox, "Ohne Medical Office kann KEIN Patient aus der Terminplanung übergeben werden.  Ende"
 PID:=
 Exit
 }
;Return

; msgbox, ich bin da xxx

IfWinExist, Medical
  msgbox,,, MO Zentrale offen,2
  IfWinExist, MEDICAL OFFICE Login
  msgbox, Bitte einloggen, dann geht es weiter!
  {
    WinActivate,MEDICAL OFFICE Login
    WinWait, Medical Office - Zentrale

  }
;Msgbox,  Ich warte auf das Schließen des Login

    WinActivate, Medical Office - Zentrale ; zuletzt gefundenes Fenster verwenden
    {
        sleep 200
        ;msgbox ,,, "Jetzt sollte das MO-zentralefenster geöffnet sein und mittels F4 in die Patientauswahl gewechselt werden",5
        sleep 200
        WinWaitActive, Medical Office - Zentrale
           msgbox,,,"Zentrale aktiv - sende nun F4" ,2
        Send {F4}
           msgbox,,, Nun sollte das Patientenauswahlfenster kommen, 2
        WinWaitActive, Patient auswählen
        {
          msgbox,,,%PID%,2
          send %PID%
          
          send {Enter}
          
          send {Enter}
        
        }
     }  
return
Hat jemand einen Tipp für mich?

Edit: an besagtem Rechner gelingt mir auch nicht, die AHK-Datei aus Scite heraus zu starten, die Fehlermeldung hierzu lautet:

>"C:\Praxis\SciTE\..\AutoHotkey.exe" /ErrorStdOut "M:\Tools\AutoHotkey\Scripts\MO2Term2.ahk"
Die Syntax fr den Dateinamen, Verzeichnisnamen oder die Datentr„gerbezeichnung ist falsch.
>Exit code: 1 Time: 0.2718

Hilft das evtl. weiter?

LG, Joska
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: Send-Befehl hat keine Auswirkung mehr

14 Aug 2017, 11:48

Welche AHK version fährst du auf den clients (und insbesondere auf dem "fehlerhaften")?
User avatar
divanebaba
Posts: 805
Joined: 20 Dec 2016, 03:53
Location: Diaspora

Re: Send-Befehl hat keine Auswirkung mehr

14 Aug 2017, 16:45

Hi.
Ich habe mit WinWait und WinWaitActive immer wieder seltsame Probleme gehabt, genauer gesagt, vorhandene Fenster sind ab und zu nicht erkannt worden.
Vielleicht hat die Umstellung auf ein 64bit-System Einfluss auf Deine Fenstertitel gehabt, präzise ausgedrückt, Deine Fenstertitel könnten anders dargestellt werden.

Du könntest SetTitleMatchMode auf 2 stellen und schauen, ob dies vielleicht ausreicht.

Ich selber habe einige Existenzabfragen als Schleife ausgeführt. Beispiel:
Statt:

Code: Select all

WinWaitActive, Medical Office - Zentrale
Ersatz:

Code: Select all

loop 25
{
	sleep 200
	ifwinexist, Medical Office - Zentrale
	break
}
ifwinnotexist, Medical Office - Zentrale
{
	MsgBox, "Medical Office - Zentrale" existiert nicht
	exitapp
}
Für weitere Informationen fehlt mir leider, Dank deutscher Lehrerempfehlung, die notwendige Bildung.
Einfach nur ein toller Typ. :mrgreen:
Guest

Re: Send-Befehl hat keine Auswirkung mehr

15 Aug 2017, 01:21

Vielen Dank für Rückmeldung, ich werde testen.

LG, Joska
Joska2

Re: Send-Befehl hat keine Auswirkung mehr

15 Aug 2017, 03:29

Hallo

Ich bin dem Problem etwas näher gekommen, habe PSPAD einmal mit Adminrechten ausgeführt und das Script von dort somit auch mit Adminrechten laufen lassen. Dann funktioniert alles!!

Somit scheint es kein AHK-Problem zu sein.

LG, Joska
Joska
Posts: 13
Joined: 24 Jan 2015, 12:39

Re: Send-Befehl hat keine Auswirkung mehr

15 Aug 2017, 04:24

Gelöst:

Das Problem besteht in der Tat nicht auf Seiten von AHK, sondern in der geänderten Installation des die Daten aufnehmenden Programms. Medical Office wurde mit Admin-Rechten installiert UND ausgeführt. Nachdem ich in den Kompatibilitätseinstellungen den Start ohne Adminrechten eingestellt habe, klappt alles wieder. Mit Adminrechten auf Seiten von Medical Office hatte AHK keine Möglichkeit, die Send-Befehle dort zur Wirkung zu bringen.

Danke für die unterstützung. Joska

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 96 guests