Hallo Nuts,
poste doch einfach mal dein Skript, dann kann dir anhand dessen leichter geholfen werden, ansonsten Sufu und Hilfe bemühen
mfg (Auto)Bert
Hallo Nuts,
poste doch einfach mal dein Skript, dann kann dir anhand dessen leichter geholfen werden, ansonsten Sufu und Hilfe bemühen
mfg (Auto)Bert
schönes script, ich würde aber trotzdem nur dann deine Methode wählen, wenn ich mir sicher bin, dass die entsprechende DLL (OCX zählt auch dazu) zurecht auf dem Zielordnercomputer existiert, warum du allerdings 2 mal registrierst 1 mal über regsvr32 und dann nochmal mit regwrite, hat sich mir allerdings nicht erschlossen, da ein aufruf von regsvr32 eigentlich alles erledigen sollte,
mfg (Auto)Bert
Hallo Oliverh,
so:
ZitatAuszug aus dt. HilfeGUICtrlDelete
--------------------------------------------------------------------------------Löscht ein Steuerelement.
GUICtrlDelete ( controlID )
,
mfg (Auto)Bert
Hallo xslip,
wenn die dll registriert werden muss, kannst du das ja über eine Installation von VS Studio Express erledigen, dann dürftest du auch rechtlich auf der sicheren Seite sein, trotzdem die Eula von MS zu Visua-Studio genau lesen. Wenn es nur um die Registry geht, da gehts auch einfacher, regsvr32 DLLNAME in Konsole (Dos-Box) ausführen, dies dürfte aber nicht nötig sein, da nach meinem Erachten das Skript ohne die registrierte Komponente bereits in der 1. Zeile eine Fehlermedung ausgegeben hätte,
mfg (Auto)Bert
Hallo xslip,
hast du diesen http://www.autoitscript.com/forum/index.php?showtopic=45842</a> Link probiert, hat sich vielversprechend gelesen, ansonsten die Methode die du verwendest schau mal in MSDN-Library nach, da du ja ein MS Objekt verwendest, kannst dir ja auch hier Visual Studio Express downloaden, MSDN ist meines Wissens nach dabei. Ich bin vor Jahren mal in die Verlegenheit gekommen mit Delphi die Com1 anzusprechen, hab es damals ähnlich gemacht MS-Komponente eingebunden und die Hife von VB benutzt um mit der Komponente klarzukommen.
Edit1: ich nehme an, du hast die sieben Themen schon gelesen, die Suchfunktion (oben links) anbietet wenn mann serielle Schittstelle eingibt, dieser sieht gut aus, er sendet Befehle und wertet die Inputs graphisch aus.
Edit2: das sieht auch ganz gut aus
$MsComm = ObjCreate("MSCOMMLib.MsComm.1")
[/autoit] [autoit][/autoit] [autoit]$MsComm.CommPort = 2
$MsComm.Settings = "9600,N,8,1"
$MsComm.Handshaking = 0
$MsComm.InBufferSize = 1024
$MsComm.InputLen = 1
$MsComm.PortOpen = 1
[/autoit] [autoit][/autoit] [autoit]While 1
_MsgOut("RT" & @CR)
MsgBox(0,"Testing",_MsgIn())
Sleep(2000)
WEnd
Func _MsgOut($str)
$MsComm.OutBufferCount = 0
$MsComm.InBufferCount = 0
If $MsComm.PortOpen = True Then
$MsComm.Output = $str
EndIf
$MsComm.InputLen = 0
EndFunc
Func _MsgIn()
$TIMEOUT = 1000
$nTimeCtr = 0
$sBuffer = ""
Do
$nTimeCtr += 1
If $MsComm.InBufferCount > 0 Then
$sBuffer = $sBuffer & $MsComm.Input
EndIf
Sleep(500)
Until StringInStr($sBuffer,@CR) OR $nTimeCtr > $TIMEOUT
If $nTimeCtr < $TIMEOUT Then
$nI = StringInStr($sBuffer,@CR)
Return StringLeft($sBuffer,$nI)
Else
Return "Error"
EndIf
EndFunc
gefunden auf http://www.autoitscript.com/forum/index.php?showtopic=13890&view=findpost&p=95392
mfg (Auto)Bert
Hallo OiverH,
ich weiss ja nicht warum es ein globales für den Treeview nicht tut so wie es Oscar vogeschlagen hat. Für mich sieht es in deiner Lösung so aus, als wenn du eh immer die gleiche Function benutzt, also warum nicht gleich Oscars Vorgschlag? Ein Contextmenü für den ganzen TreeView, du kannst ja dort abfragen welches TreeViewItem gerade selected ist und dem entsprechend reagieren.
Bei deiner Lösung solltest du auch alle bereits erstellten Menüs und MenüsItems wieder löschen, bevor du neue erstellst, sonst geht dein Rechner irgendwann in die Knie, vor lauter veschwendeten Ressourcen,
mfg (Auto)Bert
Hallo Mehmex,
so was hat Oscar schon mal gemacht, schau dir das _GUICtrlTreeView_CreateDirectory (erstellt ein TreeView mit Verzeichnissen +Dateien) einfach mal an,
mfg (Auto)Bert
Hallo Cr4nK.
Zitatalso eigentlich ist es kein doppelpost, weil es hier um was anderes geht.
Das es kein doppelPost ist stimm ich dir zu es ist sogar ein Tripple siehe [ offen ] Brauche Hilfe bei einem Befehl und Start des Scriptes.. Dieser wurde sofort von Oscar geschlossen, es geht dir aber immer um das selbe: 'wie komm ich an Infos um einen BOT' zu programmieren,bzw. find ich einen der es für mich macht. Deine Wortwahl wird zwar von Post zu Post vorsichtiger, sollte dir aber in diesem Forum nichts nützen,
mfg (Auto)Bert
Hallo NoF@ker,
diese Lösung gefällt mir gut, das übliche Icon vermisse ich bei dir. Dass du daran gedacht hast die $GUI_MSGBOX auch wieder zu löschen spricht auch für dich genauso wie der kompakte Programmcode,
mfg (Auto)Bert
Edit2: diese Warnung nach beenden ist unschön (39,17) :WARNING: $Return: possibly used before declaration.
@ L3viathan2142 ich seh zwar dass du Änderungen gemacht hast, kann es aber nicht starten:
(17,69) : ERROR: _MsgBoxEx() called by a previous line with 5 arg(s). Min = 4. First previous line calling this Func is 4.
_MsgBoxEx("Test","Dies ist ein Test Text",2,"OK|OK2")
_MsgBoxEx("Test","Dies ist ein Test Text",3,"OK|OK2|OK3",0xFF0000)
Hier zähl ich zwar nur bis 4 kann mir den Fehler bis jetzt noch nicht erklären
Edit Fehler gefunden muss so aussehen
_MsgBoxEx("Test","Dies ist ein Test Text","OK|OK2",0xFF0000)
_MsgBoxEx("Test","Dies ist ein Test Text","OK|OK2|OK3",0xFF0000)
Hallo Commander21,
dass mit dem Icon ist gut gelöst, auch wenn es mit weniger Zeilen ginge. Du solltestet aber die _MsgBox nicht nur verstecken sondern auch löschen,
mfg (Auto)Bert
Hallo MatthiasG,
hab die neue _MathEx_IsPrime ausprobiert, bin über den Performancegewinn sehr überrascht. Super Zeitgewinn von > 421 ms jetzt ~ 3,5 ms (wobei bei meinen schmalen Resourcen, die Zeitmessung, schon fast wie auswürfeln ist). Wenn du deine _MathEx_IsDivisible noch gegen not Mod austauschst kannst du die Performance noch etwas erhöhen.
Übrigens deine _MathEx_CreatePrimes bildet das Sieb des Sieb des Eratosthenes nach (zumindest sieht es danach aus, als hättest du seine Regeln umgesetzt). Hier hab ich ja schon mal den Wunsch geäussert, die bereits errechneten Prims abspeichern und wieder laden zu können, damit ich endlich in den Wettbewerb wer findet die grösste Prim einsteigen kann .
Das Sieb des Atkin soll noch schneller sein, das ist jetzt aber noch nicht wichtig. Wichtiger erscheint mir dass du ein gutes Beispielprogramm (leichtes Handling) schreibst, damit alle den Wert der Umsetzung deiner UDF erkennen,
mfg (Auto)Bert
Hallo Cr4nK,
deinen Doppelpost (siehe [ offen ] Suche Befehl für Maussimulation(konnte kein tutorial finden)), finde ich ganz schön dreist, vor allem da du dort schon alle notwendigen Antworten von @Padmak erhalten hast, vor allem da du nicht sagts um welches Progamm es sich handelt, dass du damit automatisieren willst.
mfg (Auto)Bert
Hallo Silenca,
erstell doch deine Labels und Edits mal alle mit Text in der maximal möglichen Länge, dann erkennst du wo sich Labels und Edits überschneiden. Danach kannst du deine GUI schöner aufbauen, wo du diesen Problem nicht mehr hast oder nimm KODA, da siehst du es schon beim erstellen,
Edit: hab gerade wieder dein Original geladen, das bricht bei mir ab: (42) : ==> Subscript used with non-Array variable.: Liegt wohl daran das ich kein Ini-File habe, das must du also auch noch abfangen.
mfg (Auto)Bert
Hallo SilenCa,
klappt doch,
#include <StaticConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
;Variablen deklarierung
Global $ini = @ScriptDir & "\Daten.ini", $splash = @ScriptDir & "\Millionär.jpg", $bkgr = @ScriptDir & "\a.jpg", $var = IniReadSection(@ScriptDir & "\Daten.ini", "Fragen")
Global $Antwort[5],$e
;<==
;Splash
SplashImageOn("", $splash, 320, 322, -1, -1, 1)
Sleep(1500)
SplashOff()
;<==
;Main Gui
GUICreate("Wer wird Millionär", 631, 378)
GUICtrlCreatePic($bkgr, 0, 0, 631, 378)
GUISetFont(15)
$Frage = GUICtrlCreateEdit("", 50, 235, 390, 47, $ES_READONLY, 0) ;Feld für Frage
GUICtrlSetBkColor(-1, 0xFFFFFF)
;$Antwort[1] = GUICtrlCreateLabel("", 63, 300, 150, 23) ;Feld für Antwort A
GUICtrlSetBkColor(-1, 0xFFFFFF)
$A = GUICtrlCreateLabel("KLAPPT DOCH", 30, 294, 195, 37) ;Soll auf Klick reagieren
GUICtrlSetBkColor(-1, 0x000000)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
#cs
$Antwort[2] = GUICtrlCreateLabel("", 63, 337, 150, 23) ;Feld für Antwort B
GUICtrlSetBkColor(-1, 0xFFFFFF)
$B = GUICtrlCreateLabel("", 30, 331, 195, 37) ;Soll auf Klick reagieren
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$Antwort[3] = GUICtrlCreateLabel("", 295, 300, 150, 23) ;Feld für Antwort C
GUICtrlSetBkColor(-1, 0xFFFFFF)
$C = GUICtrlCreateLabel("", 262, 294, 195, 37) ;Soll auf Klick reagieren
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$Antwort[4] = GUICtrlCreateLabel("", 295, 337, 150, 23) ;Feld für Antwort D
GUICtrlSetBkColor(-1, 0xFFFFFF)
$D = GUICtrlCreateLabel("", 262, 331, 195, 37) ;Soll auf Klick reagieren
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$question = Random(1, UBound($var) - 1, 1) ;Zufällige Frage
[/autoit] [autoit][/autoit] [autoit]$str = StringSplit($var[$question][1], '-', 1) ;Antworten splitten
GUICtrlSetData($Frage, $var[$question][0]) ;Frage Nr. 1
For $i = 1 To 4
GUICtrlSetData($Antwort[$i], $str[$i]) ;Antwortmöglichkeiten zu Frage Nr. 1
Next
#ce
GUISetState()
#cs
Switch $str[5]
Case 1
$e = "A"
Case 2
$e = "B"
Case 3
$e = "C"
Case 4
$e = "D"
EndSwitch
;~ MsgBox(0,"Richtige Antwort","Richtige antwort ist " & $e)
;<==
#ce
;Mainloop
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case $GUI_EVENT_CLOSE
;~ $close = MsgBox(4, "Wirklich Beenden?", "Wollen sie wirklich aufhören?")
;~ Switch $close
;~ Case 6
Exit
;~ EndSwitch
Case $A
MsgBox(0,"test","Test")
EndSwitch
WEnd
;<==
du must dem CLICKer aber auch die Möglichkeit geben das Laben anzuCLICKen,
Edit1: Auch im OnEventLoop hättest du das gleiche Problem, wer das Label nicht trifft bekommt keine MsgBox
mfg (Auto)Bert
Hallo Lapus,
hab ich erst gestern was in diesem Forum dazu gelesen, must halt mal suchen Sichwörter: Info and (EXE or Anwendung),
mfg (Auto)Bert
Hallo Commander21,
Ich vermisse die Möglichkeit ein Icon in der Messagebox anzuzeigen, aber sonst brauchbar
das ändern der Größe hab ich in Funktion zur Osterberechnung jetzt als UDF und modalem Meldungsfenster eingebaut auch das Resizen von Steuerelementen ist dort gelöst. Lad dir dazu einfach die beiden au3 Dateien am Ende von #1 herunter,
mfg (Auto)Bert
Hallo ahatius,
probier es mal so,
#include <String.au3>
#include <FTP_Ex.au3>
#include <inet.au3>
$server = "Server.Provider.ch"
$username = "juanitho"
$pass = _StringEncrypt(0, "Verschlüsselter String", "Schlüssel")
$Open = _FTPOpen("Explosm Comic Upload - 5is07a - 1337 h4xx0r'z Cr3w")
$Conn = _FTPConnect($Open, $server, $username, $pass, True)
local notOK =True
While notOK
$Sourcecode = _InetGetSource("http://explosm.net/comics/random/index.php")
$Link = _StringBetween($Sourcecode, '<img alt="Cyanide and Happiness, a daily webcomic" src="', '"></div><br /><table width="100%" cellspacing=0 cellpadd')
If Not @error then
;Extrahieren des reinen Namens
$Filenameue = _StringBetween($Link[0], 'files/', '.png')
If not @error then
notOK = False
Else
;hier noch die genaue Fehlermeldung auslesen
sleep(1000) ;eventuell anpassen
EndIf
EndIf
WEnd
;Entfernen allfälliger /-Zeichen
$Filename = StringReplace($Filenameue[0], "/", "_")
;Runterladen des Zufallscomic
InetGet($Link[0], @UserProfileDir & "\Explosm\Random.png")
;Upload des Zufallscomic
$Ftpp = _FtpPutFile($Conn, @UserProfileDir & "\Explosm\Random.png", "/5is07a/Comic/random/Comic.png")
habs zwar nicht getestet, (online aus deinem Skript erstelt) sollte aber trotzdem klappen.
PS.: Woher willst du wissen, dass BugFix dich ignoriert, vielleicht ist er in der Zwischenzeit ja noch nicht online gewesen,
mfg (Auto)Bert
Hallo FunH@cker,
ich würde es so machen,
#include <windowsconstants.au3>
#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("Lade Balken", 166, 50, 193, 125,BitOr(Default,$DS_SETFOREGROUND); ,$WS_EX_TOPMOST)
$Progress1 = GUICtrlCreateProgress(8, 16, 150, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
while 1
sleep(2)
wend
wobei ich in deiner Schleife den EXIT(LOOP) vermisse.
mfg (Auto)Bert
Hallo @Commander21,
Ich habe dein Beispiel etwas angepasst, damit es mit der erzeugten GUI sofort funktioniert
#include <GUIConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("TransGui", 167, 65, 193, 125)
$Slider1 = GUICtrlCreateSlider(0, 8, 158, 45)
GUICtrlSetLimit (-1, 254, 20) Limit verändert, damit man die Chance hat den Slider "anzufassen"
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
$Read = GUICtrlRead ($Slider1) ; Ließt den aktuellen wert des Sliders aus.
WinSetTrans ("TransGui", "", $Read) ; Setzt immer wieder die Transparenz eines Fensters ( "Titel" angeben, z.B: "Editor - Unbenannt", "" ( "Text" brauchst du net unbedingt angeben.)) ;jetz aktueller Fenstertitel
WEnd
@ChaosKeks, deine Lösung funktioniert sofort ,
ist aber für einen Anfänger vielleicht doch zu kompiziert ,
Edit1: @FunH@cker hab mich gerade an ein Beispiel erinnert, das ich auf AutoItScript.com gefunden habe, Autor ist mir leider unbekannt. (ähnlich Hardcore, wie ChaosKeks Beispiel) Der Autor dieses Skripts legt den Begriff Transpararent in Bezug auf ein eingebettes Bild aus: autoit.de/wcf/attachment/4564/
mfg (Auto)Bert