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

Beiträge von sc4ry

  • Edit und Scrollbalken, nur wenn nötig

    • sc4ry
    • 14. Mai 2009 um 14:58

    Hallo zusammen,

    gibt es eine Möglichkeit, Scrollbalken in zB einem Edit-Feld nur anzeigen zu lassen, sobald das Fenster zu klein wird?

  • Variables Tray-Menü Hilfe

    • sc4ry
    • 14. Mai 2009 um 14:56

    ich hatte erst ne ini verwendet, bin dann aber auf ne sql-db umgestiegen.
    das sind nicht die einzigen werte, die geplfegt werden, wobei das noch nicht mal der grund war.

    die genaue zuordnung über die ROWID hat mich die sql-db nehmen lassen. in der ini müsste ich die zuordnung selber einbauen, oder über den namen gehen, was aber ungenau ist, falls der fall auftreten sollte, dass dieser 2 mal vorhanden ist.

  • Variables Tray-Menü Hilfe

    • sc4ry
    • 14. Mai 2009 um 09:02

    habe noch nicht angefangen, für das tray menü was zu coden, da ich ja erst wissen muss, wie ich es überhaupt machen will.

    meine idee bis jetzt ist, ich lese die benannten daten aus der db und schreibe die in ein array. ich erstelle ein neues array in die ich jeweils die dateiendungen reinschreibe und lösche dort doppelte einträge.
    dann erstelle ich für dieses array je einen menüeintrag im tray und füge dann die namen der pfade ein.

    scheint mir halt nur nicht der optimalste weg zu sein.

  • Variables Tray-Menü Hilfe

    • sc4ry
    • 13. Mai 2009 um 16:34

    Hiho,

    ich habe eine Idee, aber ich weiss einfach nicht, wie ich das am sinnvollsten/ effektivsten umsetzen soll.

    ich habe eine Datenbank mit Namen und Pfaden, die ich per SQL-Befehl auslese.
    Dann möchte ich daraus ein varibables Tray-Menü erstellen, ein Menü pro Dateiendung, in dem dann die Namen als Item angezeigt werden.

    Bsp:

    Exe ->mIRC
    Excel
    miranda
    xls ->Daten
    Rechnung
    jpg ->Freundin
    Geliebte
    Oma
    cmd ->admin

    jmd ne Idee, wie man das am einfachsten/ sinnvollsten umsetzen kann?
    Das Menü müsste auch im laufenden Prozess teilweise neu generiert werden, wenn Einträge in der DB dazukommen.

    schonmal vielen Dank für Denkanstöße und/oder Code.

  • Programm über Verknüpfung starten

    • sc4ry
    • 12. Mai 2009 um 15:38

    quasi so, oder gehts noch anders?

    DllCall("Kernel32.dll", "int", "SetCurrentDirectory", "str", @ScriptDir)

  • Programm über Verknüpfung starten

    • sc4ry
    • 12. Mai 2009 um 15:20

    Hallo,

    mir ist etwas aufgefallen, was ich nicht ganz verstehe.

    ich habe ein programm, dass, wenn es beim start eine a.ini findet, msgbox A anzeigt, sonst msgbox B.
    ich starte die datei ganz normal aus dem explorer und die a.ini existiert im selben dir, msgbox A wird (richtigerweise) angezeigt.

    ich lege eine verknüpfung des tools im schnellstart an und starte das tool über die verknüpfung, es wird msgbox B angezeigt (da die ini, die da ist, wohl nicht gefunden wurde).

    womit hängt das zusammen? irgendwas mit @workingdir? was muss ich machen, dass beide versionen funktionieren?

  • ListView und Passwort

    • sc4ry
    • 8. Mai 2009 um 10:19

    Hallo,

    ich möchte in einem mehrspaltrigen Listview, das eine Spalte nur **** anstatt Text anzeigt, da dort Passwörter eingetragen werden.
    Ist das möglich und wenn ja, wie?

  • IE/FF und Tabs

    • sc4ry
    • 6. Mai 2009 um 20:21

    wenn ich iecreate mache, erstellt ja er immer ein neues fenster. ab ie7 werden ja tabs unterstützt, also soll er die seiten in neuen tabs, anstatt neuen ie-instanzen öffnen.

  • IE/FF und Tabs

    • sc4ry
    • 6. Mai 2009 um 20:10

    Hiho,

    gibt es schon IE/FF-Funcs, um seiten in Tabs zu öffnen ?

  • KILL ???

    • sc4ry
    • 6. Mai 2009 um 14:03

    Hiho,

    ich habe ein Script geschrieben, was bis vor wenigen Wochen noch ohne Probleme lief.
    Das script soll nach dem Startvorgang automatisch 1-n Programme öffnen ... was es aber nicht mehr macht.

    Es gibt jedoch auch die Möglichkeit, die Routine für jedes Tool nochmal über das TrayMenü anzustoßen .. was funktioniert.

    Wenn ich das script aus dem Editor starte, bricht es zwar nicht ab, aber es kommt auch nicht bis zur prüfung, wo es entscheiden soll, starten oder nicht starten.

    Im fenster erscheint dann dies:

    [autoit]

    >Running:(3.3.0.0):C:\Program Files\AutoIt3\autoit3.exe "C:\Program Files\Henkel S.T.A.R.T.E.R\S.T.A.R.T.E.R.au3"
    KILL

    [/autoit]

    was hat das zu bedeuten? im code kommt 1 x das wort Kill vor (WinKill("[CLASS:IEFrame; INSTANCE:1]")) was aber auch aus dem code entfernt werden kann. die meldung kommt trotzdem.

  • textfile nach mehrere leerzeilen durchforsten und bis auf 1 löschen

    • sc4ry
    • 6. Mai 2009 um 10:45

    Hiho,

    ich würde gerne ein txt file auf mehrere aufeinanderfolgende leerzeilen durchsuchen und alle leerzeilen bis auf 1 löschen.
    leider komm ich damit nicht ganz zurecht. also prüfung pro leerzeile und löschung ist ok, aber auf mehrere komme ich nicht ganz klar.

    [autoit]

    For $i = 1 To $arFile[0]
    If FileReadLine(@UserProfileDir & "\map.cmd", $i) = "" Then _FileWriteToLine(@UserProfileDir & "\map.cmd", $i, "", 1)
    Next

    [/autoit]
  • IE-Problem

    • sc4ry
    • 6. Mai 2009 um 10:01

    hmm ok, dann werd ich es so machen müssen, dank dir für deine hilfe =)

  • IE-Problem

    • sc4ry
    • 6. Mai 2009 um 09:45

    danke, die idee ist gut (funktioniert wahrscheinlich auch), aber in meinem fall leider doch wieder nicht =/

    [autoit]

    --> IE.au3 V2.4-0 Warning from function _IEAttach, $_IEStatus_NoMatch

    [/autoit]

    Das Handle findet er, aber irgendwie kann wiederum die IE-Func nicht darauf zugreifen oO

  • IE-Problem

    • sc4ry
    • 6. Mai 2009 um 09:07

    Hiho,

    ich habe mal wieder ein kleines prob. beim pc-start auf der arbeit wird eine ie-instanz geöffnet, an der ich mich automatisch anmelden möchte. leider funktioniert _IEAttach nicht, da überhaupt keine IE-instanz gefunden wird (mit dem letzten bsp aus der hilfe getestet).

    öffne ich manuell eine neue instanz mit der url, funktioniert _IEAttach auch.

    Ich komme an das Fenster-Handle, wenn ich WinGetHandle benutze.

    Wie bringe ich jetzt AutoIt dazu, dieses Handle auch mit den IE-Functions zu nutzen, um so user/pw eintragen zu lassen?

  • RunAsAdmin

    • sc4ry
    • 5. Mai 2009 um 16:39

    Hiho,

    falls jmd sowas gebrauchen kann. hintergrund:

    ich habe auf der arbeit nur eingeschränkte recht, jedoch auch einen admin user. hin und wieder brauche ich diesen, sei es als cmd, explorer oder um dateien zu installieren. leider geht zB. bei msi-dateien kein "rechtsklick - ausführen als" (dann muss ich die datei über cmd/explorer mit adminrechten starten).

    dabei ist es nervig, immer das pw einzugeben.

    jetzt läuft im systray dieses tool, mit dem man schnell die cmd, den explorer oder bestimmte dateien mit adminrechten starten kann. diese werden einmal eingegeben und dann gespeichert.

    klein aber ... aber erfüllt meinen/seinen zweck =)

    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=RunAsA.exe
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    #Include <String.au3>
    #include <Process.au3>
    #include <array.au3>

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

    Opt("TrayAutoPause",0) ;0=no pause, 1=Pause
    Opt("TrayIconDebug", 0) ;0=no info, 1=debug line info
    Opt("TrayIconHide", 0) ;0=show, 1=hide tray icon
    Opt("TrayMenuMode",1) ;0=append, 1=no default menu, 2=no automatic check, 4=menuitemID not return
    Opt("TrayOnEventMode",1) ;0=disable, 1=enable

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

    Dim $data[2]
    $key = "1234"

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

    If Not FileExists("Settings.ini") Then
    $User = InputBox("Admin", "Please enter the Admin-User ID", "", "", Default, 50)
    If $User = "" Or @error Then Exit
    $Pw = InputBox("Password", "Please enter the Admin-User PW", "", "*", Default, 50)
    If $Pw = "" Or @error Then Exit
    IniWrite("Settings.ini", "Data", "User", _StringEncrypt(1, $User, $key, 4))
    IniWrite("Settings.ini", "Data", "Password", _StringEncrypt(1, $Pw, $key, 4))
    EndIf

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

    TrayCreateItem("Admin CMD")
    TrayItemSetOnEvent(-1, "_CMD")
    TrayCreateItem("Admin Explorer")
    TrayItemSetOnEvent(-1, "_EXP")
    TrayCreateItem("Run As Admin")
    TrayItemSetOnEvent(-1, "_RunAs")
    TrayCreateItem("")
    TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1, "_Exit")

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

    While 1
    Sleep(100)
    WEnd

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

    Func _CMD()
    _GetData()
    RunAs($data[0], @ComputerName, $data[1], 0, @ComSpec, @SystemDir)
    _ClearData()
    EndFunc

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

    Func _EXP()
    _GetData()
    RunAs($data[0], @ComputerName, $data[1], 0, "explorer.exe", @SystemDir)
    _ClearData()
    EndFunc

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

    Func _RunAs()
    $File = FileOpenDialog("File", @DesktopCommonDir, "Executables (*.exe;*.msi;*.bat;*.cmd)")
    If Not $File = "" Or @error Then
    $Split = _PathSplit1($File)
    If Not @error Then
    _GetData()
    If $Split[7] = "msi" Then
    FileDelete(@TempDir & "\runmsi.bat")
    $sCmdFile = '@echo off' & @CRLF _
    & '"' & $File & '"' & @CRLF _
    & 'del ' & @TempDir & '\runmsi.bat'
    FileWrite(@TempDir & "\runmsi.bat", $sCmdFile)
    $File = @TempDir & "\runmsi.bat"
    RunAs($data[0], @ComputerName, $data[1], 0, $File, @TempDir)
    Exit
    Else
    RunAs($data[0], @ComputerName, $data[1], 0, $Split[5], $Split[2])
    EndIf
    EndIf
    EndIf
    _ClearData()
    EndFunc

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

    Func _GetData()
    $data[0] = _StringEncrypt(0, IniRead(@ScriptDir & "\Settings.ini", "Data", "User", ""), $key, 4)
    $data[1] = _StringEncrypt(0, IniRead(@ScriptDir & "\Settings.ini", "Data", "Password", ""), $key, 4)
    Return $data
    EndFunc

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

    Func _ClearData()
    Dim $data[2]
    EndFunc

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

    Func _Exit()
    Exit
    EndFunc

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

    ;===============================================================================
    ; Function Name: _PathSplit1()
    ; Description: Split the path to 8 elements.
    ; Parameter(s): $sPath - Path to split.
    ; Requirement(s): AutoIt 3.2.2.0.
    ; Return Value(s): On seccess - Array $RetArray that contain 8 elements:
    ; $RetArray[0] = Full path ($sPath)
    ; $RetArray[1] = Drive letter
    ; $RetArray[2] = Path without FileName and extension
    ; $RetArray[3] = Full path without File Extension
    ; $RetArray[4] = Full path without drive letter
    ; $RetArray[5] = FileName and extension
    ; $RetArray[6] = Just Filename
    ; $RetArray[7] = Just Extension of a file
    ;
    ; On failure - If $sPath not include correct path (the path is not splitable),
    ; then $sPath returned.
    ; If $sPath not include needed delimiters, or it's emty,
    ; then @error set to 1, and returned -1.
    ;
    ; Note(s): The path can include backslash as well (exmp: C:/test/test.zip).
    ;
    ; Author(s): G.Sandler a.k.a CreatoR (MsCreatoR) - Thanks to amel27 for help with RegExp
    ;===============================================================================

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

    Func _PathSplit1($sPath)
    If $sPath = "" Or StringRegExp($sPath, ('.*\\.*\/')) Then Return SetError(1, 0, -1)
    Local $RetArray[8], $pDelim = ""
    If StringRegExp($sPath, '^(?i)([A-Z]:|\\)(\\[^\\]+)+$') Then $pDelim = "\"
    If StringRegExp($sPath, '(?i)(^.*:/)(/[^/]+)+$') Then $pDelim = "//"
    If $pDelim = "" Then $pDelim = "/"
    If Not StringInStr($sPath, $pDelim) Then Return $sPath
    If $pDelim = "\" Then $pDelim &= "\"
    $RetArray[0] = $sPath
    $RetArray[1] = StringRegExpReplace($sPath, $pDelim & '.*', $pDelim)
    $RetArray[2] = StringRegExpReplace($sPath, $pDelim & '[^' & $pDelim & ']*$', '')
    $RetArray[3] = StringRegExpReplace($sPath, '\.[^.]*$', '')
    $RetArray[4] = StringRegExpReplace($sPath, '(?i)([A-Z]:' & $pDelim & ')', '')
    $RetArray[5] = StringRegExpReplace($sPath, '^.*' & $pDelim, '')
    $RetArray[6] = StringRegExpReplace($RetArray[5], '\.[^.]*$', '')
    $RetArray[7] = StringRegExpReplace($sPath, '^.*\.', '')
    Return $RetArray
    EndFunc ;==>_PathSplit1

    [/autoit]
  • RunAs & msi

    • sc4ry
    • 5. Mai 2009 um 16:35

    geschafft ...

    bei msi sollte wohl bei RunAs der ganze Pfad, anstatt nur das File stehen.

    so geht es auf jeden Fall:

    [autoit]

    Func _RunAs()
    $File = FileOpenDialog("File", @DesktopCommonDir, "Executables (*.exe;*.msi;*.bat;*.cmd)")
    If Not $File = "" Or @error Then
    $Split = _PathSplit1($File)
    If Not @error Then
    _GetData()
    If $Split[7] = "msi" Then
    FileDelete(@TempDir & "\runmsi.bat")
    $sCmdFile = '@echo off' & @CRLF _
    & '"' & $File & '"' & @CRLF _
    & 'del ' & @TempDir & '\runmsi.bat'
    FileWrite(@TempDir & "\runmsi.bat", $sCmdFile)
    $File = @TempDir & "\runmsi.bat"
    RunAs($data[0], @ComputerName, $data[1], 0, $File, @TempDir)
    Exit
    Else
    RunAs($data[0], @ComputerName, $data[1], 0, $Split[5], $Split[2])
    EndIf
    EndIf
    EndIf
    _ClearData()
    EndFunc

    [/autoit]
  • RunAs & msi

    • sc4ry
    • 5. Mai 2009 um 16:25

    nee, das ist es nicht, es ist komisch.

    hier mal das ganze script:

    [autoit]

    Func _RunAs()
    $File = FileOpenDialog("File", @DesktopCommonDir, "Executables (*.exe;*.msi;*.bat;*.cmd)")
    If Not $File = "" Or @error Then
    $Split = _PathSplit1($File)
    If Not @error Then
    If $Split[7] = "msi" Then
    FileDelete(@TempDir & "\runmsi.bat")
    $sCmdFile = '@echo off' & @CRLF _
    & '"' & $File & '"' & @CRLF _
    & 'del ' & @TempDir & '\runmsi.bat'
    FileWrite(@TempDir & "\runmsi.bat", $sCmdFile)
    $File = @TempDir & "\runmsi.bat"
    EndIf

    $Split = _PathSplit1($File)
    If Not @error Then
    _GetData()
    $r = RunAs($data[0], @ComputerName, $data[1], 0, $Split[5], $Split[2])
    MsgBox(0, $r & @CRLF & @error, $data[0] & @CRLF & $data[1] & @CRLF & $Split[5] & @CRLF & $Split[2])
    EndIf
    EndIf
    EndIf
    _ClearData()
    EndFunc

    [/autoit]

    ich habe es jetzt so umgeschrieben, das für msi-dateien eine bat erstellt wird und diese von der normalen routine ausgeführt wird.
    die normale routine funktioniert bei exe, bat und cmd supi.

    die msi-routine funktioniert aber auch im oben genannten bsp. nicht. die bat wird erstellt, aber runas gibt nen fehler zurück. führe ich aber die bat in der normaler routine per hand aus, funktioniert das auch. also syntay fehler gibt es wohl nicht, aber wo liegt der hund begraben???

  • RunAs & msi

    • sc4ry
    • 5. Mai 2009 um 16:13
    [autoit]

    FileDelete(@TempDir & "\runmsi.bat")
    $sCmdFile = '@echo off' & @CRLF _
    & '"' & $File & '"' & @CRLF _
    & 'del ' & @TempDir & '\runmsi.bat'
    FileWrite(@TempDir & "\runmsi.bat", $sCmdFile)
    RunAs($data[0], @ComputerName, $data[1], 0, "runmsi.bat", @TempDir)

    [/autoit]

    Hallo, habe es jetzt mal so probiert.
    wenn ich die batch datei mit admin-cmd ausführe, funzt das ... leider funktioniert hier der runas befehl iwie nicht, wobei ich nicht weiss, wieso?

    ein anderer teil des tools sieht so aus und geht:

    [autoit]

    RunAs($data[0], @ComputerName, $data[1], 0, @ComSpec, @SystemDir)

    [/autoit]
  • RunAs & msi

    • sc4ry
    • 5. Mai 2009 um 16:01

    das sollte heißen, dass nix passiert.
    bei deinem code passiert zwar was, aber leider immer die meldung, dass das installationspaket nicht geöffnet werden konnte.

    also hilft mir das leider auch nicht ganz weiter, denn wenn ich die datei mit ner admin-cmd ausführe, gehts (also msi-datei ist nicht defekt, habe auch mehrere probiert).

  • RunAs & msi

    • sc4ry
    • 5. Mai 2009 um 12:12

    funkey

    deine Variante geht leider nicht.

    gibt es nicht ShellExecuteAs oder sowas =)

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™