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

Beiträge von WiDDoW

  • WinActive

    • WiDDoW
    • 24. April 2020 um 16:36
    Zitat von Bitnugger

    Mit +1 wolltest du wohl das vorletzte aktive Window ermitteln... das ginge dann so:

    Ne eigentlich wollte ich das nicht - das waren dann so die verzweiflungstaten, weil ohne nicht das gewünschte Ergebnis raus kommt (natürlich hatte ich es auch ohne und mit "-1" versucht. aber irgendwie geht das nicht. Aber dein Beispiel mit SetWinEventHook sieht echt gut aus - glaub da würd ich mir gern was raus "extrahieren"X/ Ich finde es auch sehr schade dass es zu _WinAPI_GetWindow() kein HilfeBeispiel gibt. Aber egal.

    Vielen Dank für Eure Hilfe und allen ein schönes WE

    (und GESUND BLEIBEN!! )

    WiDDoW

  • WinActive

    • WiDDoW
    • 22. April 2020 um 21:01

    Hallo nochmal,

    hab das mal in einem miniscript versucht umzusetzen - aber es gelingt mir nicht...

    C
    #include <WinAPI.au3>
    #include <array.au3>
    #include <GUIConstantsEx.au3>
    
        Local $hGui = GUICreate("Example", 300, 200)
        local $idTool1 =GUICtrlCreateButton("Notepad", 10, 100, 85, 25)
        local $idTool2 =GUICtrlCreateButton("Calc", 100, 100, 85, 25)
        ;local $idTool3 =GUICtrlCreateButton("OSK", 200, 100, 85, 25)
        Local $idLastTool =GUICtrlCreateButton("last tool", 120, 170, 85, 25)
         local $_idClose = GUICtrlCreateButton("close", 210, 170, 85, 25)
    
        GUISetState(@SW_SHOW, $hGui)
    
        While 1
            Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE, $_idClose
                    ExitLoop
    
                Case $idLastTool
                    local $hLastWindow = _WinAPI_GetWindow ( $hGUi, $GW_HWNDNEXT +1)
                    local $a1 = WinList()
                    $iResult = _ArraySearch($a1,$hlastWindow)
                    _ArrayDisplay($a1,"Result="&$hlastWindow &" in zeile"& $iResult&" "&$a1[$iResult][0])
                    Sleep(2000)
                    WinActivate($hLastWindow)
                Case $idTool1
                    run ("notepad")
                Case $idTool2
                    Run ("calc")
                ;Case $idTool3
                ;    Run ("osk.exe")
            EndSwitch
        WEnd
        GUIDelete($hGui)
    Alles anzeigen

    Eigentlich wäre das Missionsziel Gui Starten, klick auf "Notepad" und dann auf "last Tool" sollte das Array öffnen und im Kopf die Notepad zeile anzeigen. Bei mir wird fast immer "Default IME" ausgegeben. Jemand ne idee was ich falsch mache.

    Danke

    WiDDow

  • WinActive

    • WiDDoW
    • 19. April 2020 um 20:06
    Zitat von water

    Du könntest aber auch einen anderen Ansatz wählen. Automatisiere nicht das GUI von Word, sondern verwende die COM Schnittstelle (entweder über die Word UDF oder in dem Du Word direkt über COM Methoden ansprichst). Dann ist egal, ob das Word-Fenster aktiv ist oder nicht.

    Danke für deine Antwort - das ist aber glaub nicht so mein weg, da es weniger um Word anwendungen geht (hatte das nur als Beispiel - es geht mehr um verschiedene VNC anwendungen - teils werden da mehrere Fenster gleichzeitig genutzt - ich glaub da wird das nicht sooo gut funktionieren aber dennoch danke


    Zitat von Bitnugger

    Schau dir dazu die Function _WinAPI_GetWindow an. ; ==>> $GW_HWNDNEXT - The retrieved handle identifies the window below the specified window in the Z order.

    Das hört sich sehr interesant an - da werd ich mich mal einlesen müssen... Zumindest schein die Funktion ganz schön "umfangreich..." Mal schauen ob ich´s hin bekomm - vielen Dank schonmal bis hier her

    WiDDoW

  • WinActive

    • WiDDoW
    • 19. April 2020 um 18:14

    Hallo zusammen,

    ich bräuchte mal wieder ein bissel Hilfe bei meinem aktuellen Projekt . Ich möchte eine vorhandene Gui um ein paar Buttons erweitern mit den ich zB Textbausteine an die aktuelle Anwendung senden kann. Wenn ich z.B. im Word arbeite, befindet sich mein Tool auf dem 2. Bildschirm und ein klick auf den Button soll den Text in Word einfügen. Problem ist nur, wenn ich WinActive verwende ist dann meine Anwendung aktiv und nicht mehr Word.

    ich müsste glaub das Aktive Fenster früher abfragen - bevor sich der Focus ändert - bäruchte sowas wie MouseOver aber leider hab ich so eine Funtkon nicht entdeckt -

    hat jemand eine idee wie man das lösen könnte ?

    Danke Widdow

  • gibts MsgBoxen in anderer als der Systemsprache?

    • WiDDoW
    • 8. September 2016 um 22:52

    find es auch nicht schlecht - immer English ist genau was ich will.

    ich versuch mal ob ichs auch für die Input Boxen anpassen kann :D

    danke mal bis hier her


    --Edit----

    da steht ja jetzt schon nur "ok" und "cancel" für meine zwecke also perfekt
    aber trotzdem irgendwie perfide dass es in der MsgBox "abbrechen" und in der inputBox "cancel" heißt 8|

  • gibts MsgBoxen in anderer als der Systemsprache?

    • WiDDoW
    • 8. September 2016 um 20:15

    hallo zusammen,

    hab mal ne kurze frage - hab zwar nicht viel Hoffnung, dass funktioniert was ich vorhabe - aber vielleicht hat ja jemand eine idee

    habe ein fertiges Script wo etliche MsgBoxen beinhaltet - und jetzt ist mir eingefallen, dass es sein könnte das der Benutzer dieses Script an fremden Rechnern benutzt.
    So könnte es sein, dass auf einem Russich eingestelltem PC meine MsgBox kommt und der user jetzt russich können muss um die Richtigen buttons zu drücken.

    deswegen meine Frage:
    kann ich für mein Script die Systemsprache zB in ENG überschreiben? oder muss ich jede msgBox in eine GUI umwandeln um auch die Buttons beschriften zu können?

    hoffe ihr versteht was ich mein.
    danke WiDDoW

  • Lauferksinhalt von Fremden PCs anzeigen (ohne Zugangsdaten dauerhaft zu speichern)

    • WiDDoW
    • 16. Juli 2016 um 19:53

    hey,

    1. Richtig - eine IP Adresse ist keine Domain, ist aber auch nur ein VariablenName den ich vergeben habe...
    2. sry, aber als ich schrieb " Da die Rechner bzw. IP Adressen sehr oft wechseln" meinte ich die komplette Hardware ändert sich (also nicht weil der selbe rechner plötzlich eine andere ip adresse hat, sondern weil es ständig ein anderer Rechner ist :( )

    trotzdem danke für deine antwort.

  • Lauferksinhalt von Fremden PCs anzeigen (ohne Zugangsdaten dauerhaft zu speichern)

    • WiDDoW
    • 16. Juli 2016 um 19:21

    Hallo zusammen,

    glaub ich brauch mal wieder etwas hilfe bei meinem aktuellen Projekt:
    Ich möchte via Arbeitsplatz/Explorer einen einfachen Zugriff auf fremde Rechner im eigenen Netzwerk.
    Da die Rechner bzw. IP Adressen sehr oft wechseln möchte ich sie nicht in die Windowseigene Datenbank (die man auch über Start--> Ausführen --> " rundll32.exe keymgr.dll, KRShowKeyMgr " eingeben - sehen kann) speichern. bisher mach ich es so, dass ich erst ein Netzlaufwerk erstelle und dann über shellExecute die Adresse öffne und direkt danach das Netzlaufwerk wieder löschen. Funktioniert auch eigentlich recht gut,
    aber mittlerweile streiken so ziemlich alle anderen Netzlaufwerke (ich glaub das ich zuoft mappe)


    AutoIt
    $username	="Administrator"
    $domain		="192.168.0.1"
    $password	="passwort"
    $program 	="explorer"
    $workingdir	="\\"&$domain&"\"&"C$"
    $tmpDrive	="Z:"
    
    
    
    
    local $i = DriveMapAdd ( $tmpDrive,  $workingdir ,0, $username, $password )
    local $o = ShellExecute($workingdir)
    DriveMapDel($tmpDrive)
    Alles anzeigen


    Die letzte Idee die ich noch habe ist folgende: zB über CMD auslesen wann das letzte mal der PC neu gestartet wurde und falls seit diesem Zeitpunkt schon einmal eine Verbindung zum entsprechenden PC bestand, versuch es ohne DriveMapAdd zu verbinden. falls noch nie eine Verbindung bestand - versuch es mit DriveMapAdd. Ist aber meiner Meinung nach ganz schönes Flickwerk.

    Deshalb dachte ich mir, würde es sich vielleicht lohnen auch mal hier zu posten, falls vielleicht jemand einen eleganteren Weg kennt sich den OrdnerInhalt von Fremden Rechnern einfach anzuzeigen ohne dabei die Zugangsdaten dauerhaft speichern zu müssen. Vielleicht weiß auch jemand wie ich elegant (ohne den umweg über cmd) wie ich an die Uhrzeit des letzten WindowsStarts komm.


    Vielen Dank
    WiDDoW

  • Excel Dokument sauber öffnen, auslesen und wieder schließen

    • WiDDoW
    • 20. Juli 2013 um 14:22

    hey nochmal - schade das keine weiteren ideen kamen...

    aber das rewrite von der excel udf ist mir dann doch etwas zuviel beta (die Tatsache, dass sie nur mit der beta version von autoit läuft schreckt mich schon genug ab :whistling: )
    aber ich hab den fehler gefunden:
    der Excel prozess wird zu früh geschlossen ich habe jetzt noch einen sleep(500) davor gepackt - jetzt gehts

    _excelbookClose
    if $excelWasOpenBefore then
    sleep(500)
    processClose(excel.exe)
    else
    ;nix schließen weil excel händisch schon offen war
    endif

  • Excel Dokument sauber öffnen, auslesen und wieder schließen

    • WiDDoW
    • 8. Juli 2013 um 22:22

    NAbend leute,
    ich sitz mal wieder an meinem Datenbank projekt was mich schon seit nem Jahr hin und wieder beschäftigt - und eine Sache stört immer wieder für die ich glaub ich mal hilfe brauche:
    ich will ein ExcelDokument auslesen und in Arrays das Ergebnis speichern und danach excel schließen.
    Problem: wenn ich danach excel öffne schreibt er jedes mal : "excel hat die folgenden Dateien wiederhergestellt. Speichern Sie alle, die Sie behalten wollen." und das andere Problem ist, wenn während der ganzen Prozedur eine andere Excel Datei geöffnet war, wird diese auch geschlossen. Ich hab über die Forensuche auch schon vieles gefunden, aber alles samt mit Objekten und leider bekomm ich nix dafür für meinen Fall passend zurecht gerückt...

    [autoit]


    ;#include <_FileReadToArray2D_version2.au3>;diese UDF ist bearbeitet (um unterschiedlich lange spalten erkennen zu können)
    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    ;#include <file2.au3> ;file2 weil standartfile fehlerhaft ist - und zwar muss Zeile 271 """For $y = 1 To $iDims""" zu """For $y = 1 To UBound($a_Array, 2)-1"""
    #include <Timers.au3>
    #Include <String.au3>
    ;#include <arraymore.au3>; Brauch ich um ein 2 dimensionales Array sortieren, erweitern oder verkürzen zu können
    #include <Excel.au3>
    ;....
    global $excelPfad = @ScriptDir&"\Namendatenbank.xlsx"
    ;....
    excel_holen()
    ;....

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

    func excel_holen()
    global $oExcel = _ExcelBookOpen($excelPfad,0,0)
    If @error = 1 or @error =2 Then
    $excelError =MsgBox(3, "Achtung!", "Das Excel-Objekt konnte nicht engelesen werden."&@lf&@lf&"Soll das Excelobjekt erstellt werden? (ohne kann nicht auf Nachnamen, Straßen oder Musterzeichen zugegriffen werden)")
    switch $excelError
    case 2 ;abbrechen
    Exit
    Case 6 ;File erstellen und speichern
    FileInstall("default_Namendatenbank.xlsx", $excelPfad)
    sleep(500)
    excel_holen()
    Case 7 ;File nicht einlesen (also dummiFile anlegen)
    global $excelmusterzeichen, $excelCity,$excelStreet,$excelLastName,$excelFirstNameF,$excelFirstNameM,$excelMaxLen[7]=[1,1,1,1,1,1,1] ;alternativzeile falls man excel einlesen auslässt
    EndSwitch
    Else
    ;TrayTip($toolname, "Excel Dokument wird eingelesen... das kann dauern", 5, 1)
    _ExcelSheetActivate($oExcel, "ACHTUNG-Wichtig")
    Global $excelMaxLen = _ExcelReadArray($oExcel,1,2,6,1,1) ;hier stehen die Zeichenbreiten in den einzelnen Excel Sheets eingetragen
    _ExcelSheetActivate($oExcel, "Vorname Mann")
    global $excelFirstNameM = _ExcelReadSheetToArray($oExcel, 1, 1,0, 1)
    _ExcelSheetActivate($oExcel, "Vorname Frau")
    global $excelFirstNameF = _ExcelReadSheetToArray($oExcel, 1, 1,0, 1)
    _ExcelSheetActivate($oExcel, "Nachname")
    global $excelLastName = _ExcelReadSheetToArray($oExcel, 1, 1,0, 1)
    _ExcelSheetActivate($oExcel, "Straße")
    global $excelStreet = _ExcelReadSheetToArray($oExcel, 1, 1,0, 1)
    _ExcelSheetActivate($oExcel, "Stadt")
    global $excelCity = _ExcelReadSheetToArray($oExcel, 1, 1,0, 1)
    _ExcelSheetActivate($oExcel, "Musterzeichen")
    global $excelmusterzeichen = _ExcelReadSheetToArray($oExcel, 1, 1,0, 1)
    local $tttemp = _ExcelBookClose($oExcel,0,0)
    if @error = 1 or @error =2 then ProcessClose("excel.exe")
    EndIf
    ProcessClose("excel.exe")
    EndFunc

    [/autoit]

    Ich möchte halt diese 7 Arbeitsblätter so in die einzelnen Arrays schreiben wie ich es bisher auch schon mache - nur halt eleganter...
    Kann mir büüüüddde jemand mit dem excelObjekt helfen? Ich weiß das es da schon etliches im Forum gibt, aber ich bekomm es nicht für mich angepasst... ?(

    danke
    PS: wenn es hilft, kann ich auch das Ganze script posten (ist aber echt lang)
    oder das Excel File anhängen um das es geht

  • wie kann ich bei mehreren GUIs Objekte auseinander halten?

    • WiDDoW
    • 22. Oktober 2012 um 20:18

    kann mir da echt keiner weiterhelfen? *liebguck*
    (gibt auch nen virtuellen Keks!)

    Ich würde ungern bei der alten Lösung bleiben, und bin auch der felsenfesten überzeugung das es irgenwie funktionieren muss.
    nur bin ich halt wohl zu blöde dafür...


    naja - wenn noch jemand ne idee hat - immer her damit

    thx

  • wie kann ich bei mehreren GUIs Objekte auseinander halten?

    • WiDDoW
    • 20. Oktober 2012 um 12:03

    hey,

    mit _IEAction hab ich auch schon mal ein wenig rumexperimentiert, aber damit bekomm (bzw. bekam) ich es nur hin, dass ich
    einzelne WebElemente (also buttons und Eingabefelder) direkt ansprechen konnte. Dass heißt ich müsste den User fragen "was willst du alles in dem Webformular eingeben?"
    und könnte dieses Ergebnis dann über _IEAction an die einzelnen Elemente senden. DAs will ich aber nicht. Ich möchte dass der User
    selbst die Daten ins WebFormular eingeben kann (und momentan funktioniert das nur über die Maus)


    In meiner alten Version des Programms hatte ich es so gelöst, dass beim öffnen der 2.Gui sich die komplette motherGui geschlossen hat, aber davon wollte ich eigentlich auch
    weg.

    könnte jemand vielleicht mein beispielscript in dieser Richtung etwas modifizieren?
    denn einfach nur ein wie hier zeile 32 Einfügen geht leider nicht

    Spoiler anzeigen
    [autoit]


    #include <IE.au3> ;für IE Elemente
    #include<GUIConstantsEx.au3>
    global $gui1, $gui2, $btn1, $btn2, $msg,$oIE,$oIE2,$gui1_IE

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

    $oIE = _IECreateEmbedded()
    $oIE2 = _IECreateEmbedded()

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

    $gui1 = GUICreate('GUI 1',500,500)
    $btn1 = GUICtrlCreateButton('GUI 2', 10, 20, 80, 20)
    $gui1_IE = GUICtrlCreateObj($oIE, 10, 50,480, 440)

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

    $gui2 = GUICreate('GUI 2',600,600)
    $btn2 = GUICtrlCreateButton('Button 2', 10, 20, 100, 20)
    $gui2_IE = GUICtrlCreateObj($oIE2, 10, 50,580, 540)

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

    GUISetState(@SW_SHOW, $gui1)
    _IENavigate($oIE,"www.google.de")
    _IENavigate($oIE2,"www.autoit.de")

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

    While 1
    $msg = GUIGetMsg(1)
    Switch $msg[1] ; Window Handle
    Case $gui1
    Switch $msg[0] ; Event
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $btn1
    GUISetState(@SW_SHOW, $gui2)
    _IEAction ($oIE, "disable")
    EndSwitch
    Case $gui2
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_SHOW, $gui1)
    GUIDelete($gui2)
    Case $btn2
    MsgBox(0, '', 'Button 2 geklickt')
    EndSwitch
    EndSwitch
    WEnd
    GUIDelete($gui1)
    GUIDelete($gui2)

    [/autoit]
  • wie kann ich bei mehreren GUIs Objekte auseinander halten?

    • WiDDoW
    • 19. Oktober 2012 um 21:30

    NAbend,

    ich hab ein kleines Tool welches die "mutter aller Fenster" :D öffnet. In diesem kann man (mehrere) Childfenster öffnen.
    Alle diese GUi Fenster beinhalten jeweils ein IE Objekt. Mein Problem ist jetzt, das ich nicht mit dem IE Objekten im Childfenster umgehen kann.

    BeispielScript mit 1xMutter + 1xChild:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <IE.au3> ;für IE Elemente
    #include<GUIConstantsEx.au3>
    global $gui1, $gui2, $btn1, $btn2, $msg,$oIE,$oIE2,$gui1_IE

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

    $oIE = _IECreateEmbedded()
    $oIE2 = _IECreateEmbedded()

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

    $gui1 = GUICreate('GUI 1',500,500)
    $btn1 = GUICtrlCreateButton('GUI 2', 10, 20, 80, 20)
    $gui1_IE = GUICtrlCreateObj($oIE, 10, 50,480, 440)

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

    $gui2 = GUICreate('GUI 2',600,600)
    $btn2 = GUICtrlCreateButton('Button 2', 10, 20, 100, 20)
    $gui2_IE = GUICtrlCreateObj($oIE2, 10, 50,580, 540)

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

    GUISetState(@SW_SHOW, $gui1)
    _IENavigate($oIE,"www.google.de")
    _IENavigate($oIE2,"www.autoit.de")

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

    While 1
    $msg = GUIGetMsg(1)
    Switch $msg[1] ; Window Handle
    Case $gui1
    Switch $msg[0] ; Event
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $btn1
    GUISetState(@SW_SHOW, $gui2)
    EndSwitch
    Case $gui2
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_SHOW, $gui1)
    GUIDelete($gui2)
    Case $btn2
    MsgBox(0, '', 'Button 2 geklickt')
    EndSwitch
    EndSwitch
    WEnd
    GUIDelete($gui1)
    GUIDelete($gui2)

    [/autoit]


    Wenn ich hier im Childfenster bin und mit Tabulator die einzelnen Elemente durchspringen will, wird sofort zurück zur "Mutter aller Fenster" gesrpungen und die Tastaturbefehle werden dahin gesendet - selbst wenn dieses Mutter Fenster minimiert wurde.

    Hat jemand eine idee, was ich falsch mach?
    Ich hab eigentlich schon ganz schön lange rum gesucht und bekomme es nicht hin, das die Tastenanschläge an das aktive Fenster gesendet werden, egal welches das gerade ist.

  • _fileWriteFromArray schreibt nur 3 Einträge

    • WiDDoW
    • 7. Juli 2012 um 17:24

    jep - jetzt läufts danke.
    (hatte mir schon gedacht das die Funktion vielleicht einen fehler hat und hatte sie deshalb gleich mit reingepostet)

    ist der fehler bekannt? oder sollte man da ggf nochmal im eng. forum posten damit das zukünftig gefixt wird?

  • _fileWriteFromArray schreibt nur 3 Einträge

    • WiDDoW
    • 7. Juli 2012 um 16:25

    mahlzeit,

    in folgendem Script versuche ich ein komplettes (2dimensionales) Array in eine TXT datei zu schreiben und auf dem Desktop abzulegen. Allerdings werden nur die jeweils
    ersten 3 Einträge in die datei geschrieben. Der Befehl _arrayDisplay arbeitet aber korrekt und zeigt alle Einträge an. Hat jemand eine idee, warum in der Datei nur
    die jeweils ersten 3 Einträge landen?

    thx

    code

    Spoiler anzeigen
    [autoit]


    #include<file.au3>
    #include <Array.au3>
    global $array[2][6]
    $array[0][0] = "Hannes"
    $array[0][1] = "Holger"
    $array[0][2] = "Jon"
    $array[0][3] = "Maik"
    $array[0][4] = "mr.nobody"
    $array[0][5] = "stefan"
    $array[1][0] = "spielen"
    $array[1][1] = "schreiben"
    $array[1][2] = "gammeln"
    $array[1][3] = "schlafen"
    $array[1][4] = "ruhen"
    $array[1][5] = "rennen"
    _arrayDisplay($array)
    $answer = _FileWriteFromArray(@DesktopDir& "\dummy.txt" , $array,0,0)
    msgBox(0,$answer,@error)

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

    Exit

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

    ;-----------------entsprechender Code aus der File.au3--------------
    #cs
    Func _FileWriteFromArray($File, $a_Array, $i_Base = 0, $i_UBound = 0, $s_Delim = "|")
    ; Check if we have a valid array as input
    If Not IsArray($a_Array) Then Return SetError(2, 0, 0)
    Local $iDims = UBound($a_Array, 0)
    If $iDims > 2 Then Return SetError(4, 0, 0)

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

    ; determine last entry
    Local $last = UBound($a_Array) - 1
    If $i_UBound < 1 Or $i_UBound > $last Then $i_UBound = $last
    If $i_Base < 0 Or $i_Base > $last Then $i_Base = 0

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

    ; Open output file for overwrite by default, or use input file handle if passed
    Local $hFile
    If IsString($File) Then
    $hFile = FileOpen($File, $FO_OVERWRITE)
    Else
    $hFile = $File
    EndIf
    If $hFile = -1 Then Return SetError(1, 0, 0)

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

    ; Write array data to file
    Local $ErrorSav = 0
    Switch $iDims
    Case 1
    For $x = $i_Base To $i_UBound
    If FileWrite($hFile, $a_Array[$x] & @CRLF) = 0 Then
    $ErrorSav = 3
    ExitLoop
    EndIf
    Next
    Case 2
    Local $s_Temp
    For $x = $i_Base To $i_UBound
    $s_Temp = $a_Array[$x][0]
    For $y = 1 To $iDims
    $s_Temp &= $s_Delim & $a_Array[$x][$y]
    Next
    If FileWrite($hFile, $s_Temp & @CRLF) = 0 Then
    $ErrorSav = 3
    ExitLoop
    EndIf
    Next
    EndSwitch

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

    ; Close file only if specified by a string path
    If IsString($File) Then FileClose($hFile)

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

    ; Return results
    If $ErrorSav Then Return SetError($ErrorSav, 0, 0)
    Return 1
    EndFunc ;==>_FileWriteFromArray
    #ce

    [/autoit]

    SollErgebnis

    Spoiler anzeigen

    Hannes|Holger|Jon|Maik|mr.nobody|stefan
    spielen|schreiben|gammeln|schlafen|ruhen|rennen

    IstErgebnis

    Spoiler anzeigen

    Hannes|Holger|Jon
    spielen|schreiben|gammeln

  • Monitorauflösung künstlich erhöhen?

    • WiDDoW
    • 12. Juni 2012 um 19:02
    Zitat von Xorianator

    Oder probier:
    WimSetState("fenstername", @SW_Maximize)


    das werd ich auf jedenfall mal versuchen, wobei ich noch keine ahnung hab wie sich das auf das Bild überhaupt auswirkt.
    aber auch Infinite_Screen sieht recht interessant aus - werd ich mir mal anschauen

    thx

  • Monitorauflösung künstlich erhöhen?

    • WiDDoW
    • 11. Juni 2012 um 22:33
    Zitat von chip

    1. Was hat das mit Autoit zu tun?
    2. Was daran ist ein Autoitprojekt?

    naja... keine ahnung...

    Vielleicht weil ich dachte es gibt keine dummen fragen (nur dumme Antworten!).
    Vielleicht auch weil ich dachte Fragen kostet ja nix.
    Vielleicht hab ich ja auch vermutet das so eine antwort kommt und direkt dazu geschrieben "...und weiß auch gar nich ob es überhaupt mit autoit umsetzbar ist..."
    Vielleicht ja auch weil ich weiß, das ich mit autoit den monitor abschalten kann bzw.
    vielleicht weil schon weiß dass man (mindestens) die Auflösung nach unten verändern kann.
    Vielleicht auch weil ich dachte... man könnte sowas wie eine Remoteverbindung machen. So alla VNC mit der ip 127.0.0.1 In so einem Fall bestimmt ja auch die Software wie hoch die Monitorauflösung ist.

    @Marsi - es geht hauptsächlich um eine Anwendung die sich lediglich im Vollbild ausführen lässt und sich auch nicht in der größe ändern lässt

  • Monitorauflösung künstlich erhöhen?

    • WiDDoW
    • 11. Juni 2012 um 20:11

    Mahlzeit,

    also ich suche irgendeine Möglichkeit wie ich mit meinem 1366 * 768 Pixel (Notebook)Monitor eine gescheite auflösung von 1280 *1024
    hinbekomme.
    Hintergrund: Ich habe von berufswegen viele Anwendungen die sich nicht in der Fenstergröße anpassen lassen und auf 1280 * 1024 voreingestellt sind. Wenn ich solche anwendungen starte fehlt mir jedesmal am unteren Bildschirmrand wichtiger Inhalt.

    Ich weiß was jetzt kommt: "kauf dir nen gescheiten TFT und stell den daneben" aber das ist leider keine Option weil ich mit meinem Notebook auch viel auf reisen bin. Also hab ich mal gegooglet nach einem "virtuellen Monitor" oder etwas ähnlichem. Bin aber nicht wirklich fündig geworden.

    Ich suche also irgendeine möglichkeit eine höhere auflösung vorzugaukeln als ich habe und wenn ich zB die Maus in die unterste Bildschirmzeile ziehe, der Monitorausschnitt den mein kleiner Notebook TFT darstellen kann, mit nach unten wandert. Versteht ihr was ich mein?

    Ich habe leider bisher 0,0 ansatzpunkte und weiß auch gar nich ob es überhaupt mit autoit umsetzbar ist - aber das wäre hier meine ideale vorstellung.

    Vielleicht hat ja irgendjemand eine idee - und wenn es nur ein Autoit befehl ist.
    Vielleicht kennt auch jemand Software die mir in dem Falle helfen könnte.

    thx WiDDoW

  • Frage zu "GuiCtrlCreateObj" (script pausiert nach rechtsklick im Objekt)

    • WiDDoW
    • 7. Juni 2012 um 17:47
    Zitat von m-obi


    Und _IEBodyReadText($oIE) klappt auch nicht?

    Übriegens funktioniert das Send("w") nicht, weil er es ja an die Gui sendet und nicht an das Obj.


    ich hab mich eben mal ins Intranet eingewählt und so wie es aussieht scheint es damit zu funktionieren.
    und das ganze sogar viel besser und eleganter als mit dem blöden rechtsklick (der mir zwar von anfang an nicht sehr gefallen hat, aber
    da auch der Qellcode die info die ich auslesen wollte nicht angezeigt hat, dachte ich es gibt gar keine andere wahl)

    Aber ne so... gefällt mir sehr gut - hätt ich selbst drauf kommen müssen, aber ich bin dann vielleicht auch zu schnell auf eine idee fixiert und überseh sowas dann.

    also: supi vielen Dank
    can be closed

    WiDDoW

  • Frage zu "GuiCtrlCreateObj" (script pausiert nach rechtsklick im Objekt)

    • WiDDoW
    • 7. Juni 2012 um 12:18

    ja - der rechtsklick funktioniert bei mir auch, aber danach ist pause angesagt bis man das kontextmenü selbst irgendwie wieder schließt.

    Was ich halt blöd finde ist: das ganze würde funktionieren wenn man 2 scripte draus machen würde. das erste script erstellt die GUI und das enthaltene Objekt - also die IE instanz und das 2. Script führt den rechtsklick aus und drückt "w" für "allesAuswählen" und dann noch kopieren und schon gehts. aber das würde ich ungern machen, weil sich das in meinen ohren nach pfusch klingt - da muss es eine saubere lösung geben


    Auszug aus der deut. HilfeDatei von GUICtrlCreateObj "...Das Objekt kann nur gesteuert werden, nutzt man 'methods' oder 'properties' an der $ObjectVar."
    kann mir dazu mal jemand näheres erklären? oder sagen wo ich hilfe bei der steuerung von objekten her bekomme? Denn vielleicht bekomme ich ja über diesen Weg sämtlichen
    Inhalt aus dem Objekt in die Zwischenablage (oder in eine Variable oder sonst was)

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™