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

Beiträge von DasIch

  • Transparenz bei GUICtrlCreateProgress()

    • DasIch
    • 3. Juni 2015 um 15:45

    Hallo zusammen,

    ich suche nach einer Möglichkeit, den Hintergrund meiner Progressbar leicht durchsichtig (so wie es unten in dem Code ist) und die Progressbar ansich undurchsichtig zu machen. Weiß jemand, wie das geht?

    Hier der Sourcecode:

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>
    #include <ProgressConstants.au3>
    
    
    $frmMain = GUICreate("Fortschritt", 380, 80, -1, -1, $WS_POPUPWINDOW)
    WinSetTrans("Fortschritt","", 195)
    $prgBar = GUICtrlCreateProgress(20, 40, 340, 15, $PBS_SMOOTH)
    $lblBar = GUICtrlCreateLabel("Lese Daten ein... (0%)", 20, 20, 340, 15, $SS_CENTER)
    GUISetState(@SW_SHOW)
    Alles anzeigen


    Danke für alle Antworten vorab und LG,
    der Robert :)

  • Probleme mit GUISetAccelerators()

    • DasIch
    • 30. Mai 2015 um 10:40

    Es kann so einfach sein:

    AutoIt
    If ControlGetFocus($frmMain) = 'Edit1' Then
    _GUICtrlEdit_InsertText($Log_edtBot, @CRLF)
    Else
    _TestFunc()
    EndIf

    Danke euch! :D

  • Probleme mit GUISetAccelerators()

    • DasIch
    • 30. Mai 2015 um 00:53

    Also würdest du GUISetAccelerators() nutzen, Raupi? Wenn ja, erklär mir doch bitte, wie ich die Zeilenumbrüche mit Enter in der Editbox verwirklichen kann :(

  • Probleme mit GUISetAccelerators()

    • DasIch
    • 29. Mai 2015 um 16:53

    Das hat mir sehr geholfen Mars :D Daran sieht man, dass du schon länger hier bist und die Wege kennst die man gehen kann und sie dir nicht noch mühevoll herleiten musst :P

    Gibt es eine Möglichkeit nach dem Enter Drücken, den Fokus aus dem Inputfeld zu lösen, sodass man das Popup mit Enter wieder schließen kann?

  • Probleme mit GUISetAccelerators()

    • DasIch
    • 29. Mai 2015 um 15:55

    Oh, na klar. Wusste ich doch! :P Not... :whistling:

    Okay, damit kann ich zumindest verhindern, dass die Funktion erneut ausgeführt wird. Allerdings kann ich immer noch keine Entertaste für den Zeilenumbruch in der Editbox verwenden :(

  • Probleme mit GUISetAccelerators()

    • DasIch
    • 29. Mai 2015 um 15:05

    Heyho Mars, auch dir danke für die Hilfe :P

    Ich habe den Code jetzt mal zurechtgeschnitten, weil ich nicht alle 1500 Zeilen hier reinkopieren mag :P Aber die Funktionen, um die es geht, habe ich trotzdem im Groben beibehalten.

    schau es dir mal bitte an, ob irgendetwas nicht passt.

    Zur Erklärung wie es gedacht war:
    Dadurch, dass ich einige Textfelder habe, nach deren Begriffen in Dateien, Berechtigungen usw. gesucht werden können, war es sehr unangenehm, immer den Button anklicken zu müssen. Also habe ich mir einen Workaround einfallen lassen, wie man die Suche auch mit Enter starten kann.

    Hierzu setze ich mit GUISetAccelerators() einen entsprechenden Hotkey, der einen anderen, versteckten Button auslöst, der wiederum eine Funktion startet. In dieser Funktion wird geschaut, aus welchem Textfeld die Eingaben kamen und entsprechend wird die jeweilige Funktion ausgeführt.

    Allerdings ist das Problem, dass ich, wenn ich in der besagten Editbox den Text bearbeiten möchte und Enter drücke, immer die zuletzt ausgeführte Suche ausgeführt wird, was natürlich nicht Sinn der Sache ist. Ich möchte in der Editbox sobald sie aktiv ist auch mit Enter arbeiten können und den Hotkey während dieser Bearbeitung deaktivieren können.

    Ich hoffe ihr versteht das Problem nun besser und könnt mir helfen :P

    LG und Danke,
    der Robert

    P.S.: Hier noch der Sourcecode:


    Spoiler anzeigen
    AutoIt
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #RequireAdmin
    
    
    $frmMain = GUICreate("", 170, 200)
    $Log_edtBot = GUICtrlCreateEdit("", 8, 35, 150, 150, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_WANTRETURN, $ws_hscroll, $ws_vscroll), $WS_EX_CLIENTEDGE) ;untere Detailansicht
    GUICtrlSetBkColor(-1, "0xffffff")
    GUICtrlSetFont(-1, 10, 500, 0, "Arial")
    $Log_txtSkript = GUICtrlCreateInput("", 8, 8, 150, 25)
    $frmRefreshButton = GUICtrlCreateButton("", 8, 8, 20, 25)
    GUICtrlSetState($frmRefreshButton, $GUI_HIDE)
    GUISetState(@SW_SHOW)
    
    
    Global $Log_sUser, $iLog, $iEnter, $hPwrShell
    
    
    #Region Hotkeys
    	Global $aAccelKeys[1][2] = [["{ENTER}", $frmRefreshButton]]
    	GUISetAccelerators($aAccelKeys)
    #EndRegion
    
    
    
    
    While 1
    	$nMsg = GUIGetMsg(1)
    	Switch $nMsg[0]
    		Case $GUI_EVENT_CLOSE
    			Switch $nMsg[1]
    				Case $frmMain
    					If $hPwrShell = True Then
    						WinClose($hPwrShell)
    					EndIf
    					Exit
    				Case Else
    					GUISetState(@SW_SHOW, $frmMain)
    					GUISetState(@SW_HIDE, $nMsg[1])
    					GUISetState(@SW_DISABLE, $nMsg[1])
    					GUISwitch($frmMain)
    			EndSwitch
    
    
    		Case $frmRefreshButton
    			_Enter()
    
    
    		Case $Log_txtSkript
    			$iEnter = 1
    
    
    	EndSwitch
    WEnd
    
    
    #Region Enter Taste
    Func _Enter()
    	;1 = Details anzeigen
    
    
    	Switch $iEnter
    
    
    		Case 1
    			If ControlGetFocus($frmMain) <> "EDIT1" Then
    ;~ 			MsgBox(0, "", "Details anzeigen")
    			_TestFunc()
    			Else
    				MsgBox(0, "", "Details anzeigen")
    			EndIf
    
    
    	EndSwitch
    EndFunc
    #EndRegion
    
    
    Func _TestFunc()
    	MsgBox(0, "", "TestFunc")
    EndFunc
    Alles anzeigen
  • Probleme mit GUISetAccelerators()

    • DasIch
    • 29. Mai 2015 um 14:17

    Hiho Raupi,

    danke erstmal für deine Antwort. Leider komme ich damit irgendwie nicht weiter...

    So wird die Editbox erstellt, und gefüllt wird sie mit Daten aus einer Datei die ausgelesen wird:

    [autoit]

    $Log_edtBot = GUICtrlCreateEdit("", 421, 360, 340, 170, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_WANTRETURN, $ws_hscroll, $ws_vscroll), $WS_EX_CLIENTEDGE) ;untere Detailansicht

    [/autoit]

    Das Hauptfenster heißt

    [autoit]

    $frmMain

    [/autoit]


    Würde es so funktionieren? Leider tut es das nicht :(

    [autoit]

    If ControlGetFocus($frmMain) <> $Log_edtBot Then ;$Log_edtBot ist die untere von zwei Editboxen
    ...
    EndIf

    [/autoit]
  • Probleme mit GUISetAccelerators()

    • DasIch
    • 29. Mai 2015 um 13:17

    Okay, da reden wir gerade aneinander vorbei :)

    Ich möchte ja, dass ich in der Editbox Enter verwenden kann, nur außerhalb dieser Editbox soll Enter halt wie gewünscht $frmRefreshButton auslösen.

  • Probleme mit GUISetAccelerators()

    • DasIch
    • 29. Mai 2015 um 11:56

    Hallo zusammen,

    ich habe in meinem Programm die Entertaste zum Bestätigen einer Funktion im Einsatz, allerdings soll er dies natürlich nicht in Editboxen ausführen, weil man so nicht darin schreiben kann.

    Wie stelle ich es an, dass das Programm beim schreiben in Editboxen die Entertaste vorübergehend "deaktiviert" und erst nachdem man wieder aus der Editbox raus ist wieder aktiviert?

    Hier der Code:

    [autoit]

    Global $aAccelKeys[1][2] = [["{ENTER}", $frmRefreshButton]]
    GUISetAccelerators($aAccelKeys)

    [/autoit]

    Vielen Dank vorab und LG,
    der Robert

  • [Gelöst] Powershell Skript lässt sich nicht ausführen

    • DasIch
    • 19. Mai 2015 um 18:32

    Danke dir vielmals, ich werde es gleich morgen früh testen und mich dann nochmal melden :D

    Im Prinzip nicht. Außer, dass ich Probleme hatte, die Powershell über 32 Bit zum Laufen zu bekommen und daher eine zwischengeschaltete 64 Bit Version erstellt habe, die das Starten von Powershell übernimmt.

    Nachtrag: wenn das testen vorbei ist, umgehe ich natürlich den zwischenschritt :P

    okay, es hat so funktioniert. Leider kommt jetzt immer die fehlermeldung, dass das kennwort als secure string zur verfügung stehen muss.

    Ich sende per Controlsend die Daten an die Powershell, allerdings habe ich noch nicht rausgefunden, wie zum Geier ich das Kennwort mitgeben kann, ohne dass -AsSecureString benötigt wird.

    Ich habe als zwischenschritt versucht, das Skript "step.ps1" zu starten, in dem einfach nur folgendes steht:

    Bash
    $pw = Read-Host "Kennwort" -AsSecureString

    Anschließend wollte ich dann das Kennwort aus dem Skript übernehmen, was allerdings nichts funktioniert, ist ja klar.... wie übergebe ich der Powershell die Daten, die unten im letzten Controlsend mit angegeben sind, um es komplett über das Skript laufen zu lassen? Google lässt mich da stark im Stich :(


    [autoit]

    ControlSend("Computer: ","","",@ScriptDir & "\step.ps1" & "{ENTER}")
    ControlSend("Computer: ","","","blah" & "{ENTER}")
    ControlSend("Computer: ","","",'New-Mailbox -UserPrincipalName ' & $sLogin & $sEmail & ' -Database "Mailbox 01" -Alias ' & $sLogin & ' -Name "' & $sNachname & ', ' & $sVorname & '" -Password $pw'); & "{ENTER}")

    [/autoit]

    Sorry für Dreifachpost, evtl kann das ja gemerged werden :P

    Ich konnte das Problem beheben, indem ich die Datei einfach vor dem Aufruf jedes mal neu schreiben lasse :)

    LG,
    der Robert

  • [Gelöst] Powershell Skript lässt sich nicht ausführen

    • DasIch
    • 19. Mai 2015 um 17:45

    Das Problem ist, dass ich in der Shell selbst nochmal andere Daten brauche (Firma, Vorname, Nachname usw.), die ich aber auch überssichtsgründen weggelassen habe. Diese Daten sende ich dann per ControlSend() in die Shell, aber die Daten brauche ich halt aus dem Main-Skript, weil dort die Eingaben erfolgen.

  • [Gelöst] Powershell Skript lässt sich nicht ausführen

    • DasIch
    • 19. Mai 2015 um 14:41

    Okay, immerhin kann ich es mittlerweile ausführen..

    Jetzt wird es wieder Autoit-lastig :D

    Und zwar wird das vorher gefragte Kennwort zum Starten benötigt, damit das Programm als verifizierter User die Postfächer anlegen kann. Soweit, sogut.

    So wird die Powershell geöffnet:

    [autoit]

    RunAs($sUser, $sDomain, $sPassword, 2, @ScriptDir & "\pwrshell.exe")

    [/autoit]

    jetzt will ich in der pwrshell.exe (welche ein kompiliertes Autoit-Skript ist) gerne die Daten aus den Formularen des skriptes, welche die exe gestartet hat, übernehmen.

    Konkret:

    [autoit]

    $sDomain, $sUserLogin, $sPassword, $sUser

    [/autoit]

    Anschließend soll Powershell mit

    [autoit]

    RunAs($sUser, $sDomain, $sPassword, 2, $1 & $2 & $3 & $4)

    [/autoit]

    gestartet werden. Allerdings kann er mit $sUser, $sDomain und $sPasswort nichts anfangen, diese sind leer.. (sie sind in dem Hauptprogramm als Global deklariert, was aber nichts hilft, weil ein include der main.au3 zur Folge hätte, dass die funktionen am anfang nochmals ausgeführt werden.) Ist es irgendwie möglich, mit den Variablen im anderen Skript weiterzuarbeiten? mit $cmdLine[] funktionierte es nicht...

    Ich hoffe nochmals auf Hilfe und sende LG,
    der Robert

  • [Gelöst] Powershell Skript lässt sich nicht ausführen

    • DasIch
    • 18. Mai 2015 um 18:08

    Hallo Bernd, und danke nochmals für deine geduld :P

    ich habe die tools installiert, und dennoch will es nicht so recht laufen. Hast du sonst noch eine Idee?

    P.S.: Danke fürs Verschieben und sorry für das falsche Forum :P

  • [Gelöst] Powershell Skript lässt sich nicht ausführen

    • DasIch
    • 18. Mai 2015 um 15:57

    Auf einem Exchange ausführen ist keine Möglichkeit, da das Programm später über eine VM genutzt werden soll, um User zu verwalten.

    Ich habe folgenden Befehl probiert, und leider half dies auch nichts. Und zu New-Mailbox finde ich nichts brauchbares im Internet. Überall steht nur "Importiere das", aber nirgends, wie genau das gehen soll. Vor allem für New-Mailbox..

    Code
    Get-Module -ListAvailable | Import-Module

    Nachtrag: Ich werde die hier beschriebene Vorgehensweise mal probieren und mich wieder melden: http://exchangeserverpro.com/exchange-2010-…nagement-tools/

  • [Gelöst] Powershell Skript lässt sich nicht ausführen

    • DasIch
    • 18. Mai 2015 um 15:15

    Das ist die Fehlermeldung.

    Code
    Die Benennung "New-Mailbox" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
  • [Gelöst] Powershell Skript lässt sich nicht ausführen

    • DasIch
    • 18. Mai 2015 um 15:02

    Hallo Bernd und Danke für deine Antwort,

    leider funktioniert es jetzt noch weniger. das Powershell Fenster schließt sich sofort, und es wird kein Postfach angelegt.

    werden hierfür noch weitere inkludes in autoit benötigt?

  • [Gelöst] Powershell Skript lässt sich nicht ausführen

    • DasIch
    • 18. Mai 2015 um 14:15

    Hallo zusammen,

    ich möchte über Autoit ein Powershell Skript ausführen und bin mittlerweile am Verzweifeln.

    Ich habe es wie folgt versucht:


    [autoit]


    ShellExecute("powershell.exe –noexit", "autoitps1.ps1") ;>>> Das funktioniert glaube ich ohnehin nicht :P
    RunWait("powershell.exe –noexit " & @ScriptDir & "\autoitps1.ps1")
    RunAs(User, Domain, Password, "", "powershell.exe –noexit " & @ScriptDir & "\autoitps1.ps1")

    [/autoit]

    Leider bin ich wohl zu dumm dafür. Denn jedes mal kommt die selbe Fehlermeldung im PS-Fenster:

    Code
    Die Datei "C:\Users\xyz\Desktop\autoitps1.ps1" kann nicht geladen werden, d
    a die Ausführung von Skripts auf diesem System deaktiviert ist. Weitere Informa
    tionen erhalten Sie mit "get-help about_signing".
    Bei Zeile:1 Zeichen:39
    + C:\Users\xyz\Desktop\autoitps1.ps1 <<<<
    + CategoryInfo : NotSpecified: (:) [], PSSecurityException
    + FullyQualifiedErrorId : RuntimeException


    im Skript ansich steht folgendes:

    Code
    New-Mailbox -UserPrincipalName testxy@domain.de -Alias testxy -Database "Database1" -Name Test XY -OrganizationalUnit Users -FirstName Test -LastName XY -DisplayName "Test XY"

    Ich hoffe, mir kann geholfen werden, ich stehe gerade "etwas" vor der Wand ?(

    LG,
    der Robert

  • Listview Auswahl

    • DasIch
    • 9. April 2015 um 14:39

    Manchmal ist es einfacher als man glaubt. Vielen lieben Dank, genau das suchte ich! :D

  • Listview Auswahl

    • DasIch
    • 9. April 2015 um 13:53

    Hallo zusammen,

    ich möchte in meiner Listview am Anfang, vor dem ersten Eintrag pro Zeile eine Checkbox einfügen, die dann beim Klick auf "Export" geprüft wird, ob sie gecheckt ist. Wenn ja, soll der Eintrag aus der 2. Spalte in ein Array geschrieben werden. Weiß jemand, wie ich das am Besten anstelle?

    So sieht die Listview aus:

    [autoit]

    GUICtrlCreateListView ( "x|ID|Name", -1, -1, 150, 400)

    [/autoit]

    Unter "x" sollen dann die Checkboxen stehen.

    Vielen Dank vorab und LG,
    der Robert

  • ff.au3 und optionselect

    • DasIch
    • 19. März 2015 um 16:03

    Ich bin verwundert. Hier scheint echt niemand eine Lösung zu wissen :(

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™