so wie du deine GUI augebaut hast, wird das Programm nur komplizierter als es eigentlich geht, ist zumindest meine Meinung..
Hierbei meine ich zB das Auswählen, der Person an die du senden möchtest per Combobox..
Ach btw, es heißt MessEnger ![]()
so wie du deine GUI augebaut hast, wird das Programm nur komplizierter als es eigentlich geht, ist zumindest meine Meinung..
Hierbei meine ich zB das Auswählen, der Person an die du senden möchtest per Combobox..
Ach btw, es heißt MessEnger ![]()
So, du möchtest den Code aus einer Anwendung auslesen..
Wo den aus der Anwendung? - wenn der Code in einer Grafik steht, geht das nicht, denn dann ist der Code nicht als Zahl gespeichert..
Gib mehr Details an, vielleicht den Namen des Programms/Anwendung, ein Screenshot falls man einen machen kann, etc etc
Wenn du noch mal mit so einer Antwort daher kommst, mir der man nichts anfangen kann, wird dir hier keiner mehr helfen..
1. Weil er nicht will und
2. Weil er nicht KANN, weil du außer "Code auslesen" und "aus einer Anwendung" bisher keine Informationen gebracht hast..
[MSIE_newline_end ]
von wo den auslesen? - Datei, Registry, Clipboard, Internet, Inputfeld, Inputbox, Editfeld, Listview?
Werd ein bisschen präziser, dann können wir die helfen.
Einen String an einen anderen dranhängen, kannst du mit "&"
Also so:
$IchBinDerOriginalString = "abcdefg"
$IchWerdeAngehaengt = "1234"
$IchBinDerNeueString = $IchBinDerOriginalString & $IchWerdeAngehaengt
[/autoit][autoit][/autoit][autoit][/autoit][MSIE_newline_end ]
ging noch kürzer oder?
wie wärs mit:
_SoundOpen(FileOpenDialog(...))
[MSIE_newline_end ]
Die Funktion einfach mit allen Buttons verknüpfen und gut is (bis auf den "=" oder "Enter" button)
[autoit]
Func Input()
GuiCtrlSetData($Input1,Guictrlread($Input1) & GuiCtrlRead(@Ctrl_ID))
Endfunc
[/autoit ]
ok i hab jetzt ein bisschen rumprobiert aber es funktioniert nicht..
jetzt hab ich mir gedacht, ob es nicht möglich wäre, das ganze über HTTP zu lösen, leider hab ich keine Ahnung wie denn das geht, aber ich wär euch dankbar wenn mir jemand einen kleinen Denkanstoß in die richtige Richtung geben könnte..
Oder habt ihr eine Idee wie ich das sonst "schön/gut" lösen könnte? Die Comboboxen sind mit JS geschrieben und die HTML-Seite besteht aus Frames.
In einem Frame muss man die Klasse etc auswählen und einem anderen wird das ganze dann angezeigt.
Ich häng euch nochmal die ganzen Dateien an und hier ist nochmal der Link: >>KLICH MICH< <
was willst du auswählen?
Du musst in die Form rein:
[autoit]$oForm = _IEFormGetObjByName($oIE,"NavBar")
[/autoit]Und dann weiters anstatt $oIE $oForm nehmen
ah das wusst ich nich ![]()
danke
[MSIE_newline_end ]
funktioniert irgendwie nicht:
Hier der Code den ich bis jetzt hab:
[spoiler]
[autoit]
#include
#include
#include
#include
#include
$oIE = _IECreateEmbedded()
[/autoit][autoit][/autoit][autoit]#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("Supplierungen", 930, 448, 192, 124)
$Group1 = GUICtrlCreateGroup("Internet-GUI", 8, 8, 833, 433)
$IE = GUICtrlCreateObj($oIE, 16, 24, 820, 409)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button2 = GUICtrlCreateButton("Exit", 848, 48, 75, 25, $WS_GROUP)
$Button1 = GUICtrlCreateButton("GO!", 848, 16, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
_IENavigate($oIE,"http://www.schlosswagrain.at/infoStuplSchueler/")
_IELoadWait($oIE)
$oElement = _IEGetObjById($oIE,"46")
_IEFormElementOptionSelect($oElement,"30",1)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button2
Exit
Case $Button1
;~ _IENavigate($oIE,"http://www.schlosswagrain.at/infoStuplSchueler/frames/fuss.htm")
EndSwitch
WEnd
[/spoiler ]
Hi leute,
Konkret geht es um DIESE Website.
Ich will mit AutoIt, egal ob mit der IE.au3 oder der FF.au3, aus dieser Seite auslesen, ob in der Schule Supplierungen anstehen.
Als erstes wollte ich es mit einem Embedded IE probieren, aber lieber wäre mir es, wenn mir jemand erklären könnte, wie ich den in den Comboboxen standardmäßig etwas auswähle.
Hier ist noch anzumerken, dass es sich dabei m JS handelt.
Danke schon mal im vorraus.
Mit der FF.au3 wäre das wahrscheinlich am Einfachsten zu lösen. Aber da musst du das Addon MozRep oder so ähnlich installiern !
ich probiers auch mal aus ![]()
Ich bin auch mal grundsätzlich gegen Bots die einem einen Spielevorteil verschaffen..
Zugeben muss ich, dass ich mit Bots-schreiben zu AutoIt gekommen bin. Ich hab dann aber sehr schnell gemerkt, dass man mit der Scriptsprache viel nützlichere und bessere Skripte schreiben kann als Bots.
Nur für bestimmte Aktion,
wie zb 20 Ordner umbennen oder einen Kalender erstellen (12 Tabellen in Powerpoint; Skript das bei Tastendruck, die Zahlen von 1 bis 31 sendet mit TAB dazwischen)
Solche Skripte sind genau genommen auch Bots, und in solch einem Fall versteh ich nicht wie jemand komplett gegen Bots sein kann, da er ja hier nicht zwischen Gamebots und anderen unterscheidet!
Hab mir mal kurz was erlaubt^^
Ich hab bei deiner Funktion noch hinzugefügt, dass man mehrere Dateiendungen angeben kann (durch "|" getrennt)
vl kann es jemand brauchen:
;==================================================================================================
; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
; Description: Rekursive Auflistung von Dateien und/oder Ordnern
; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
; optional: $iRetType 0 gibt Array, 1 gibt String zurück
; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
; 0 -@CRLF (Standard) 1 -@CR 2 -@LF 3 -';' 4 -'|'
; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
; Modified: oetzn
;==================================================================================================
Func _GetFilesFolder_Rekursiv($sPath, $sExt = '*', $iDir = -1, $iRetType = 0, $sDelim = '0')
Global $oFSO = ObjCreate('Scripting.FileSystemObject')
Global $strFiles = ''
Switch $sDelim
Case '1'
$sDelim = @CR
Case '2'
$sDelim = @LF
Case '3'
$sDelim = ';'
Case '4'
$sDelim = '|'
Case Else
$sDelim = @CRLF
EndSwitch
If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
If $sExt = -1 Then $sExt = '*'
If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
_ShowSubFolders($oFSO.GetFolder($sPath), $sExt, $iDir, $sDelim)
If $iRetType = 0 Then
Local $aOut
$aOut = StringSplit(StringTrimRight($strFiles, StringLen($sDelim)), $sDelim, 1)
If $aOut[1] = '' Then
ReDim $aOut[1]
$aOut[0] = 0
EndIf
Return $aOut
Else
Return StringTrimRight($strFiles, StringLen($sDelim))
EndIf
EndFunc ;==>_GetFilesFolder_Rekursiv
Func _ShowSubFolders($Folder, $Ext = '*', $Dir = -1, $Delim = @CRLF)
$aExt = StringSplit($Ext, "|", 2) ;von mir eingefügt
;~ _ArrayDisplay($aExt)
If Not IsDeclared("strFiles") Then Global $strFiles = ''
If ($Dir = -1) Or ($Dir = 0) Then
For $file In $Folder.Files
If $Ext <> '*' Then
For $i = 0 To UBound($aExt) - 1 ;von mir eingefügt
If StringRight($file.Name, StringLen($aExt[$i])) = $aExt[$i] Then _ ; $Ext in $Ext[$i] geändert
$strFiles &= $file.Path & $Delim
Next ;von mir eingefügt
Else
$strFiles &= $file.Path & $Delim
EndIf
Next
EndIf
For $Subfolder In $Folder.SubFolders
If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
_ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
Next
EndFunc ;==>_ShowSubFolders
Ich hoffe ich verstoß hier nicht gegen irgendwelche Regeln ![]()
Das gute alte "ich muss was gleichzeitig machen"-Problem xD
hatte ich auch öfters vor allem bei TCP-Funktionen
Schau dir mal AdlibRegister an, damit müsstest du es hinkriegen ![]()
Edit: Dein Server den du geschrieben hast, hat folgendes Problem:
Du speicherst die einzelnen verbundenen Clients nicht, du brachst für jeden eine eigene Variable, am Besten würde sich hier ein Array eignen
(vl 2 dimensional:
$Array[0][0] = Socket
$Array[0][1] = IP
$Array[0][2] = Name falls es sowas gibt
usw...
Nunja, am einfachsten wäre es du schaust dir die Funktion "AdlibRegister" mal an..
Mit der müsstest du das einigermaßen hinbekommen..
Ich denk da an sowos in der Art:
Server:
1 Adlibfunktion die alle 250 ms (oder auch andere Zeit) schaut, ob ein neuer Client connecten will und
1 Adlibfunktion die alle 250 ms (oder auch andere Zeit) schaut, ob ein Client was schickt (Clients in Array speichern, mit For-Schleife durchgehen)
in der 2. Funktion müsste dann noch ein Switch - Endswitch drinnen sein, der guckt um was für eine Nachricht es sich den handelt (ka was dein Spiel macht) und je nachdem was drinnen steht, wird ein anderer Case abgearbeitet und schickt an den jenigen Client etwas zurück..
Client:
entweder du machst auch hier eine Adlibfunktion oder du lässt ihn einfach warten nachdem du etwas geschickt hast. Dann besteht allerdings die Gefahr, falls in dieser Zeit die Verbindung unterbrochen wird, dass du im Programm festsitzt und nichts mehr reagiert..
Viel Spaß beim Tüfteln, falls du was nicht verstehst einfach fragen ![]()
der Titel für Arraymeister ist leider schon an BugFix vergeben ![]()
wenn du es so machst das man die Zeit eingeben kann, könntest du die zuletzt verwendete Zeit in einer *.ini speichern..
nur so als vorschlag..
man könnte den autoit compiler in die .exe mit fileinstall reinpacken und dann beim ausführen ins temp verzeichniss schieben, dann mit parameter starten. Fertisch ...
Aber ich glaub das ist illegal
meines wissens nach macht eine mit AutoIt erstellte .exe genau das.. (AutoIt3.exe ist ein Interpreter
)
Beides, die AutoIt3.exe und das Skript werden in einen Ordner gepackt und dann wird das ganze so aufgerufen "AutoIt3.exe skriptname.au3"
steht glaub ich sogar in der Hilfe xD
Benutz doch einfach Koda..
Da kannst du dein(e) GUI schon designen..
Toll das Buch. Das erste hat mir vom Leaut besser gefallen. Seite 23 bzw. 20
Du meinst wohl layout oder ?^^