Ich danke Dir / Euch - schönen Sonntag noch.
Beiträge von mm4040
-
-
ich dachte nur so ein einfaches verschieben mit der Maus ist für den Laien die einfachste Methode. Aber "Bitnugger" - du hast wohl den Nagel auf den Kopf getroffen. Scheint wirklich ein mächtiges Tool zu sein. Ich werden mich der Sache mal annehmen. Viele Dank für das Feedback!
-
Also Gut das Programm heißt Tiny Pic und man kann ganz einfach Jpg Bilder in das Fenster von tiny Pic ziehen - dann werden sie gleich komprimiert.
Mit "_WinAPI_ShellOpenFolderAndSelectItems" kann ich im Explorer einen Ordner öffen und alle *jpg Bilder werden gleich selektiert. Jetzt wollte ich nur die Bilder auf das Fenster von Tiny Pic ziehen. Das wäre der simpelste Weg - dachte ich. Aber wenn ich lese , das Bitnugger als Poweruser selbt stundenland an so einer Funktion sich probiert hat, dann bin ich ja erleichtert.
Ich schaue mir mal das _File DragDrop an.
Danke Bitnugger für deine Ehrlichkeit ! Sowas schätze ich sehr.
-
Du hat natürlich recht, aber das andere Programm / Fenster erwartet die Daten per Maus / Drag &Drop.
Copy/Paste funktioniert nicht
-
Nimm zum Beispiel das Script aus der Hilfe von _"WinAPI_ShellOpenFolderAndSelectItems"
-
Das Fenster ist der ganz normale Explorer, ich weiß bloß nicht wie ich die Dateien mit der Maus erfassen kann
-
Hallo Leute
Habe das Problem ,dass ich mit dem Befehl _WinAPI_ShellOpenFolderAndSelectItems zwar Dateien selektieren und markieren kann.
Jetzt muss ich diese markierten Dateien aber mit dem Mauszeiger auf ein anderes Fenster ziehen.
Also nicht mit Copy/Paste sondern mit der Mouse. Wie bekomme ich denn die Koordinaten von den selektieren Datein heraus.
Jetzt habe ich mir schon die Finger rund gegoogelt. Ich konnte bis jetzt keinen vernünftigen Ansatz/Befehl finden.
(Als Codebeispiel könnt ihr das Beispiel aus der "Autoit Hilfe -WinAPI_ShellOpenFolderAndSelectItems" entnehmen)
Wäre euch für Ideen sehr dankbar, weil mich das Thema schon 2 Tage beschäftigt.
-
Danke du hast mir sehr geholfen,
wenn ich nämlich die Reihenfolge vertausche , dann kommt Müll raus
$b1 = "3E8"
Local $Ergebnis = Dec($b1)+InputBox("Testzahl", "", "")
MsgBox(0,"", "Hex = " & Hex($Ergebnis) & @CR)
-
ohen Worte
Danke
-
Natürlich will ich euch nicht raten lassen.
die TCPRecv-Funktion funktioniert, auch die Eingabebox($InputDifferenz) funktioniert.
Ich habe ja eine Variable deshalb kann ich nicht mit 0x..+ 200 Rechnen
Es wird ja richtig gerechnet, aber ich muss das Ergebnis 1200 wieder in Hex umrechnen und das funktioniert nicht
-
Hallo,
ich habe Probleme beim Rechnen mit Hexadezimal Zahlen und Dezimal Zahlen.
Wie ich es auch wende und drehe , es funktioniert nicht.
Problem:
Ich lese aus einem Gerät einen Hex Wert aus. zb. 3E8=1000
Rechne den Wert in Dezimal um und addiere über eine Inputbox einen Wert dazu z.B 200 dazu
Das Ergebnis ist richtiger Weise 1200 ( Was ein Wunder)
Jetzt möchte ich die 1200 wieder in Hex umrechnen und bekomme immer nur "0000"
Kann mir jemand Helfen ?
$rec = TCPRecv($Socket, 2048)
TCPSend($Socket, Chr(0x02) & "s{ 00 01 " & $HexDI & "}" & $aParameter[$y] & Chr(0x03)) ;
$rec = TCPRecv($Socket, 2048)
If $y = 3 Then ;X-POs
;~ $b1=$rec
;~ ConsoleWrite("Länge" & StringLen($rec))
$b1 = StringMid($rec, 26, StringLen($rec) - 26)
ConsoleWrite("1 Wert ausgelesen (Hex) -> " & $b1 & @CRLF); zB. 1000=3E8
ConsoleWrite("2 Wert umrechnen in(DEC) -> " & Dec($b1) & @CRLF);
ConsoleWrite("3 Wert aus Eingabebox -> " & $InputDifferenz & @CRLF)
Local $Ergebnis = Dec($b1) + $InputDifferenz ; Addition der beiden Werte
ConsoleWrite("4 Ergebnis=" & $Ergebnis & "->Hex=" & Hex($Ergebnis) & @CR)
EndIf
TCPCloseSocket($Socket)
TCPShutdown()
------------- Ausgabe-----------
1 Wert ausgelesen (Hex) -> 3E8
2 Wert umrechnen in(DEC) -> 1000
3 Wert aus Eingabebox -> 200
4 Ergebnis=1200->Hex=0000
-
Hey , Danke - gelesen habe ich das schon mit der ControlID, aber ich habe nicht verstanden, warum es dann wenn ich den Checkboxnamen als Text in die Anweisung schreibe funktioniert.? Ich nehme aus dem Array doch auch nur den Text. ?? Hmm - ist halt so.
Trotzdem Danke -
Hallo
ich möchte gern den Namen (Variabel) aus einem Array verwenden um eine Checkbox anzusprechen.
Wenn ich den Namen direkt verwende wird die Checkbox aktiviert, wenn ich den Namen der Checkbox aus dem Array verwenden möchte, geht es nicht.
Hmmm.
Kann mit jemand helfen?Code
Alles anzeigen#include <Array.au3> #include<GUIConstants.au3> GUICreate("gui", 400,400) Global $Label1 = GUICtrlCreateCheckbox("box1", 20, 10, 50, 12) Global $Label2 = GUICtrlCreateCheckbox("box2", 20, 30, 50, 12) GUISetState(@SW_SHOW) Dim $aBefehl[2][2]=[ _ ['test1','$Label1'], _ ['test2','$Label2']] _ArrayDisplay($aBefehl) ;~ GUICtrlSetState($Label1,$GUI_CHECKED); damit funktioniert es GUICtrlSetState($aBefehl[0][1],$GUI_CHECKED); mit dem Namen $Label1 aus dem Array funktioniert es nicht. While 1 $nMsg = GUIGetMsg() Switch $nMsg Case -3 Exit EndSwitch WEnd
-
Danke "Meister" SEuBo
So funktioniert es. Den Code muss ich jetzt erstmal auf mich wirken lassen.
Leider ließt man recht wenig über den Date Time Picker.Danke
-
Kann mir mal jemand bei dem Date Time Picker auf die Sprünge helfen ?
Mit dem Date Time Picker wird einfach nicht die Differenz (in Tagen) berechnet. Mit dem normalen Kalender funktioniert es aber.
Hat jemand Erfahrung mit dem Teil?Danke schon mal.
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#cs
Es soll die Differenz der beiden Datumswerte in Tagen berechnet werden#CE
[/autoit] [autoit][/autoit] [autoit]
#include <GuiEdit.au3>
#include <Date.au3>
#include <ButtonConstants.au3>
#include <GUIConstants.au3>
#include <GuiDateTimePicker.au3>
Opt("GUIOnEventMode", 1)
Opt("GUICloseOnESC", 0)$Form1 = GUICreate(@ScriptName, 500, 500, 150, 150)
[/autoit] [autoit][/autoit] [autoit]
;~ $ETag = GUICtrlCreateMonthCal(@YEAR & @MON & @MDAY, 300, 20, 175, 175,0); damit geht es
$ETag=GUICtrlCreateDate("2010/02/13", 156, 56, 127, 24, $DTS_SHORTDATEFORMAT)
GUICtrlCreateLabel("Start",100,58,40,17)
$LTag=GUICtrlCreateDate("2010/02/28", 156,100, 127, 24, $DTS_SHORTDATEFORMAT)
;~ $LTag= GUICtrlCreateMonthCal(@YEAR & @MON & @MDAY, 300, 230, 175, 175,0); damit geht es
GUICtrlCreateLabel("Ende",100,100,40,17)
$diff=GUICtrlCreateInput("",156,150,40,24)
GUICtrlCreateLabel("Differenz",90,150,50,17)
GUICtrlSetTip(-1,"Differenz in Tagen")
;## Button
Global $btn1 = GUICtrlCreateButton('Differenz berechnen', 10, 20)
GUICtrlSetOnEvent($btn1, "_Start")
Global $btn1 = GUICtrlCreateButton('Abbrechen', 10, 60)
GUICtrlSetOnEvent($btn1, "_Abbrechen")
GUISetState()
GUISetOnEvent($GUI_EVENT_CLOSE, "_GUIEvents")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "_GUIEvents")
GUISetOnEvent($GUI_EVENT_RESTORE, "_GUIEvents")
GUISetState(@SW_SHOW)Func _GUIEvents();==> Knöpfe Maximieren Minimieren Ende
[/autoit] [autoit][/autoit] [autoit]
Select
Case @GUI_CtrlId = $GUI_EVENT_CLOSE
Exit
Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
Case @GUI_CtrlId = $GUI_EVENT_RESTORE
EndSelect
EndFuncFunc _Abbrechen();==> Abbruch Programm verlassen.
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncFunc _Start() ;==> Brechnung "Die nicht Funktioniert"
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
_GUICtrlEdit_InsertText($diff,_DateDiff("D",GUICtrlRead($ETag),GUICtrlRead($LTag)))ConsoleWrite(GUICtrlRead($ETag)&@CRLF)
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite(GUICtrlRead($LTag)&@CRLF)
ConsoleWrite($diff&@CRLF)EndFunc
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit]
Sleep(50)
WEnd -
geht es vielleicht schneller es wieder irgendwie in ein Array zu schreiben und am schluß in eine Datei.?
-
Danke Bug Fix
die 64 Dimensionen sollen reichen
-
ich habe es jetzt mal nur mit 2000 Datensätzen durchlaufen lassen . Es hat sich zeitlich nichts geändert und die CPU Last ist weiterhin auf 100 %.
-
ich hoffe ich hab es jetzt richtig gemacht
Spoiler anzeigen
[autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]#include <File.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>
#include <Date.au3>
#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>
#include <ButtonConstants.au3>
#include <GUIConstants.au3>
#include <GuiEdit.au3>
#include <ProgressConstants.au3>
#include <GUIComboBox.au3>
;~ #include <Math.au3>Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]
Opt("GUICloseOnESC", 0)
Global $logfile, $c_LCNoread, $c_IDNoread, $c_IFNoread, $aSchalen[1], $aRundenCounter
#Region ### START Koda GUI section ### Form=D:\Software\Autoit\Scripte\Entwicklung\Koda_Form\CodeAnalyse.kxf$Form1_1_1 = GUICreate("CodeAnalyse", 1033, 247, 192, 124)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUISetFont(8, 400, 0, "Arial")
GUISetBkColor(0x808080)
;~ $progressbar1 = GUICtrlCreateProgress(100,400, 200, 20)
GUICtrlSetColor(-1, 32250); not working with Windows XP Style
GUISetOnEvent($GUI_EVENT_CLOSE, "_GUIEvents")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "_GUIEvents")
GUISetOnEvent($GUI_EVENT_RESTORE, "_GUIEvents")GUICtrlSetData(-1, "")
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetFont(-1, 6, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0000FF)
$Label1 = GUICtrlCreateLabel("Pfad", 16, 32, 26, 18)
;~ $Pfad = GUICtrlCreateInput("", 60, 32, 425, 22)
$Edit1 = GUICtrlCreateEdit("", 800, 32, 200, 200)
;~ $Pfad1 = GUICtrlCreateCombo("", 48, 24, 145, 25)GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
[/autoit] [autoit][/autoit] [autoit]
$Input2 = GUICtrlCreateInput("", 248, 136, 217, 21);System
$Input3 = GUICtrlCreateInput("", 472, 136, 217, 21);Datum
$Input4 = GUICtrlCreateInput("", 24, 200, 217, 21);Leitcode
$Input5 = GUICtrlCreateInput("", 248, 200, 217, 21);Identcode
$Input6 = GUICtrlCreateInput("", 472, 200, 217, 21);Identifire
$Input7 = GUICtrlCreateInput("", 24, 104, 663, 21);Statuszeile
$Input8 = GUICtrlCreateInput("", 24, 168, 217, 21);Anzahl Datensätze
$Input9 = GUICtrlCreateInput("", 24, 136, 217, 21);PZ Name
$Input10 = GUICtrlCreateInput("", 248, 168, 217, 21);Norread
GUICtrlSetColor(-1, 0xFF0000)$btn1 = GUICtrlCreateButton("Datenanalyse...", 520, 32, 100, 40, $BS_ICON)
[/autoit] [autoit][/autoit] [autoit]
;~ GUICtrlSetImage(-1, "shell32.dll", 23)
GUICtrlSetOnEvent($btn1, "_checkFile")
$btn2 = GUICtrlCreateButton("Logfile.", 650, 32, 100, 40, $BS_ICON)
;~ GUICtrlSetImage(-1, "shell32.dll", 23)
GUICtrlSetOnEvent($btn2, "_openLog")
;Combobox füllen
$Pfad = GUICtrlCreateCombo("", 48, 24, 245, 25)
$var=_FileListToArray("c:\temp\","*rw.dat",1)
;~ _ArrayDisplay($var)
For $i = 1 To $var[0]
_GUICtrlComboBox_AddString($Pfad, $var[$i])
nextGUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]#EndRegion ### END Koda GUI section ###
[/autoit] [autoit][/autoit] [autoit]
Func _GUIEvents();==> Knöpfe Maximieren Minimieren Ende
Select
Case @GUI_CtrlId = $GUI_EVENT_CLOSE
Exit
Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
Case @GUI_CtrlId = $GUI_EVENT_RESTORE
EndSelect
EndFunc ;==>_GUIEvents
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitEndSwitch
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
WEnd
; - Datei einlesen;- Auswertung Beginn
[/autoit] [autoit][/autoit] [autoit]
Func _checkFile()Dim $c_LCNoread = 0
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Dim $c_IDNoread = 0
Dim $c_IFNoread = 0
Dim $file = "c:\temp\"&GUICtrlRead($Pfad)
Dim $fileline = _FileCountLines($file)
Dim $aRecords
Dim $c_Leerschale = 0
;-löschen der Feldinhalte
_GUICtrlEdit_SetText($Edit1, "--- Start ---"&@crlf)
_GUICtrlEdit_SetText($Input2, "")
_GUICtrlEdit_SetText($Input3, "")
_GUICtrlEdit_SetText($Input4, "")
_GUICtrlEdit_SetText($Input5, "")
_GUICtrlEdit_SetText($Input6, "")
_GUICtrlEdit_SetText($Input7, "")
_GUICtrlEdit_SetText($Input8, "")
_GUICtrlEdit_SetText($Input9, "")
_GUICtrlEdit_SetText($Input10, "")
;- starte Berechnung
_GUICtrlEdit_InsertText($Input7, "Berechnung läuft ..... ")
_FileReadToArray($file, $aRecords)$fileline = _FileCountLines($file)
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlEdit_InsertText($Input9, $aRecords[2])
_GUICtrlEdit_InsertText($Input2, $aRecords[3])
_GUICtrlEdit_InsertText($Input3, StringMid($aRecords[4], 6, 11))
$filename = "PZ" & StringMid($aRecords[2], 7, 3) & "_SYS" & StringMid($aRecords[6], 10, 2) & "_" & StringMid($aRecords[4], 6, 11) & ".log"
$logfile = ("c:\temp\" & $filename)
_FileCreate($logfile)
FileOpen($logfile, 1)
;~ $aRundenCounter[1]=0
;~ for $i = 6 to 500
For $i = 6 To $fileline
$str = StringSplit($aRecords[$i], ";")_ArrayAdd($aSchalen,$str[4])
[/autoit] [autoit][/autoit] [autoit]
;
If $str[24] = "" And $str[43] = "" And $str[62] = "" Then
$c_Leerschale = $c_Leerschale + 1
_GUICtrlEdit_InsertText($Edit1, $str[1] & " Index=" & $str[4] & @CRLF)
EndIf
;- Leitcode fehlt
If $str[24] = "" Then
$str[24] = "Code fehlt "
$c_LCNoread = $c_LCNoread + 1EndIf
[/autoit] [autoit][/autoit] [autoit]
;- Identcode fehlt
If $str[43] = "" Then
$str[43] = "Code fehlt "
$c_IDNoread = $c_IDNoread + 1
EndIf
;- Identifire fehlt
If $str[62] = "" Then
$str[62] = "Code fehlt"
$c_IFNoread = $c_IFNoread + 1
EndIf
;~ _ArrayAdd($aSchalen,$str[4])
;~
; - Schreiben in LogfileFileWrite($logfile, "Zeit=" & $str[1] & " ;Index=" & $str[4] & ";LC=" & $str[24] &";IC=" & $str[43] & ";Code3=" & $str[62] & @CRLF)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;--- Runden zählenNext; Schleifen ende nächster Datensatz
[/autoit] [autoit][/autoit] [autoit]
FileClose($logfile)
$ReadGesamt =$fileline-6
_GUICtrlEdit_InsertText($Input8, "Anzahl Datensätze = " & $fileline-6)
_GUICtrlEdit_InsertText($Input4, "Anzahl ID-Code fehlt = " & $c_IDNoread& " % "&StringLeft(($c_IDNoread/$ReadGesamt)*100,5))
_GUICtrlEdit_InsertText($Input5, "Anzahl LC-Code fehlt = " & $c_LCNoread& " % "&StringLeft(($c_LCNoread/$ReadGesamt)*100,5))
_GUICtrlEdit_InsertText($Input6, "Anzahl IF-Code fehlt = " & $c_IFNoread& " % "&StringLeft(($c_IFNoread/$ReadGesamt)*100,5))
_GUICtrlEdit_InsertText($Input10, "Noread = " & $c_Leerschale& " % "&StringLeft(($c_Leerschale/$ReadGesamt)*100,5))
_GUICtrlEdit_SetText($Input7, " - Fertig - " & "Logfile unter -> " & $logfile)EndFunc ;==>_checkFile
[/autoit] [autoit][/autoit] [autoit]Func _openLog()
[/autoit] [autoit][/autoit] [autoit][/autoit]
;~ MsgBox("","",$logfile)
Run("uedit32.exe" & " /c " & $logfile, "", @SW_MAXIMIZE)
EndFunc ;==>_openLog -
Bug Fix
gibt es ein Grenze von Einträge im Array die man nicht überschreiten sollte ?
Wieviele Datensätze kann man einlesen und verarbeiten. ?