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. HassanMullah

Beiträge von HassanMullah

  • Brauche was gegen geistige Umnachtung

    • HassanMullah
    • 3. Dezember 2010 um 13:45

    Hi,

    ich baue gerade eine GUI, mit der ich EXE Dateien digital signieren kann.

    Folgendes habe ich bisher

    1.) Die GUI mit Menüzeile
    2.) Den Kommandozeilenaufruf in einer Batchdatei
    3.) Die benötigten Dateien im TEMP Verzeichnis

    Folgendes fehlt mir noch, aber ich hänge geistig gerade ;(

    Ich möchte Über Datei - Öffnen die EXE Datei raussuchen, welche signiert werden muss. Den

    [autoit]

    FileOpenDialog

    [/autoit]

    habe ich schon eingebaut, d.h. laut Messagebox wird der Pfad und die Datei angezeigt. Soweit so gut.

    Jetzt möchte ich das ganze aber auch so abbilden, das in meiner GUI eine "Fläche" ist, auf die der Benutzer die EXE via Drag und Drop ziehen kann.

    Hat mir hier jemand einen Codeschnipsel ?

    Die restlichen Fragen werden schon noch kommen :whistling:

    Gruss Hassan

  • Warum wird Fenster nicht maximiert ?

    • HassanMullah
    • 3. Dezember 2010 um 13:27

    Kann man den fileopendialog nicht irgendwie maximieren ?

  • Warum wird Fenster nicht maximiert ?

    • HassanMullah
    • 3. Dezember 2010 um 13:01

    Hallo zusammen,

    kann mir bitte einer sagen, warum mein Dialogfenster nicht maximiert wird ?

    [autoit]

    $varFile4Signatur = FileOpenDialog("Bitte zu signierende Datei auswählen...", $varSystemDrive & "\", "All (*.exe)")
    WinWaitActive("Bitte zu signierende Datei auswählen...", "", 1)
    WinSetState("Bitte zu signierende Datei auswählen...", "", @SW_MAXIMIZE)

    [/autoit]

    Gruss Hassan

  • Problem mit IE und Redirect in URL

    • HassanMullah
    • 19. November 2010 um 11:22

    Hallo, ich bin gerade dabei ein Script zu schreiben, welches

    • Zur Sicherheit einen Logout auf einem Internetportal via JSP aufruft
    • Dann eine neue URL zusammenbaut (via Parameter), welche den IE öffnet und den Benutzer dann gleich automatisch anmeldet

    Ganz wichtig !!

    Bitte schickt mir nur Eure Scripte und Verbesserungen, wenn Ihr es als normaler Benutzer OHNE lokale Adminrechte am laufen habt.
    Mit Adminrechten geht das Script nämlich schon !!


    Wir vermuten mal, dass das Problem am Redirect liegt !!

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_UseX64=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <IE.au3>
    ;$CmdLine[1] = url to browse first e.g.: https://www.eanvportal.de/eanvd
    ;$CmdLine[2] = username
    ;$CmdLine[3] = password
    ;$CmdLine[4] = behnummer
    ;$CmdLine[5] = atbrolle
    ;$CmdLine[6] = file to load (optiona="")
    ;
    Opt("TrayIconHide", 0) ;0=show, 1=hide tray icon
    $oIE = _IECreate($CmdLine[1], 0, 0)
    _IENavigate($oIE, $CmdLine[1] & "/logout.jsp", 0)

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

    ;Pruefen ob ein Objekt erzeugt wurde
    If IsObj($oIE) Then
    MsgBox(0, "IsObj", "ist")
    $oIE.visible = 1 ; 0 = hides it
    _IELoadWait($oIE)
    _IENavigate($oIE, $CmdLine[1] & "/authorize/j_spring_security_check?j_username=" & $CmdLine[2] & "&j_password=" & $CmdLine[3] & "&j_behnummer=" & $CmdLine[4] & "&j_atbrolle=" & $CmdLine[5] & "")
    _IELoadWait($oIE)
    ;get title (if you are logged in
    $title = _IEPropertyGet($oIE, "title")
    MsgBox(0, "titel 1", $title); for debugging
    If (StringInStr($title, "Home", 0)) Then
    ; wir haben den login geschafft, nun koennen wir den explorer auch visible setzten
    $oIE.visible = 1 ; unhides it, now that we've hidden what we don't want
    $oIE.AddressBar = 0 ; turn off all four IE Bars - works on 3rd party bars too, mostly.
    $oIE.MenuBar = 0
    $oIE.StatusBar = 0
    $oIE.ToolBar = 0
    $oIE.Width = 1080
    $oIE.Height = 800
    $oIE.Left = 0
    $oIE.Top = 0
    ;und den BGS laden (falls uebergeben
    if (($CmdLine[0]) > 5) Then
    ;MsgBox(0,"titel 2",$title)
    ;_IENavigate($oIE, @ScriptDir & "/loading.html") ; kann verwendet werden um einen Hinweistext einzublenden, während das XFDL-Plugin lädt.
    _IENavigate($oIE, $CmdLine[6], 0)
    EndIf
    $hWnd_Active = _IEPropertyGet($oIE, "hwnd")
    While WinExists($hWnd_Active)
    Sleep(1000)
    $hWnd_Active = _IEPropertyGet($oIE, "hwnd")
    WEnd
    Exit
    EndIf
    MsgBox(0, "eANV client", "Anmeldung konnte nicht verarbeitet werden")
    Exit
    Else
    MsgBox(0, "IsObj", "ist nicht")
    EndIf
    ;wenn kein Objekt erzeugt wurde, Fehlermeldung ausgeben.
    MsgBox(0, "eANV client - Erstellen des IE-Objekts fehlgeschlagen", "Es konnte keine neue InternetExplorer-Instanz erzeugt werden!")
    Exit

    [/autoit]

    Ich habe jetzt eine CMD Box einmal als lokaler Administrator offen und eine zweite als normaler Benutzer. Die kompilierte EXE rufe ich via "Text.cmd" auf. In der Test.cmd werden testweise die Parameter mit übergeben.

    Wenn ich die Test.cmd als Admin aufrufe, geht ALLES. Ich bekomme zwar weiter hinten noch eine Fehlermeldung, die können wir dann aber später besprechen

    Wenn ich die Test.cmd als Benutzer aufrufe, wird weder die Messagebox

    [autoit]

    MsgBox(0, "IsObj", "ist")

    [/autoit]

    noch die Messagebox

    [autoit]

    MsgBox(0, "IsObj", "ist nicht")

    [/autoit]

    aufgerufen.

    Das heißt doch, dass das Script im Befehl

    [autoit]

    _IENavigate($oIE, $CmdLine[1] & "/logout.jsp", 0)

    [/autoit]

    hängen bleibt, oder ?

    Was kann ich da machen ?

    Gruss Hassan

    Nachtrag:

    Ich habe jetzt mal von Sysinternals den Process Monitor parallel mitlaufen lassen. Gefiltert habe ich auf die kompilierte EXE und die SUCCESS habe ich schon rausgenommen. Daraus dann ein Excel File erstellt, damit man noch Filtern kann.

    Damit wurde die Aktion aufgezeichnet, wenn ich das ganze als "Benutzer" laufen lassen.

    Bin mal gespannt, was Ihr da rauslesen könnt.

    Nachtrag 2:

    Ich habe festgestellt, dass das Problem auch nur unter Windows 7 (eventuell auch Vista) besteht. Als normaler Benutzer unter Windows XP geht das Script auch.

  • Wie stelle ich die Fehlerungsuche bei IE.au3 an ?

    • HassanMullah
    • 16. November 2010 um 12:57

    Folgendes fällt noch auf. Wenn ich den Code erst einmal kürze, nämlich so

    [autoit]

    #include <IE.au3>
    ;Einfaches anmelden am portal und oeffnen eines lokalen BGS
    ;Autoit-Version:3.2
    ;
    ;$CmdLine[1] = url to browse first e.g.: https://www.fqdn.tld
    ;$CmdLine[2] = username
    ;$CmdLine[3] = password
    ;$CmdLine[4] = behnummer
    ;$CmdLine[5] = atbrolle
    ;$CmdLine[6] = file to load (optiona="")
    ;
    ; e.g.:
    ; LoginAndOpenBGS.au3 https://www.fqdn.tld
    ;
    Opt("TrayIconHide", 0) ;0=show, 1=hide tray icon
    $oIE = _IECreate($CmdLine[1] & "/logout.jsp", 1, 1)
    If @extended Then
    MsgBox(0, "", "An existierenden Browser angehängt")
    Else
    MsgBox(0, "", "Neuen Browser erzeugt")
    EndIf

    [/autoit]

    und diesen als normaler Benutzer ausführe, bekomme ich überhaupt keine Messageboxen angezeigt. Das ganze als lokaler Administrator ausgeführt funktioniert.

    Es muss doch irgendeinen Ansatz geben, so ein automatisiertes Browserscript als normaler Benutzer laufen zu lassen!

    Gruss Hassan

  • Wie stelle ich die Fehlerungsuche bei IE.au3 an ?

    • HassanMullah
    • 16. November 2010 um 12:46

    So hier bin ich wieder.

    Wir haben das Projekt ein paar Tage ruhen lassen, aber jetzt geht es wieder ans Werk.

    Folgendes steht in der Hilfe für _IECreate

    Zitat

    Wenn der Browser eine URL laden soll, die in einer anderen Sicherheitszone liegt, wird in Windows Vista wird ein neues Browser Fenster erstellt. Dies erhöht die Sicherheit. Dies geschieht auch bei dem ersten erstellen und wenn die Seite durch _IECreate erstellt wurde. Das neue Fenster ist eine neue Browser Instanz und vorherige Browser Instanzen haben keinen Bezug mehr darauf.
    Es gibt verschiedene Möglichkeiten dies zu umgehen:
    1) Es kann #RequireAdmin in dem Code hinzugefügt werden (dies ist notwendig, wenn der Account ein Teil der Administratorgruppe ist und zeigt an, dass notwendige Referenzen verfügbar sind).
    2) Es kann _IEAttach verwendet werden um es an ein neues Browser Fenster anzuhängen.
    3) Es kann die Zielwebseite zu der vertrauten Sicherheitszone im Internet Explorer hinzugefügt werden.
    4) Es kann der "geschützte Modus" im Internet Explorer abgeschaltet werden.
    5) Es kann die Benutzerkontensteuerung (UAC) abgeschaltet werden. Jedoch muss man sich im Klaren sein, was es bedeutet, wenn man die Sicherheitsfeatures des Internet Explorers abschaltet, wenn man ungeschützte Seiten besucht.

    Alles anzeigen

    Kann mir bitte einer helfen, wie der Code in meinem Fall aussehen soll, wenn ich _IEAttach verwenden möchte. Die restlichen Punkte gehen entweder aus Sicherheits Gründen nicht, oder sind bereits umgesetzt.

    Gruss Hassan

  • Wie stelle ich die Fehlerungsuche bei IE.au3 an ?

    • HassanMullah
    • 12. November 2010 um 13:30

    Kommando zurück !!

    Also das Script funktioniert. Nur haben unsere Entwickler dummerweise alle Admin Rechte.

    Ich habe mir auf meinem Notebook (Windows 7) nur noch Benutzerrechte gegeben (UAC Regler ist ganz oben)

    Wenn ich jetzt unsere Java Anwendung als normaler Benutzer starte, welche dann später die Autoit.exe startet, welche wiederrum den InternetExplorer mit Parameter Übergabe startet, dann geht nur der IE mit der URL auf, jedoch kommt es nicht zu einer automatischen Anmeldung.

    Wenn ich obiges als Administrator ausführen geht alles ohne Probleme.

    Die kompilierte EXE liegt unterhalb der %ProgramFiles% Verzeichnis

    Da die Fehlermeldung ja Zeilenmäßig aus dem IE.au3 kommt, stellt sich mir hier die Frage, wie Ihr das bisher gemacht habt, damit das ein normaler Benutzer starten kann.

    Oder habt Ihr noch eine andere Idee.

    Gruss Hassan

  • Wie stelle ich die Fehlerungsuche bei IE.au3 an ?

    • HassanMullah
    • 12. November 2010 um 12:53

    Ich durche gerade das Forum, finde aber nicht das richtige.

    Hat mir jemande eine Anleitung, wie ich via URL Übergabe mich an einem Portal anmelden kann.

    Folgende Funktionen sollten erstmal da sein.

    1.) Aufruf einer Logout Seite
    2.) Die URL via Kommandzeilen Parameter zusammen bauen
    3.) Die neue URL aufrufen.

    Gruss und Danke

    Hassan

  • Wie stelle ich die Fehlerungsuche bei IE.au3 an ?

    • HassanMullah
    • 12. November 2010 um 10:25

    Hallo zusammen,

    ein paar Entwickler aus unserer Firma haben folgenden Code gescriptet. Soweit ich weiss wurde das gemacht, damit unsere Java Anwendung die Anmeldedaten in die IE Anmeldemaske pipen kann - und das auch unter Windows 7. Denn unter Windows XP geht das irgendwie auch ohne Autoit, aber unter Windows 7 wurde hier Autoit als Zwischen Tool verwendet.

    Hier mal das Script:

    Spoiler anzeigen
    [autoit]

    #include <IE.au3>
    ;Einfaches anmelden am portal und oeffnen eines lokalen BGS
    ;Autoit-Version:3.2
    ;
    ;$CmdLine[1] = url to browse first e.g.: https://www.schnickschnackportal.de/test
    ;$CmdLine[2] = username
    ;$CmdLine[3] = password
    ;$CmdLine[4] = behnummer
    ;$CmdLine[5] = atbrolle
    ;$CmdLine[6] = file to load (optiona="")
    ;
    ; e.g.:
    ; LoginAndOpenBGS.au3 https://www.schnickschnackportal.de/test
    ;
    Opt("TrayIconHide", 1) ;0=show, 1=hide tray icon
    $oIE = _IECreate ($CmdLine[1] & "/logout.jsp", 1, 0)
    ;Pruefen ob ein Objekt erzeugt wurde
    If IsObj($oIE) Then
    $oIE.visible=0 ; hides it
    ;;If @extended Then
    ;; ;MsgBox(0, "", "An existierenden Browser angehaengt")
    ;;Else
    ;; ;MsgBox(0, "", "Neuen Browser erzeugt")
    ;;EndIf
    ;;warten bis die Seite komplett geladen wurde
    ;_IELoadWait($oIE)
    ;_IENavigate($oIE ,$CmdLine[1])
    ;_IELoadWait($oIE)
    ;;Erzeugen eines HTML-Formular-Objekts mit Hilfe des Formularnamens
    ;$oForm = _IEFormGetObjByName($oIE, "loginForm")
    ;;Erzeugen eines Formularfeld-Objekts mit Hilfe des Feldnames
    ;$oUsername = _IEFormElementGetObjByName($oForm, "j_username")
    ;;Setzen des Formularfeldinhalts
    ;_IEFormElementSetValue($oUsername, $CmdLine[3])
    ;;Erzeugen eines Formularfeld-Objekts mit Hilfe des Feldnames
    ;$oPasswd = _IEFormElementGetObjByName($oForm, "j_password")
    ;;Setzen des Formularfeldinhalts
    ;_IEFormElementSetValue($oPasswd, "thrthr")
    ;;Absenden des Formulars
    ;_IEFormSubmit($oForm)

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

    _IELoadWait($oIE)
    _IENavigate($oIE ,$CmdLine[1] & "/authorize/j_spring_security_check?j_username="&$CmdLine[2]&"&j_password="&$CmdLine[3]&"&j_behnummer="&$CmdLine[4]&"&j_atbrolle="&$CmdLine[5]&"")
    _IELoadWait($oIE)
    ;get title (if you are logged in
    $title = _IEPropertyGet($oIE, "title")

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

    ;MsgBox(0,"titel 1",$title); for debugging

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

    ;If (StringInStr ($title, "welcome", 0 ) | TODO or for old versions
    If (StringInStr ($title, "Home", 0 )) Then
    ; wir haben den login geschafft, nun koennen wir den explorer auch visible setzten
    $oIE.visible=1 ; unhides it, now that we've hidden what we don't want
    $oIE.AddressBar = 0 ; turn off all four IE Bars - works on 3rd party bars too, mostly.
    $oIE.MenuBar = 0
    $oIE.StatusBar = 0
    $oIE.ToolBar = 0
    $oIE.Width = 1080
    $oIE.Height = 800
    $oIE.Left = 0
    $oIE.Top = 0
    ;und den BGS laden (falls uebergeben
    if (StringLen ($CmdLine[6]) > 1) Then
    ;MsgBox(0,"titel 2",$title)
    ;_IENavigate($oIE, @ScriptDir & "/loading.html") ; kann verwendet werden um einen Hinweistext einzublenden, während das XFDL-Plugin lädt.
    _IENavigate($oIE ,$CmdLine[6], 0)
    EndIf
    $hWnd_Active = _IEPropertyGet($oIE, "hwnd")
    While WinExists ($hWnd_Active)
    Sleep(1000)
    $hWnd_Active = _IEPropertyGet($oIE, "hwnd")
    Wend
    Exit
    EndIf
    MsgBox(0,"schnickschnack client","Anmeldung konnte nicht verarbeitet werden")
    Exit
    EndIf
    ;wenn kein Objekt erzeugt wurde, Fehlermeldung ausgeben.
    MsgBox(0,"schnickschnack client - Erstellen des IE-Objekts fehlgeschlagen","Es konnte keine neue InternetExplorer-Instanz erzeugt werden!")
    Exit

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

    Nachdem ich unsere Java Anwendung gestartet habe, bekomme ich nach einer Zeit X folgende Fehlermeldung:

    [Blockierte Grafik: http://www.hasenmueller.de/files4forum/pics4forum_8.png]

    Da unser Autoit Script ja nur 80 Zeilen hat, gehe ich mal davon aus, das es irgend ein Problem bei der Parameter Übergabe entsteht. Zeile 2602 wird ja wohl in der IE.au3 sein.

    Ich habe leider überhaupt keinen Plan, was hier genau passiert, bzw. wie ich hier nach dem Fehler suchen könnte.

    Könnt Ihr mir hierbei bitte behilflich sein ?

    Gruss Hassan

  • Was passiert mit Bilder während dem Kompilieren ?

    • HassanMullah
    • 11. November 2010 um 10:37

    Hallo zusammen,

    ich habe Gestern eine EXE kompiliert, mit 4 verschiedenen Bildern in der GUI.
    Heute habe ich die Bilder auf dem Filesystem neu strukturiert, d.h. die Bilder sind auf der Festplatte nicht mehr an dem Platz, wo Sie Gestern lagen.

    Durch Zufall habe ich die EXE heute gestartet und siehe da .... alle Bilder sind weg.

    Ist das normal ? Kann man die Bilder nicht mit reinkompilieren ? Wenn nicht, muss ich nämlich ein Setup darum bauen.

    Gruss Hassan

  • Inhalt ALLER Input Controls auf einmal löschen ?

    • HassanMullah
    • 10. November 2010 um 14:30

    Hallo zusammen,

    nachdem jetzt meine Simulation soweit läuft, hätte ich noch einen Wunsch.

    Meine Inputfelder werden durch Variablen aus einer INI Datei beschrieben.

    Jetzt hätte ich gerne einen Löschen - Knopf, der alle Inhalte aus den Inputfeldern löscht.

    Wie stelle ich denn sowas an ? Hab da momentan gar keine Idee

    Gruss Hassan

  • Input Control auslesen

    • HassanMullah
    • 10. November 2010 um 14:07

    Gelöst !

    Mit

    [autoit]

    ControlGetText

    [/autoit]


    geht es :thumbup:

    Ihr seit einfach die BESTEN (stellt Euch jetzt eine Laola Welle vor :D )

    Gruss Hassan

  • Input Control auslesen

    • HassanMullah
    • 10. November 2010 um 13:56

    AHA ... Ich würde gerne die ID 18 aus dem ANDEREN Programm auslesen.

    Wie geht das dann ?

  • Input Control auslesen

    • HassanMullah
    • 10. November 2010 um 13:50

    Und was ist das dann ?:

    Spoiler anzeigen
    Zitat

    >>>> Window <<<<
    Title: Simulator
    Class: AutoIt v3 GUI
    Position: 1670, 84
    Size: 956, 725
    Style: 0x94CA0000
    ExStyle: 0x00000100
    Handle: 0x00071508

    >>>> Control <<<<
    Class: Edit
    Instance: 1
    ClassnameNN: Edit1
    Name:
    Advanced (Class): [CLASS:Edit; INSTANCE:1]
    ID: 18
    Text:
    Position: 570, 180
    Size: 300, 27
    ControlClick Coords: 110, 16
    Style: 0x50010080
    ExStyle: 0x00000200
    Handle: 0x0007153C

    >>>> Mouse <<<<
    Position: 683, 218
    Cursor ID: 0
    Color: 0x000000

    >>>> StatusBar <<<<

    >>>> ToolsBar <<<<

    >>>> Visible Text <<<<
    Nummer:
    19900000000340


    >>>> Hidden Text <<<<

    Alles anzeigen
  • Input Control auslesen

    • HassanMullah
    • 10. November 2010 um 13:45
    Zitat von Ineluki

    Außerdem würde ich eine Variable für die ControlID verwenden...

    Ich lese damit ja eine Fremdanwendung aus, d.h. der ID wird sich ja nicht verändern.

    Aber wiese bekomme ich immer eine "0" ?

  • Input Control auslesen

    • HassanMullah
    • 10. November 2010 um 13:43

    Das geht leider auch nicht :(

  • Input Control auslesen

    • HassanMullah
    • 10. November 2010 um 13:34

    Hallo zusammen,

    Ich habe ein Input Controll mit der ID 18

    Wenn ich

    [autoit]

    WinActive("Simulator")
    $varReadBGSinAPP = GUICtrlRead(18,1)
    MsgBox(0,"Nummer",$varReadBGSinAPP)

    [/autoit]

    eingebe, bekomme ich IMMER eine "0" in der Messagebox

    Gruss Hassan

    Warum ?

    Eigentlich sollte hier eine 12 stellige Nummer angezeigt werden

  • Controll ID vor dem Kompilieren herausfinden ?

    • HassanMullah
    • 10. November 2010 um 12:10

    Ich habe hier noch Anfängerfehler gemacht. Mit Variablen geht es dann.

  • Wie ändert man an dieser Stelle die Farbe

    • HassanMullah
    • 10. November 2010 um 11:39

    hat ja auch funktioniert :D

  • Eigenschaften der *.ico Dateien

    • HassanMullah
    • 10. November 2010 um 11:33

    Hallo zusammen,

    ich habe eine *.ico Datei, welche ein Icon in verschiedenen Größen und Farben enthält. Wenn ich dieses zum Kompilieren auswähle, wird es nicht angenommen. Er erscheint das Standard Icon.

    Welche Grösse, bzw Farben darf das Icon maximal haben, damit es in die EXE integriert wird ?

    Gruss Hassan

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™