@xXIVXx poste es doch hier für uns. Dann haben wir alle etwas davon
Beiträge von Candyland
-
-
@Candyland Vielen, vielen Dank, ich habe mich zwar vorher schon über StringinStr informiert aber dein Beispiel hat exakt das Problem gelöst!
Sogar Exakt haha Dabei dachte ich, als ich das andere Thema laß, das du eine art Program versuchst zu schreiben welches auf Befehle des Benutzers reagiert
-
@plnpcs: Warum machst Du noch einen Thread auf mit dem gleichen Inhalt?
Ich habe Dir bereits in: Wenn im Input "Hallo" steht im Output "Hey" stehen lassen die Antwort gegeben.Huch, haha ich denke das ist jetzt nicht weiter wild das ich deine Antwort überlesen habe
-
Ja Klar hier bitte, dabei konnte ich mich auch gleich mit etwas beschäftigen das mich interessierte. Ich weiß nicht für was du es brauchst also hab ich mal einfach ein script geschrieben das den Text nach 'verbotenen' worten durchsucht & diese mit Sternchen ersetzt.
Keine ahnung in wiefern du Programmiertechnisch bewandert bist, also erkläre ich es dir einmal. Du erstellst eine textdatei namens 'Banwords.txt' dort sollte in jeder Zeile ein 'Böses' Wort stehen.
Du hast auch die möglichkeit einzustellen ob die Wörter ersetzt werden oder eben nicht. Einfach bei $REPLACE 0 für nein und 1 für ja.
Allerdings kann die InputBox nicht übermäßig viele Zeichen aufnehmen, so das ich darauf auswich den text aus einer Datei zu lesen. diese solltest du im selben ordner 1.txt nennen. das kannst du natürlich auch alles umbenennen wenn du magst. Ich war schlichtweg gerade zugemächlich um dir eine GUI zu schreiben.
Ich empfehle dir einen text von Stupidpedia zu kopieren. Diesen einfach in die datei 1.txt einzutragen & in der Datei banwords.txt ein paar im text vorhandene Begriffe einzutippen(nicht vergessen jede linie ein wort).
AutoIt
Alles anzeigenLocal $TEMPVar = FileOpen(@ScriptDir & '\Banwords.txt') ;<=) Banwordliste Local $SearchStrings = FileReadToArray($TEMPVar) FileClose($TEMPVar) Local $SearchFile_O = FileOpen(@ScriptDir & '\1.txt') ;<=) Text zum analysieren Local $TextToAnalyze = FileRead($SearchFile_O) FileClose($SearchFile_O) Local $STERNCHENS, $STERNCHENS_1, $CASESENSE = 0, $REPLACE = 1 For $i = 0 To UBound($SearchStrings)-1 Step 1 if StringInStr($TextToAnalyze, $SearchStrings[$i], $CASESENSE) Then ConsoleWrite('Found Banned Word "' & $SearchStrings[$i] & '"' & @CRLF) if $REPLACE = 1 Then $STERNCHENS_1 = StringLen($SearchStrings[$i]) $STERNCHENS = '' For $is = 1 To $STERNCHENS_1 Step 1 $STERNCHENS &= '*' Next $TextToAnalyze = StringReplace($TextToAnalyze, $SearchStrings[$i], $STERNCHENS) EndIf EndIf Next Local $Save_O = FileOpen(@ScriptDir & '\Analyzed.txt', 2) ;<=) Datei für den überarbeiteten Text FileWrite($Save_O, $TextToAnalyze) FileClose($Save_O)
-
Wer will bzw. kann das überprüfen?So eine Überprüfung ist gar nicht machbar. Weder von der Zeit her, noch von der Qualität.
Ich denke auch nicht daran das jemand gesondert das tun sollte, eben weil wie du das sagst eine 'Mammut aufgabe' wäre. Sondern lediglich das ein Neues Script erst dann Sichtbar für die Öffentlichkeit wird wenn sagen wir mal 3 benutzer mit Anfänger< Ranking das Skript als sauber bewerten. So finde ich, ist es auch möglich dem Veröffentlichenden ein feedback ohne geschriebenes zu geben.
Es würde meiner Meinung nach Sinn ergeben wenn eine 2te Sektion entsteht die für Vertretbare Skripte stehen. Ich bin mit Rechtlichen Dingen nicht bewandert, dennoch gibt mir der Satz von @chip Hier zu bedenken.
Im Prinzip gute Idee aber Formulierung der Regel finde ich Problematisch. Durch die Verpflichtung, dass der Name angegeben werden muss, hast du indirekt eine Lizenz geschaffen und wenn jemand nun eine UDF aus dem Forum nutzt und den Autor nicht angibt ist im Zweifel der Forenbetreiber rechtlich belabgbar, da durch die globale Verpflichtung damit haftbar ist.
Ich kann mir einfach denken das es vielleicht Ecken und Spalten gibt die wir hier nicht sehen. Vielleicht könnte es von Vorteil sein eine Art Sicherere Zone zu entwickeln, bevor wir vielleicht etwas Gravriendes übersehen.
Ich habe es immer für selbstverständlich gehalten, dass ausnahmslos alles was ich öffentlich poste nichtkomerziell beliebig genutzt werden kann.
Vielleicht ist es dem einen oder anderen aufgefallen, das ich genau deshalb immer eine Extra Zeile für eine Lizenz angab um sicher zu gehen dass, das script Frei verwendbar aber nicht für Kommerziele Zwecke zur verfügung steht.
PS: Auf jedenfall ist das hier sehr Spannend & ich freue mich schon darauf das hier weiter zu verfolgen.
-
Saubere Arbeit, allerdings sehen die Extrahierten Icons übel aus. So das mir die idee kam hier ein DllCall zu nutzen. Mir fehlt da allerdings immer noch die erfahrung. Ich werde mich wohl sicher bis nächstes Jahr nochmal damit befassen & dann eine Lösung finden. Ich geb dem Thema dann mal einen Hacken! Ihr habt mir wie immer gut geholfen.
-
4. Je länger man sich mit der Materie auseinandersetzt, desto mehr Monster sieht man unter dem Bett
Das ist wohl wahr, weshalb der 'Normale' uninteressierte Benutzer wohl auch weniger Lust hat sich mit den Regeln zu befassen. Ich denke das diese art von Lizens auf einen speziellen bereich des Forums angewandt wird. So das neulinge die ihren Code(wie ich) veröffentlichen, auch eine art Fehlertoleranz bekommen, wenn sie versehentlich vergessen einen Autor für eine Funktion zu markieren. Eine Art 2te Script Section, die für vollständige & funktionstüchtige Scripte steht, sollte hier erstellt werden. Jedes Thema ist dort nur für angemeldete Benutzer sichtbar, bis die Community(<Fortgeschrittene) entscheidet der Code ist von dritten frei & nicht malicious dann wird dieser, durch vielleicht eine abstimmung, sichtbar für die öffentlichkeit. So könnte man unvorsichtige Benutzer schützen.
Allerdings entsteht dabei eine art 2te Klasse gruppe. Der Noobie bereich & der Advanced/Proffesional bereich. Sicher ist eine Trennung fraglich, doch so können sich Noobies(wie ich) auch an verbesserte Scripte orientieren.
-
Wieso nicht gleich alle?
Mit alle meine ich, alle vorhandenen Icons anzeigen und dann auswählen, welche davon in welchem Format (jpg, png, ...) gespeichert werden sollen.
Ich habe ein halb fertiges Script, mit dem das geht... werde mich die Tage mal dran setzen und es fertig schreiben.Dann bin ich tatsächlich nicht der einzige der das versucht, cool cool. Ich kann mir denken das es bei dem einem oder anderem Program ein Problem geben wird wenn alle Icons ausgelesen werden sollen. Wenn ich mir so z.b. Autoit Exen ansehe sind min. 2 Icon gruppen auslesbar.[Blockierte Grafik: https://s10.postimg.org/i1yc7b5yx/Unbenannt.jpg]
Ich kann mir gut vorstellen das hierbei Probleme entstehen werden.$Path, der Name der Exe, Dll oder des Icons/Icon-Library (*.icl), von dem das Icon extrahiert werden soll, ist der einzige Parameter, den du vor dem Aufruf deklarieren musst.
Ja danke dir, ich hätte die frage allerdings besser formulieren sollen, mir ist nicht bewusst woher ich weiß wie die Ganze zeile auszufüllen ist, $Path kam von mir doch von dem rest der Zeile weiß ich nichts. (hier markiert mit fragezeichen)
Local $Ret = DllCall('shell32', 'long(?)', ''ExtractIconExW', 'int(?)', 0(?), 'str(?)', $Path, 'int*(?)', 1(ICON))Hier schon mal vorab eine minimalistische Lösung für dich.
Ich danke dafür & habe jetzt auch Zeit mir diese Anzusehen. War mir nicht bewusst das Autoit soetwas auch kann.
-
Hi Liebe Autoit Gemeinde,
ich will mich kurz halten & gleich zum Punkt kommen. Ich versuche eine Möglichkeit zu finden um .exen die icons zu stiebitzen. Dabei viel mir auf das 'ExtractAssociatedIcon' von der 'shell32' sich den ersten gefundenen .ico schnappt. welcher bei Autoit exen eine schlechte qualität hat. Deshalb erhöhte ich die Zahl & bekam das icon das ich wollte. Jedoch sind die Icons bei fast jeder exe anders angelegt. Manche besitzen nur 'einen'.So kam ich auf die idee gleich eine Ganze icon gruppe herauszuladen damit ich dem Problem direkt entgehen kann schlecht qualitative Icons zu bekommen. Das ist allerdings etwas das ich nicht weiß umzusetzen. Da ich im Umgang mit DLL's ziehmlich unerfahren bin.
ich glaube das die Funktion 'ExtractIconExW' wie für mich gemacht ist.
Keine ahnung wie ich die Zeile zu füllen habe :<
Local $Ret = DllCall('shell32', 'long', ''ExtractIconExW', 'int', 0, 'str', $Path, 'int*', 1)hier ein Beispiel script:
AutoIt
Alles anzeigen;#include <MsgBoxConstants.au3> ;#include <array.au3> #include <GDIPlus.au3> Local $Path = @ScriptDir & "\1.exe" Local $SavePath = @ScriptDir & "\1.ico" Local $Ret = DllCall('shell32', 'long', 'ExtractAssociatedIcon', 'int', 0, 'str', $Path, 'int*', 99) ;~ Local $Ret = DllCall('shell32', 'long', 'ExtractIcon', 'int', 0, 'str', $Path, 'int*', 1) Local $hIcon = $Ret[0] _GDIPlus_Startup() Local $pBitmapdll = DllCall('Gdiplus.dll', 'int', 'GdipCreateBitmapFromHICON', 'ptr', $hIcon, 'int*', 0) Local $pBitmap = $pBitmapdll[2] _WinAPI_DestroyIcon($Ret[0]) _GDIPlus_ImageSaveToFileEx($pBitmap, $SavePath, '{557CF400-1A04-11D3-9A73-0000F81EF32E}') _GDIPlus_ImageDispose($pBitmap) _GDIPlus_Shutdown()
-
Hältst du uns für geisteskranke Psychopathen oder warum hast du damit nicht gerechnet?
Da war ich mir ganz sicher, ja!
Da stellt sich mir die frage welchen zweck es für euch hätte fremden menschen zu helfen, wo läge da euer Bonus? Was wäre also psychopathisch daran jemandem zu helfen?Wenn ich mein umfeld so betrachte, scheinen alle zu meinen das Freiheit so ein thema ist welches immer & überall waltet. Es scheint mir als hätte das jeder in sich verankert & hinterfragt garnicht mehr ob das was sie Freiheit nennen auch wirklich Freiheit ist. Deshalb überraschen mich menschen die explizit auf das thema eingehen & dazu bemerkungen machen. Da denke ich mir dann das dort jemand ist der eine Kritischere Denkensweise anstrebt & vielleicht hinter die Fassade zu sehen vermag.
"Niemand ist hoffnungloser versklavt als der, der fälschlicherweise glaubt frei zu sein." -J.W. Goethe
-
Warum?
Es Gefiehl mir das zu lesen. habe nicht erwartet im Autoitforum jemanden zu begegnen der Freiheits liebend ist. Daher die überraschung(:
-
Hat mich überrascht bei dem vom @water markierten buch auf der 2ten seite
"Gewidmet denen, die für Freiheit eintreten." zu lesen.Das von Hingo schaue ich mir nachher mal in ruhe an. War nie so der Programmiersprachen durchs lesen lerner, weshalb ich besonders gespannt bin ob dein Buch mich gespannt hält!
-
Nicht ein Kommentar hier zu sehen, schade für so eine tolle arbeit. Ich dachte auch schon länger daran irgendwas mit der tree funktion anzufangen. Ich dachte dabei daran den Output auszulesen & anhand dieser die Ordner zu erstellen. Gut das dein Script mir ein Gutes beispiel ist. Wenn es nicht sogar weit praktischer ist als mit "tree" zu arbeiten
-
EDIT: Ich habe das Program zum üben etwas beschriftet, geglidert & großteils die vars umbenannt
Hat jemand eventuell noch findige tipps für mich? -
Danke Bitnugger für deine nette Hilfe, die weiß ich zu schätzen! Ich habe das alles schon genauso konfiguriert wie das bild es mir aufzeigt, nur das sich ein fehler auf getan hat der sich mir nicht erklären ließ. Ich denke mal der fehler kam indem ich die ip von meiner eigenen adresse(http://beispiel.net/) auslesen lassen wollte, der rückgabe wert dann aber eine seite war, nicht so wie bei http://ip.filezilla-project.org/ip.php wo dir eine ip ausgegeben wird. Dementsprechend ist das Problem jetzt gelöst, mit der SSL verschlüsselung sollte ich mich dann aber wohl noch beschäftigen, schließlich möchte ich nicht das jemand die login daten abfängt.
Das thema werde ich als gelöst markieren & wenn ich die Zeit finde analysiere ich weiter die Debug methode die dein 'kleines' script benutzt. Das ist sehr anschaulich & interessant gestaltet worden von dir, so das ich denke mal darin einige methoden finden werde um in Zunkuft einigen Problemen schneller den Kampf anzusagen
-
Die Server sind aber dann auch unter ftp. eingetragen! Du kannst nicht einfach ftp. davor setzen und hoffen das es funktioniert.
Hehe ich hab schlussendlich nur etwas herumprobiert.
Edit: mir viel auf das der client vom server eine adresse + port zugesendet bekommt, dieser müsste eine externe adresse sein, jedoch kommt am clienten eine Lokale an sowas wie 192,168,178,153,(xxx*256),+xxx) Das verwundert mich etwas.
-
12003 ist ERROR_INTERNET_EXTENDED_ERROR siehe dazu msdn.
Lass dir mal mit TCPNameToIp() die aufgelöste IP-Adresse anzeigen und verbinde dich mal damit. Eventuell hat AutoIt einfach Probleme über den no-ip-DNS-Service.Das habe ich im vorraus schon probiert weshalb ich zu meiner ip aufgelöst hätte wäre dass, das problem gewesen
ich muss noch sehen wohin mich der fehler 12003 tatsächlich führt.Bei 'http://' machst du es richtig... wieso dann bei 'ftp.' einen Punkt?
Hier mal ein kleines Script für dich...wenn ich ich mir ftp adressen so ansehe haben viele dieses ftp. vor ihrer adresse weshalb ich schnell mich dazu verleiten ließ das auch zu testen o:
also dein 'kleines' script ist etwas das ich jetzt ersteinmal studieren werde, ein wenig herumprobiert habe ich schon damit & ich geriet wiedermals an fehler. (FUNCTION FAILED --> _GetFTP_List) Ich schau mir das mal weiter an, aber danke dir vielmals dafür da sind dinge verbaut die mich sicher auch woanders weiterbringen werden -
Ist denn eine entsprechende Portfreigabe im Router aktiviert worden?
Oh ja es ist alles freigegeben. Sowohl im Router als auch in der Firewall.
-
Heyho Lieblings Community!,
Ich versuche mich an einem Script das mir zugriff auf meinem 2ten Computer über FTP gibt, den ich anlässlich meines Umzugs an einen Freund gebe(im austausch kann ich ihn weiter als Server benutzen), da ich den Autoit problemen aus dem weg gehen möchte mit der TCP startup methode habe ich mich entschieden dem Computer befehle über einen FTP server zu geben. Dazu verbindet sich der Client mit dem FTP & ladet dort eine Instruction.txt(hier 1.txt) hoch. Diese wird dann von einem 2ten Programm welches auf dem Computer installiert ist ausgelesen & die dortigen anweisungen werden ausgeführt. Ich denke das macht die Communication flüssiger & es ist einfacher für mich dieses Projekt umzusetzen.
Also habe ich mich hingesetzt & fix ein Script geschrieben um ersteinmal zu sehen ob die methode ratsam & funktional ist. Aber wie das schicksal mich leitet, so gibt es das eine Problem das mir den Verstand raubt. Ich habe einen FileZilla Server per XAMPP installiert & eingerichtet, dort einen Passiv modus eingestellt der die Ports 5064-5164 belegt. Der standart port für den FTP ist 5063(ich dachte dabei das die passiv port range den stardart port nicht überdecken sollte, habe nichts dazu gefunden ob das so richtig ist). Das script funktioniert solange ich versuche lokal auf dem server eine datei abzulegen, sobald ich aber external per no-ip auf meinen rechner zugreifen will spuckt er mir den fehler 12003 aus.
ich habe mich dazu belesen, jedoch nichts gescheites gefunden, weshalb ich nach 2h herumgrübeln wiedermal euch belästige. (RTFM? der smiley passt zu der Ratlosigkeit)Mir ist aufgefallen das der server erst garkein signal für eine datei übertragung bekommt. Außerdem kann ich den Fehler 12003 nicht zuordnen(weshalb ich wohl auch keine informationen über den fehler habe, die mir deutlich weiterhelfen würden)
AutoIt: CLient
Alles anzeigen;***************************************** ;Control_Station.au3 by Ratten Frucht ;Erstellt mit ISN AutoIt Studio v. 1.03 ;***************************************** ;~ #include "Server.au3" #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <inet.au3> #include <FTPEx.au3> #Region ### START Koda GUI section ### Form=C:\Users\Ratten Frucht\Documents\ISN AutoIt Studio\Projects\Control Station\Forms\CLient.kxf $CLient = GUICreate("Server CLient", 538, 204, 424, 413) GUISetBkColor(0xE3E3E3) $Button1 = GUICtrlCreateButton("Command Console", 128, 8, 107, 33) $Label1 = GUICtrlCreateLabel("Remote Options:", 8, 16, 104, 20) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0x808000) $Label2 = GUICtrlCreateLabel("Status:", 128, 48, 37, 17) $Label3 = GUICtrlCreateLabel("Not Running", 168, 48, 64, 17) GUICtrlSetColor(-1, 0xFF0000) $Button2 = GUICtrlCreateButton("Test Button", 128, 72, 107, 33) $Label4 = GUICtrlCreateLabel("Status:", 128, 112, 37, 17) $Label5 = GUICtrlCreateLabel("Not Running", 168, 112, 64, 17) GUICtrlSetColor(-1, 0xFF0000) $Label6 = GUICtrlCreateLabel("Server Status:", 8, 40, 71, 17) $Label7 = GUICtrlCreateLabel("Off", 88, 40, 18, 17) GUICtrlSetColor(-1, 0xFF0000) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### ;Server Vars Local $SURL = "adresse.net" ;<=ist besser wenn ich meine Computer adresse nicht angebe Local $HURL = "http://" & $SURL ;~ Local $FURL = "ftp." & $SURL ;<=ftp. = error Local $FUser = "RemoteUser" Local $FPass = "Remote" Local $FPort = 5063 Local $FPassiv = 1 ;Script Vars Local $icount = 1999 ;TestVars Local $s_localFile = @ScriptDir & "\1.txt" Local $s_RemoteFile = "/test.txt" While 1 $icount = $icount + 1 if $icount = 2000 Then $icount = 0 if _INetGetSource($HURL,True) <> "" Then GUICtrlSetData($Label7,"On") GUICtrlSetColor($Label7, 0x00FF00) Else GUICtrlSetData($Label7,"Off") GUICtrlSetColor($Label7, 0xFF0000) EndIf EndIf $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 $FTPopen = _FTP_Open("TestMe") $FTPConn = _FTP_Connect($FTPopen, $SURL, $FUser, $FPass, $FPassiv, $FPort) If @error Then ConsoleWrite("FTP Error" & @CRLF) Else ConsoleWrite("FTP Connected" & @CRLF) If _FTP_FilePut($FTPConn, $s_LocalFile, $s_RemoteFile) Then ConsoleWrite("Upload: erfolgreich" & @CRLF) Else ConsoleWrite("Upload: fehlgeschlagen" & " " & @extended & @CRLF) EndIf EndIf _FTP_Close($FTPopen) _FTP_Close($FTPConn) EndSwitch WEnd
-
Danke @alpines ich denke das ist ein Gutes beispiel das du mir da gebracht hast. Ich werde mich daran setzen und das ordentliche schreiben vom Code trainieren. Danke!
Ich schließe daraus das mein Code auch grauenhaft aussieht. Das wird sich ändern!