Kompilieren

  • Ich bin nach dem Kompilieren auf ein Probelm drauf gekommen
    Irgendwie funktionieren nach dem Kompilieren die ganzen Run Funktionen nicht mehr

    [autoit]

    Run(@ProgramFilesDir & "\VideoLAN\VLC\vlc.exe" , "", @SW_MAXIMIZE)

    [/autoit]

    Sie werden einfach nicht ausgeführt.
    Hat wer eine Idee an was das liegen kann/wie man das beheben kann ?

  • Ich bin nach dem Kompilieren auf ein Probelm drauf gekommen
    Irgendwie funktionieren nach dem Kompilieren die ganzen Run Funktionen nicht mehr

    [autoit]

    Run(@ProgramFilesDir & "\VideoLAN\VLC\vlc.exe" , "", @SW_MAXIMIZE)

    [/autoit]

    Sie werden einfach nicht ausgeführt.
    Hat wer eine Idee an was das liegen kann/wie man das beheben kann ?

    Versuch mal ohne

    [autoit]

    @SW_MAXIMIZE

    [/autoit]
  • Hab grade mal das ganze getestet. Kann es sein, dass du auf einen x64 System eine x86 Autoitexe versuchts auszuführen? Weil dann gehts bei mir auch nicht.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Bin drauf gekommen das wenn ich das @ProgrammFilesDir durch den direkten Pfad ersetze es funktioniert. Aber wiso ?

  • Du hast ein X64-Betriebssystem.
    Bei diesem werden Pfade für x86-Programme umgelenkt.
    x64-Programme werden standardmäßig in C:\Program Files installiert.
    x86-Programme in C:\Program Files (x86).

    Ruft nun ein x86-Programm den Pfad hinter @ProgramFilesDir auf wird es automatisch auf C:\Program Files (x86) umgelenkt.
    Das ist das Problem bei dir.

    Wenn der VLC nun ein x86-Programm ist wird er in C:\Program Files (x86) installiert.
    Rufst du nun aus einem x64-compilierten Skript @ProgramFilesDir auf wird es aber nach C:\Program Files umgelenkt.
    Andersherum der selbe Effekt: Ist VLC ein X64-Programm und dein Programm ein x86 dann verweist @ProgramFilesDir auf C:\Program Files (x86).

    Für ein x86-Skript kann man diese automatische Umleitung aber abschalten:

    [autoit]

    ; Umleitung für x86-Programm abschalten:
    DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1)

    [/autoit]
  • wird dann

    [autoit]

    @scriptdir

    [/autoit]


    auch umgelengt oder landet man da im richtigen ordner?

    MFG inventor

    wenn's weitere Fragen gibt -> PN
    wenn da keine Antwort kommt, überdenk deine Frage noch mal

  • @ AspirinJunkie
    Mein gesamtes Script sieht so aus

    Spoiler anzeigen
    [autoit]


    Run(@ProgramFilesDir & "\VideoLAN\VLC\vlc.exe" , "", @SW_MAXIMIZE)
    sleep(500)
    WinSetState("VLC media player","",@SW_MAXIMIZE)
    sleep(1000)

    [/autoit] [autoit][/autoit] [autoit]

    MouseClick("left",252,40)
    Sleep(100)
    MouseClick("left",300,269)
    Sleep(100)
    MouseClick("left",463,799)
    Sleep(99)
    MouseClick("left",395,150)
    Sleep(100)
    MouseClick("left",413,165)
    Sleep(100)
    MouseClick("left",453,214)
    Sleep(100)
    MouseClick("left",858,206)
    Send("^a")
    Send("localhost:2150")
    Sleep(100)
    MouseClick("left",1098,804)

    [/autoit]

    Dieses Script soll nur eine bestimmte Einstellung beim VLC Player vornehmen.
    Hättest du vll eine bessere Idee wie ich das realieseren könnte als durch Mausklick simulationen ?

    Das mit dem X64 Betriebssystem stimmt.
    Wenn ich bei dem Exe Konverter das Häcken bei dem x64 herausnehme funktioniert es.
    Meine Frage ist nun ob es eine Möglichkeit gibt das das Programm bei beiden System funkioniert ?

  • Lösungsmöglichkeit: (so würde ich es machen):

    [autoit]

    If FileExists(EnvGet("ProgramFiles(x86)") & "\VideoLAN\VLC\vlc.exe") = 1 Then
    Run(EnvGet("ProgramFiles(x86)") & "\VideoLAN\VLC\vlc.exe" , "", @SW_MAXIMIZE)
    ElseIf FileExists(EnvGet("ProgramFiles") & "\VideoLAN\VLC\vlc.exe") = 1 Then
    Run(EnvGet("ProgramFiles") & "\VideoLAN\VLC\vlc.exe" , "", @SW_MAXIMIZE)
    Else
    MsgBox(4096,"VLC nicht gefunden","Es wurde weder eine 32Bit noch 64Bit Installation von VLC gefunden")
    Exit 1
    EndIf

    [/autoit]

    Mit dem Exit beendest du das Skript sofort - hat ja keinen Sinn weiter zu machen wenn der VLC nicht gefunden wurde

    BLinz

  • hat der vlc nich auch ein komandozeileninterface, das man nutzen kann, um nicht maus/tastatureingaben simulieren zu müssen?
    ich mein, ich hätt da mal was gelesen
    wenns das gibt, dann würde das glaub ich einige deiner probleme lösen/umgehen
    ich bin mir aber nicht sicher, obs das (schon) gibt

    MFG inventor

    wenn's weitere Fragen gibt -> PN
    wenn da keine Antwort kommt, überdenk deine Frage noch mal

  • :huh:
    Sorry falls ich mich blöd anstelle.
    Habe mir das Thema durchgelesen und die Befehle
    finde aber keine Befehle womit man die Einstellungen ändern kann
    Wie in dem Thema erklärt mit dem Eintragen von "localhost" tief dirnnen bei irgendwelche Einstellungen