1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. sharkthorn

Beiträge von sharkthorn

  • Probleme mit ControlSend

    • sharkthorn
    • 31. März 2014 um 13:47
    Zitat von rynow

    mit F5 refresht man eine Seite.


    Das ist mir schon klar. In diesem Fall aber nicht gewünscht, da der HP Service Manager, den ich hier refreshen möchte, im Falle eines Refreshes per F5 ein erneutes Login durchführt. Und das würde den Zweck meines kleinen Scriptes ad absurdum führen.

  • Probleme mit ControlSend

    • sharkthorn
    • 27. März 2014 um 13:23

    Hi,

    danke für den Vorschlag.

    Die Version habe ich auch schon ausprobiert.Sorry, dass ich das nicht dazu geschrieben habe. Kommt genau das gleiche bei heraus. Es wird nur der Menüpunkt "Datei" blau markiert.

  • Probleme mit ControlSend

    • sharkthorn
    • 27. März 2014 um 11:44

    Hallo,

    ich möchte alle paar Minuten eine Tastenkombination (Alt+F8 ) an ein bestimmtes Internet Explorer Fenster senden. Ich habe jetzt aber das Problem, dass das Senden wohl klappt, aber die Tastenkombination nicht richtig ausgeführt wird.

    Hier mal der relevante Teil des Skriptes:

    [autoit]

    while 1
    sleep(10000) ;10 Sekunden für den Test
    ControlSend("Fenstername","","[CLASS:Internet Explorer_Server; INSTANCE:1]","{ALTDOWN}")
    ControlSend("Fenstername","","[CLASS:Internet Explorer_Server; INSTANCE:1]","{F8}")
    ControlSend("Fenstername","","[CLASS:Internet Explorer_Server; INSTANCE:1]","{ALTUP}")
    WEnd

    [/autoit]

    Ergebnis ist, dass in dem Internet Explorer Fenster in der Statuszeile (Heißt das überhaupt so ?) der Eintrag Datei kurz blau aufleuchtet, aber der Refresh der Seite, den ich sonst mit Alt+F8 ausführen kann, nicht ausgeführt wird.

    Vielen Dank.

  • Problem beim Aufruf einer .msi Datei

    • sharkthorn
    • 28. Juli 2010 um 10:49

    Hallo zusammen,

    ich habe wahrscheinlich ein Problem mit dem Aufruf eines Skriptes. Es soll eine Installation über eine .msi Datei gestartet werden. Diese Installation wird über ein Skript geregelt. Rufe ich das Skript über die Kommandozeile auf funktioniert alles wunderbar. Sobald ich aber das Installations-Skript über ein anderes Skript öffne bekomme ich beim Aufruf der Installation die Fehlermeldung:" "TriopticsRedistributablePackage_1.0.7.msi" konnte nicht gefunden werden. Stellen Sie sicher, dass Sie den Namen korrekt eingegeben haben und wiederholen Sie den Vorgang. Klicken Sie auf "Start" und anschließend auf "Suchen", um eine Datei zu suchen. "

    Ich habe keine Idee mehr warum der selbe Aufruf meines Skriptes aus der Konsole heraus diesen Fehler nicht hervorruft und die Installation wie gewünscht startet. Ich bin auch sicher, dass ich im anderen Skript die richtige Datei aufrufe, da meine Debug-Message Box korrekt angezeigt wird.

    Hier dann die relevanten Codeausschnitte aus den beiden Skripten. Die kompletten Skripte darf ich leider nicht posten, aber die Ausschnitte geben eigentlich alles Relevante wieder:


    Skript für die Installation des msi- Packages :

    [autoit]


    If $CmdLine[0] > 1 Then
    #Region --- CodeWizard generated code Start ---
    ;MsgBox features: Title=Yes, Text=Yes, Buttons=OK, Icon=Critical
    MsgBox(16,"Error install_Trioptics Redistributables","Script opened with wrong number of arguments !")
    help()
    #EndRegion --- CodeWizard generated code End ---
    Exit
    EndIf

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

    If $CmdLine[0] < 1 Then
    tr_install_manu()
    Else
    Switch $CmdLine[1]
    Case "-check"
    ; prüft ob die Treiber bereits installiet sind
    $exitcode = tr_check()
    Exit($exitcode)
    Case "-uninstall"
    ; deinstalliert die Trioptics Redistributables
    tr_uninstall()
    Case "-manual"
    ; aktiviert die manuelle Installation der Trioptics Redistributables
    tr_install_manu()
    Case "-automatic"
    ; aktiviert die automatische Installation der Trioptics Redistributables
    tr_install_auto()
    Case "-h"
    ; gibt die Hilfe auf der Console aus
    help()
    Case "-help"
    ; gibt die Hilfe auf der Console aus
    help()
    Case "/?"
    ; gibt die Hilfe auf der Console aus
    help()
    Case Else
    #Region --- CodeWizard generated code Start ---
    ;MsgBox features: Title=Yes, Text=Yes, Buttons=OK, Icon=Critical
    MsgBox(16,"Error install_Trioptics Redistributables","Wrong argument given to script !")
    ; gibt die Hilfe auf der Console aus
    help()
    #EndRegion --- CodeWizard generated code End ---
    Exit
    EndSwitch
    EndIf
    ; Aufruf der Manuellen Installation der Trioptics Redistributables
    Func tr_install_manu ()
    $dir = @WorkingDir
    FileChangeDir("Data")
    MsgBox(64,"test","test")
    ShellExecuteWait("TriopticsRedistributablePackage_1.0.7.msi") ; Manuelle Installation der Trioptics Redistributables
    FileChangeDir($dir)
    EndFunc

    [/autoit]

    Obiges wird als "Cui" kompiliert. So dass es über die Kommandozeile aufrufbar ist. Dies funktioniert auch genauso wie es soll. Ich habe auch schon andere arten des Aufrufes probiert. Sowohl ein Benutzen von Runwait mit Comspec als auch das Benutzen von Runwait mit MSIEXEC rufen das selbe Verhalten hervor.

    Rufe ich hingegen dieses Skript in meinem Installationsprogramm auf, kommt die zu Beginn erwähnte Fehlermeldung.
    Skriptabschnitt mit dem Aufruf:

    [autoit]

    If $install[0] > 0 Then
    For $j = 1 To $install[0] ; Alle vorhandenen installationen durchgehen
    If $nMsg = $install[$j] Then ; Wenn auf einen Installationsbutton gedrückt wurde
    $application = $apps[$j] ; Application aus der Appsliste holen
    If ($application <> "Install all applications") Then ; wenn es nicht "Install all applications" ist
    $all_files = _GetFileList(@ScriptDir,"*.*") ; Array mit allen Dateien ermitteln
    Local $k = 1 ; Zählvariable beim Durchlaufen der Files
    Local $found = 0 ; Variable die anzeigt, ob bereits eine passende Datei gefunden wurde
    While ($found = 0) And ($k <= $all_files[0])
    If StringInStr($all_files[$k],'install_' & $application & '.exe',0) <> 0 Then ; Suchen nach dem Installationsskript
    RunWait(@ComSpec & ' /c "' & $all_files[$k] & '" -manual', '', @SW_HIDE) ; Ausführen der manuellen Installation
    $found = 1 ; Flag setzen, dass ein Installationsskript gefunden wurde
    set_buttons_images () ; Setzen der richtigen Images und Buttons
    EndIf
    $k += 1
    WEnd
    If $found = 0 Then ; Wenn kein Installationsskript gefunden wird
    #Region --- CodeWizard generated code Start ---
    ;MsgBox features: Title=Yes, Text=Yes, Buttons=OK, Icon=Critical
    MsgBox(16, "Error", "Missing install script of " & $apps[$j]) ; Nachricht wenn das Install-Skript fehlt
    #EndRegion --- CodeWizard generated code Start ---
    EndIf
    Else
    install_all () ; Alles installieren was noch nicht vorhanden ist
    set_buttons_images () ; Setzen der Images und Buttons
    EndIf
    EndIf
    Next
    EndIf

    [/autoit]

    Ich weiß, dass es eventuell schwierig ist, weil ihr es nicht selber nachstellen könnt, aber vielleicht hat ja trotzdem jemand eine Idee wodran es liegen könnte. Wie gesagt: Der Aufruf meines Installationsskriptes funktioniert, da die Messagebox aus dem oberen Skript erscheint. Aber beim Aufruf der Installation kommt dann die Fehlermeldung.

    Vielen Dank schonmal.

  • autoit Skript lässt sich nach Rechner Start erst nach dem zweiten aufruf ausführen

    • sharkthorn
    • 11. Juni 2009 um 15:18

    Evtl. ist nach dem "run" das Fenster noch nicht da.

    Ich würde noch ein "WinWaitActive" dazwischen machen.

    [autoit]


    run ("UltraDrive_PRT_v1571")
    WinWaitActive("Titel","Text") ; Titel und Text mit Daten des Fensters füllen
    send ("{Y}")
    sleep (5000)
    send ("{Enter}")

    [/autoit]
  • Art des Speichers auslesen

    • sharkthorn
    • 16. Juli 2008 um 15:27

    Hallo,

    ich schreibe mir gerade ein Programm mit dem ich verschiedene Daten eines Rechners automatisch auslesen kann, um sie dann zu speichern. Gibt es eine Möglichkeit irgendwie den Speichertyp auszulesen ? Sprich ob es DDR,DDR2 oder DDR3 Ram ist ?


    mfg
    sharkthorn

  • Berechtigungen in der registry ändern ?

    • sharkthorn
    • 5. November 2007 um 14:58
    Zitat

    Original von michael
    Mensch kann, sofern mit Admin-Rechten angemeldet, mit dem Tool
    regdacl.exe
    die Rechte an Registry-Schlüsseln beliebig verändern - so dass im folgenden auch der Normaluser die betreffenden Regs editieren kann.

    Danke, das Tool hat genau die Funktionalität, die ich gebraucht habe. So kann ich dann mit einem AutoIt-Script die Berechtigungen "leise" ändern, so dass derjeniger der die Installation durchführt davon nichts mitbekommt.

    Und bei Kunden ist das meist sehr sinnvoll wenn er von solchen Änderungen nichts mitbekommt.

    Danke für die Hilfe

  • Berechtigungen in der registry ändern ?

    • sharkthorn
    • 2. November 2007 um 15:01
    Zitat

    Original von Xenobiologist
    wo und wie denn genau?

    Auf dem Bild im Anhang findest du meine derzeitigen Com-Ports.

    Wenn ich nun den Com-Port 4 zu Com-Port 5 machen möchte, dann muss ich folgende Registry-Einträge ändern(jeweils COM4 zu COM5):

    [1] HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM\\Device\Serial2
    [2]HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\MF\PCI#VEN_9710&DEV_9835&SUBSYS_00021000&REV_01\5&a2cc66e&0&48F0#Child0001\Device Parameters\PortName
    [3]HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\MF\PCI#VEN_9710&DEV_9835&SUBSYS_00021000&REV_01\5&a2cc66e&0&48F0#Child0001\Device Parameters\PortName
    [4]HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\MF\PCI#VEN_9710&DEV_9835&SUBSYS_00021000&REV_01\5&a2cc66e&0&48F0#Child0001\Device Parameters\PortName

    Danach ist der COM-Port zwar umgestellt aber der Text im Device Manager ist immer noch der selbe.

    Um nun den Text auch noch ändern zu können müsste ich in jedem ControSet folgendes ändern:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\MF\PCI#VEN_9710&DEV_9835&SUBSYS_00021000&REV_01\5&a2cc66e&0&48F0#Child0001\FriendlyName

    Und genau bei diesem Schlüssel hat man leider normalerweise nicht die Berechtigung um diesen zu ändern.Selbst wenn man als Administrator angemeldet ist.

    Die Berechtigungen kann man dann manuell mit einem Rechtsklick auf den Schlüssel ändern.

    Bilder

    • Ports.jpg
      • 9,53 kB
      • 247 × 99
  • Berechtigungen in der registry ändern ?

    • sharkthorn
    • 2. November 2007 um 11:50

    Hallo,

    ich müsste für eine automatische Installationsroutine eines Paketes mit verschiedenen Treibern, die Com-Ports verschieben, sollten sie nicht bestimmten Restriktionen entsprechen. Das klappt auch alles wunderbar, nur muss man für die Änderung des Namens des Gerätes einen Wert in der Registry umsetzen der normalerweise schreibgeschützt ist. Man kann diesen Schreibschutz manuell entfernen, jedoch ist dies natürlich für eine automatische Installation nicht gewünscht.

    Meine Frage ist nun, ob es eine Möglichkeit gibt diese Berechtigung auch mit AutoIt zu ändern, so dass ich problemlos danach den Namen des Com-Gerätes ändern kann?

    Ich hoffe ich habe es einigermaßen verständlich formuliert. Sonst fragt einfach nochmal nach ;)

  • Zusätzlichen LAN-Service installieren

    • sharkthorn
    • 18. Juli 2007 um 13:25

    ok, danke

  • Zusätzlichen LAN-Service installieren

    • sharkthorn
    • 18. Juli 2007 um 13:06

    Hi, danke für die Hilfe.

    So klappt das wunderbar.

    Wenn du Lust hast magst du mal die Parameter beim Runwait erklären ? Bzw. warum die nun genau das geforderte machen ?

  • Zusätzlichen LAN-Service installieren

    • sharkthorn
    • 16. Juli 2007 um 11:56

    Hallo, ich habe folgendes Problem uns suche eine Möglichkeit dies mit AutoIt umzusetzen:

    Ich möchte automatisch einer LAN-Karte einen zusätzlichen Service installieren (Das Menü, wo man auch z.B. das TCP-IP Protokoll einstellt/installiert). Mein Problem ist jetzt, dass ich nicht weiß wie ich auf möglicht kurzem Weg zu dem Menü der LAN-Karte hinkomme.

    Über Start->Control Panel -> Network Connections -> Local Area Connection (Klick) -> Properties -> Install -> Service ist es doch ein wenig weit. Und das Problem ist, dass bei unterschiedlichen Windows-Sprachen Probleme auftreten würden, da dort die Icons anders bezeichnet und angeordnet sind.

    Ich habe mal versucht einen Link zu "Local Area Connection" zu erstellen und diesen dann aufzurufen. Hier klappt nur leider das Aufrufen des Links nicht. Weder mit normalem RunWait, noch mit ShellExecute oder RunWait mit ComSpec.

    Ich vermute das liegt daran, dass die Link ja nicht auf eine "normale" Datei zeigt sondern auf einen Eintrag in der Registry: {BA126ADB-2166-11D1-B1D0-00805FC1270E}

    Diese "Verknüpfung" scheint auf jedem Rechner gleich zu sein.

    Hätte vielleicht jemand eine Idee, wie ich das Problem lösen könnte ? Es ist auch ein völlig anderer Ansatz möglich als ich ihn hier gewählt habe.

    Danke
    sharkthorn

    PS: Ich habe es versucht einigermaßen vernünftig zu erklären, ist aber leider nicht so ganz einfach. Daher: Wenn etwas unklar ist einfach fragen und ich versuche es anders zu umschreiben.

  • Mauszeiger verstecken

    • sharkthorn
    • 25. April 2007 um 13:01

    dankeschön, hat geklappt ;)

  • Mauszeiger verstecken

    • sharkthorn
    • 23. April 2007 um 12:24
    Zitat

    Original von peethebee
    Hallo!

    Du könntest den Mauscursor in die rechte untere Ecke des Desktops verschieben - evtl. gehen sogar Koordinaten außerhalb des Bildschirms...

    peethebee

    Wie kann ich denn die Position der rechten unteren Ecke ermitteln ?

    Es sollte ja auch bei unterschiedlichen Auflösungen funktionieren und da gibt es ja keinen absoluten Werte, den ich bei MouseMove eintragen könnte.

  • Mauszeiger verstecken

    • sharkthorn
    • 23. April 2007 um 11:59

    Hallo. Ich habe folgendes Problem: Ich bin dabei einen Installer zu schreiben der ein Programm und viele dazugehörige Treiber automatisch installiert. Da ich dabei die Maus sperre, so dass der User nirgendwo klicken kann möchte ich die Maus auch unsichtbar machen.

    Ich habe es mit:

    GUISetCursor(16,1)

    versucht, aber hier ist das Problem, dass die Maus zwar versteckt ist, aber sobald sich ein Fenster der externen Installer über mein GUI schiebt ist der Mauszeiger zu sehen. Das ist nicht so wirklich erwünscht.

    Weiß da jemand eine Lösung ?

    Danke schonmal im Vorraus.

  • Bei Deinstallation Autoit Skript aufrufen

    • sharkthorn
    • 19. März 2007 um 13:21

    So, habe es gerade selber herausbekommen.

    Undzwar muss man neben dem Umsetzes des UninstallStringes noch den Registry-Eintrag "Windowsinstaller" auf "0" setzen. Ist ja eigentlich auch logisch ;). War mir nur vorher nicht aufgefallen.

    PS: Wie kann ich den Thread jetzt auf "gelöst" stellen ?

  • Bei Deinstallation Autoit Skript aufrufen

    • sharkthorn
    • 19. März 2007 um 09:06

    Hmm, da geht es ja eigentlich auch nur darum, dass man den UninstallString auslesen kann um herauszufinden, was man aufrufen muss.

    Aber wenn man den Uninstall String ersetzen möchte durch einen Aufruf eines AutoIt Skriptes, ruft er trotzdem das "alte" Deinstall-Programm auf. Und dafür suche ich eine Lösung.

    Hat vielleicht noch jemand eine Idee ?

  • Bei Deinstallation Autoit Skript aufrufen

    • sharkthorn
    • 14. März 2007 um 11:40

    Es liegt bei mir folgendes vor: Ich installiere eine Software per Autoit-Skript da die Software viele spezielle Treiber und Zusatzprogramme benötigt. Und da der Installer der Hauptsoftware leider keine Shortcuts auf dem Desktop platziert mache ich das ebenfalls in dem Skript.

    Nun ist folgendes Problem: Wenn die Software wieder deinstalliert wird, bleiben diese Shortcuts natürlich erhalten, weil sie ja nicht mit dem Installer selber erstellt wurden. Ich würde nun natürlich gerne bei der Deinstallation die Shortcuts mit entfernen. Aber wie bekomme ich geregelt, dass Windows nicht den eigenen Deinstaller aufruft sondern mein Skript ?

    Bisher habe ich versucht den "UninstallString" für die Software in der Registry zu bearbeiten und dort als Ziel meine Exe einzugen. Er führt aber leider trotzdem den Windows-Uninstaller aus.

    Ich weiß, das Problem ist nicht wirklich AutoIt-Spezifisch, aber vielleicht hat ja trotzdem jemand schonmal ein ähnliches Problem gehabt und weiß Rat.

    Danke schonmal.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™