Beiträge von autoBert
-
-
Also,normal müsste ja wenn man z.b. http://www.google.de eingibt,die Meldung kommen: Diese Webseite enthält möglicher Weise illegalen Content!
Diese kommt aber nicht!

Bei Google.de kommt zwar je nach Schabfage viel Müll, aber mein IE warnt mich auch nicht davor.
Aber was hat das mit der fehledenen Fehlerbeschreibung zu tun,mfg autoBert
-
Hallo Vamp,
ZitatErfolg: Gibt die Position des Unterstrings zurück
Quelle Hilfe zu StrInStrwenn du das File in Array einliest und jede Zeile einzeln durchsuchst, kannst du dir ja auuch den Schleifenzähler merken. Ansonsten, die Position - grösstmögliche Zeilenlänge, darauf achten dass Egebnis grösser 0 ist sonst 1 als Startposition vewenden,
mfg autoBert
-
Weiss einer den Fehler?

Und jetzt mal das Forum fragen,schlimm? Nein.
wirklich nicht, du solltest nur auch uns den Fehler bechreiben, das Skipt sieht in Ordnung aus, lässt sich ohne Fehlermeldung starten und beenden,
mfg autoBert -
Hallo HPU,
Leider immer noch:
C:\Programme\AutoIt3\Examples\Tests\HPU\
C:\Programme\AutoIt3\Examples\Tests\HPU\Intro_versuch.exe ist keine zulässige Win32-Anwendung.Davon gehe ich doch aus. Wäre schlimm, wenn nicht!
wie du siehst it es aber so,
mfg auztoBert
-
Hallo Molaynox,
hier eines meiner Beispiel-Skripte etwa abgeändert:
Spoiler anzeigen
[autoit]#cs -----------------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.6.1
[/autoit] [autoit][/autoit] [autoit]
Author: AutoBert: http://www.autoit.de/index.php?page=Thread&threadID=21667Skriptbeispiel für den Umgang mit FileOpenDialog, GUICtrlCreateListView, GUICtrlCreateListViewItem,
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg speziell für das Event $GUI_EVENT_DROPPED 347
#ce -------------------------------------------------------------------------------------------------------------------------
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <GuiListView.au3>
#include <File.au3>
#include <array.au3>
#include <GDIPlus.au3>Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]Global $msg, $message, $var, $aFiles, $idfrmMain, $sSourcePath, $aItem
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Global $szDrive, $szDir, $szFName, $szExt, $hPic = -99
Global $aDropFiles[1], $WM_DROPFILES = 0x233$idfrmMain = GUICreate("BMP-, GIF- & JPG-Viewer", 824, 550, -1, -1, -1, $WS_EX_ACCEPTFILES)
[/autoit] [autoit][/autoit] [autoit]
Local $idfilemenu = GUICtrlCreateMenu("&Datei")
Local $idfileitem = GUICtrlCreateMenuItem("Öffnen", $idfilemenu)
GUICtrlSetState(-1, $GUI_DEFBUTTON)
Local $idexititem = GUICtrlCreateMenuItem("Beenden", $idfilemenu)
Local $idLV_Files = GUICtrlCreateListView("Name: |Pfad", 519, 5, 300, 490, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT))
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
Local $idbtnShow = GUICtrlCreateButton("&Zeige Bild", 519, 500, 140, 25)
Local $idClearLV = GUICtrlCreateButton("&Listview &leeren", 669, 500, 140, 25)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
GUIRegisterMsg($WM_DROPFILES, "WM_DROPFILES_FUNC")
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_DROPPED
_FilesDropped()
Case $idfileitem$message = "Um mehrere Dateien auszuwählen, ist die Strg-Taste oder die Shift-Taste zu drücken."
[/autoit] [autoit][/autoit] [autoit]$var = FileOpenDialog($message, @MyDocumentsDir & "", "Bilder (*.jpg;*.bmp)", 1 + 4)
[/autoit] [autoit][/autoit] [autoit]
If @error Then
MsgBox(4096, "", "Keine Datei(en) ausgewählt")
Else
_GUICtrlListView_BeginUpdate($idLV_Files)
$aFiles = StringSplit($var, "|")
If $aFiles[0] > 1 Then ;trifft nur bei Mehrfachauwal zu
;$aFiles[0] enthält Anzahl der Strings
;$aFiles[1] enthält den Pfad für alle ausgewählten Bilder
;$aFiles[2] enthält 1. Bild
;$aFiles[n+1] enthält n. Bild;Rückgabe des Fileopenialogs in einzzenlne Strings für Array splitten
[/autoit] [autoit][/autoit] [autoit]
;_ArrayDisplay($aFiles) ;Array anzeigen nur zu Verständnisuwecken evtl. aktivierenFor $i = 2 To $aFiles[0]
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateListViewItem($aFiles[$i] & "|" & $aFiles[1], $idLV_Files)
Next
Else ;nur eine Datei ausgewählt
ConsoleWrite($aFiles[1] & @CRLF)
_PathSplit($aFiles[1], $szDrive, $szDir, $szFName, $szExt)
GUICtrlCreateListViewItem($szFName & $szExt & "|" & $szDrive & $szDir, $idLV_Files)
EndIf
_GUICtrlListView_SetColumnWidth($idLV_Files, 0, $LVSCW_AUTOSIZE)
;setzt die 1 Spalte auf die benötigte Breite des längsten Eintrags
_GUICtrlListView_SetColumnWidth($idLV_Files, 1, 0) ;zweite Spalte versteckt
_GUICtrlListView_EndUpdate($idLV_Files)
EndIf
Case $idClearLV
_GUICtrlListView_DeleteAllItems($idLV_Files)
Case $idbtnShow
$aItem = _GUICtrlListView_GetItemTextArray($idLV_Files)
_ShowPic($aItem)
Case $GUI_EVENT_CLOSE, $idexititem
Exit
EndSwitch
WEndFunc _ShowPic($aItem)
[/autoit] [autoit][/autoit] [autoit]
Local $sImageName = $aItem[2] & "\" & $aItem[1]
;$aItem[0] enthält Anzahl der Spalten [$aIem[1] die 1. Spalte usw.
;_ArrayDisplay($aItem) nur zu Verständnisuwecken evtl. aktivieren
ConsoleWrite("Pfad zur Datei:" & $aItem[2] & "\" & $aItem[1] & @CRLF) ;nur zu Verständnisuwecken evtl. deaktivieren
_GDIPlus_Startup()
Local $hImage = _GDIPlus_ImageLoadFromFile($sImageName)
Local $iX = _GDIPlus_ImageGetWidth($hImage)
Local $iY = _GDIPlus_ImageGetHeight($hImage)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
Local $iRatio = $iX / $iY
ConsoleWrite("Orig.: " & $iX & " " & $iY & " " & $iRatio & @CRLF)
If $iRatio >= 1 Then
$iX = 500
$iY = $iX / $iRatio
Else
$iY = 300
$iX = $iY * $iRatio
EndIf
ConsoleWrite("Neu: " & $iX & " " & $iY & " " & $iRatio & @CRLF)
If $hPic <> -99 Then
GUICtrlSetImage($hPic,$sImageName)
ControlMove($idfileitem,"",$hPic,5,5,$iX,$iY)
Else
$hPic = GUICtrlCreatePic($sImageName, 5, 5, $iX, $iY)
EndIf
EndFunc ;==>_ShowPic#region ;Drag and Drop und Doppelklick
[/autoit] [autoit][/autoit] [autoit]
Func WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam)
ConsoleWrite("WM_DropFiles_Func " & @CRLF)
Local $nSize, $pFileName
Local $nAmt = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", 0xFFFFFFFF, "ptr", 0, "int", 255)
For $i = 0 To $nAmt[0] - 1
$nSize = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", 0, "int", 0)
$nSize = $nSize[0] + 1
$pFileName = DllStructCreate("char[" & $nSize & "]")
DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", DllStructGetPtr($pFileName), "int", $nSize)
ReDim $aDropFiles[$i + 1]
$aDropFiles[$i] = DllStructGetData($pFileName, 1)
$pFileName = 0
Next
EndFunc ;==>WM_DROPFILES_FUNCFunc _FilesDropped()
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("Bin da " & @CRLF)
Local $szDrive, $szDir, $szFName, $szExt, $split
_GUICtrlListView_BeginUpdate($idLV_Files)
For $i = 0 To UBound($aDropFiles) - 1
$split = _PathSplit($aDropFiles[$i], $szDrive, $szDir, $szFName, $szExt)
$szExt = StringUpper($szExt)
;;consolewrite($aDropFiles[$i] & ", " & $szExt & @CRLF)
Switch $szExt
Case ".JPG", ".BMP", ".GIF"
GUICtrlCreateListViewItem($szFName & $szExt & "|" & $szDrive & $szDir, $idLV_Files)
EndSwitch
Next
_GUICtrlListView_SetColumnWidth($idLV_Files, 0, $LVSCW_AUTOSIZE)
;setzt die 1 Spalte auf die benötigte Breite des längsten Eintrags
_GUICtrlListView_SetColumnWidth($idLV_Files, 1, 0) ;zweite Spalte versteckt
_GUICtrlListView_EndUpdate($idLV_Files)
EndFunc ;==>_FilesDroppedFunc WM_NOTIFY($hWnd, $msgID, $wParam, $lParam)
[/autoit]
Local $tagNMHDR, $event, $hwndFrom, $code, $aItem
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return 0
$code = DllStructGetData($tagNMHDR, 3)
If $wParam = $idLV_Files And $code = -3 And _GUICtrlListView_GetSelectedCount($idLV_Files) > 0 Then
$aItem = _GUICtrlListView_GetItemTextArray($idLV_Files)
;;consolewrite($aItem[1] & ", " & $aItem[3] & @CRLF)
_ShowPic($aItem)
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
#endregion ;Drag and Drop und DoppelklickDie Func _ShowPic ist der fü dich intereante Teil,
mfg autoBert
-
und das für beliebig viele arrays mit 3 - 6 elementen
nochmals
[autoit]UBound
[/autoit]löst dieses Problem
0 für nichts, 1 für ein paar, 2 für 2 paare, [...] 9 für royal flush
schön, wenn du
[autoit]_ArraySort,1($array,
[/autoit]einsetzt ist zumidest hiefür der grösste Wert an 1, Stelle. Wenn du jetzt die Wertigkeiten für die anderen "Spalten" auch aufsteigend definiersr und links mit 0 auf 2 Stellig auffüllst ist das ganze Array abteigend richtig sortiert.
Stell einfach einmal ein paar Arrays ein, dann zeige ich dir an einem Skript-Beispiel wie ich das meine,mfg autoBert
-
Flash-Onjecte lassen ich afaik nicht resizen,
mfg autoBert
-
da weder spielerzahl noch die elemente der 2. dimension konstant sind
Schau dir dazu
[autoit]UBound
[/autoit]an.
[autoit]
Wenn du in die 2. Dimension als kommagetrennten String speicherst und Wete die 2-stellig ein können (im Falle von nur einer Stelle) vorne mit 0 aufüllst, kannst du mit_Arraysort
[/autoit]sortieren. Da ich die Pokerrgeln nicht kenne musst du diese Annahme testweise prüfen. Evtl. ist auch die Definition der Wertigkeiten anzupassen 1 ist am schlechtesten 99 am beten,
mfg autoBert
-
Hallo ,
herzlich willkommen im Forum und viel Spass mit AutoIt.
Hier kannst du dir die Hilfe herunterladen.
Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebeeSchau dir in der Hilfe
[autoit]_FilelistToArray
[/autoit]an,
mfg atoBert
-
Wenn ich eine externe Anwendung habe - im konkreten Fall Lotus Notes - und möchte dort ein Feld beschreiben, welches aber erst mal nicht sichtbar ist, kann ich dieses dann direkt adressieren ?
Ich verstehe nicht wie du von einem nicht sichtbaren Feld ScreenShots machen konntest und dann auch noch mit AU3-InfoTool die nötigen infos ermitteln konntest, Da du sie aber hast solltest du übetprüfen ob ClassnameNN bzw. Advanced (Class) immer das gleiche ergeben, da man afair auch darüber Control-Funktionen ansprechen kann,
mfg autoBert
-
Hallo
wenn ich dieses Skript:
Spoiler anzeigen
[autoit]#include <_XMLDomWrapper.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>main()
[/autoit] [autoit][/autoit] [autoit]
Func main()
Local $sFile = "C:\Programme\AutoIt3\Examples\XMLTest.txt"
If FileExists($sFile) Then
$ret = _XMLFileOpen($sFile)
If $ret = 0 Then Exit$wert = _XMLGetValue("/container/wert3")
[/autoit] [autoit][/autoit] [autoit]MsgBox(4096, "test", $wert)
[/autoit]
ConsoleWrite("Error"& _XMLError()&@CRLF)
Else
MsgBox(4096, "fehler", "not found")
EndIf
EndFunc ;==>mainlaufen lasse bekomme ich folgenden Fehlerstring in der Konsole ausgegeben:
ZitatErrorNo object passed to function _XMLGetValue
wenn ich in das Include-File:
[autoit]Func _XMLGetValue($strXPath)
[/autoit]
If not IsObj($objDoc) then
_XMLError("No object passed to function _XMLGetValue")
Return SetError(1,1,-1)
EndIfschaue wird auch klar warum. Die Funktion erwartet ein Object als Ünergabeoarameter, du übergibst aber einen String,
mfg autoBert
-
Hallo kofy,
herzlich willkommen im Forum und viel Spass mit AutoIt.
Hier kannst du dir die Hilfe herunterladen.
Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebeeund jetzt zu :
man könne mit Autoit sogar auf dem Bild schreiben, aber ich habe keine Funktion dazu gefunden.
Das kannst du mit GDIPlus-Gunktionen lösen, in meinem Snapshot-Tool )Link siehe Signatur)lege ich auf die Bilder damit Text,mfg atoBert
-
Wenn ich mit $SMALLSCREEN = True das Skript starte, dann kann ich (oder AutoBert) kein 'abort' eingeben um die KI zu beenden.
An die Version $SmallScreen = True braucht ihr keine Arbeit investieren, da ich anscheinend der einzige bin, der nur auf dem NetBook skriptet. Ich passe mir die GUI in der Schach.au3 entsprechend an. Anstatt unten ist die Inpuntbox und der Hilfe-Button bei mir rechts,mfg autoBert
-
Hallo WebFish,
herzlich willkommen im Forum und viel Spass mit AutoIt.
Hier kannst du dir die Hilfe herunterladen.
Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebeeund jetzt zu:
Die Werte tauchen nicht im Quelltext auf (nur onscreen).
Am besten fragst du den zuständigen Admin ob er dir die Zahlen in einer Datei zur Verfügung stellen kann, sollte ja eigentlich kein Problem sein, da du sie ja auch "onscreen" anschauen darfst. Ansonsten must die Screenshots machen
[autoit]_ScreenCapture_Capture
[/autoit](und nach einer OCR-Lösung suchen, vielleicht wirst du ja auf AutoItScript.com fündig,
mfg autoBert
-
Hallo HPU,
leider:
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Du hast aber mit der Beta-Version compiled, glaube zwar nicht dass es daran liegt aber versch es noch einmal mit der Auswahl Production 3.3.6.1 (diese ist eh aktueller als die Beta)
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. PS.: Au3-Files brauchst du nicht vor dem Hochladen umbennen
mfg autoBert
-
Würde das Programm auch auf 32 Bit Rechner mit diesen Einstellungen laufen?
Ein User, der mein Programm betatesten wollte, meinte es würde nicht laufen.wenn ein Programm für 32-Bit kompiliert ist muss es auch auf 32-Bit-Systemen laufen, vorausgesetzt alle dafür benötigten Komponenten sind auf diesem System installiert. Du kannst ja das kleine Skript auf 32-Bit (aber bitte ohne UPX, sonst meckert warscheins der Virenscanner) kompilieren umbenennen nach Name.TXT (sonst kannst du es hier nicht hochladen) und dann hochladen. Da ja das Skript (aus Post #2) bei mir läuft kann ich es kurz testen, bin mir aber sicher es geht.
PS.: wie kommst du auf FacePalm, habe ich etwas überlesen?
mfg autoBert
-
Ich sehe, daa du ein Win XP 64-Bit hast. Versuche aber einmal es als 32-Bit Exe zu komilieren und die EXE zu starten,
mfg autoBert
-
Ich habe diverse Videos im .avi und .swf format und möchte diese über ein AutoIT GUI einfach zugänglich machen
AVI's machen bei AutoIt gerne Probleme da AutoIt anscheinend sehr hohe Ansprüche hat.
Für Flash kannst du ja mit dem Skript aus Shockwave Flash Object von @weedhead testen, ist zwar schon 4 Jahre alt, funktioniert aber gut,mfg (Auto)Bert
-
#include <GUIConstantsEx.au3> GUICreate("Test", 512, 288) $Flash = ObjCreate("testflash.swf") $FlashObj = GUICtrlCreateObj($Flash, 0, 0, 512, 288) $Flash.Movie = @ScriptDir & "\testflash.swf" $Flash.loop = true GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd
Es liegt an deinem Skript, mach es so und es klappt:Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]GUICreate("Test", 512, 288)
[/autoit] [autoit][/autoit] [autoit]
$Flash = ObjCreate("ShockwaveFlash.ShockwaveFlash.1") ;<=======
$FlashObj = GUICtrlCreateObj($Flash, 0, 0, 512, 288)
$Flash.Movie = @ScriptDir & "\testflash.swf"
$Flash.loop = true
GUISetState(@SW_SHOW)While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEndbeachte Zeile 4, da war der Fehler,
mfg autoBert