bei mir ja auch, aber wenn ich dann oben die auswahl mehrmals ändere klappt es nicht mehr, und es kommt der oben genannte Fehler
Nicht wundern, die ganzen msgboxen habe ich gebraucht um den Fehler zu finden
bei mir ja auch, aber wenn ich dann oben die auswahl mehrmals ändere klappt es nicht mehr, und es kommt der oben genannte Fehler
Nicht wundern, die ganzen msgboxen habe ich gebraucht um den Fehler zu finden
Hallo, ich habe seit langer Zeit mal wieder angefangen, und prompt stehe ich vor einen Problem
Der Befehl "_GUICtrlComboBox_GetEditText" gibt mir zwar den gewählten Eintrag von "_GUICtrlComboBox_Create" wieder, hängt aber ein Zeichen zusätzlich daran, somit wird der Key in der Ini leider nicht gefunden.
Hat Jemand eine Idee Warum?
$ini = @ScriptDir&'\Texte\Datei.ini'
#include<GuiComboBox.au3>
#include<GUIConstantsEx.au3>
;Gui
$Gui=GUICreate ('Produkt-Rechner', 900,600); Wagerechte; Höhe
GUISetBkColor(0xFFB200);FF6699);663399 )
GUISetFont(9, 300)
;Daten
GUICtrlcreatelabel ('Einstellungen für A4' ,10,10)
$A4 = _GUICtrlComboBox_Create ($GUI,'', 10, 30, 190, 296)
$ini_sektions = IniReadSection($ini, "Laserdruck A4")
For $i = 1 To $ini_sektions[0][0]
_GUICtrlComboBox_AddString($A4, $ini_sektions[$i][0])
Next
GUICtrlcreatelabel ('Hier bitte gewünschte Anzahl eintragen' ,10,70)
$Anzahl = GUICtrlCreateEdit ("1", 10,90,190,20,0)
[/autoit][autoit][/autoit][autoit]$berechnen = GUICtrlCreateButton ('Berechnen', 200,490)
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]GUICtrlcreatelabel ('Einstellungen für A3',400,10)
$A3 = _GUICtrlComboBox_Create ($GUI,'', 400, 30, 150, 296)
$ini_sektions = IniReadSection($ini, "Laserdruck A3")
For $i = 1 To UBound($ini_sektions) - 1
_GUICtrlComboBox_AddString($A3, $ini_sektions[$i][0])
Next
[/autoit][autoit][/autoit][autoit]$endbutton = GUICtrlCreateButton ('Schließen', 810,490)
[/autoit][autoit][/autoit][autoit]GUISetState(@SW_SHOW)
[/autoit][autoit][/autoit][autoit];Gui ENDE
[/autoit][autoit][/autoit][autoit][/autoit][autoit]While 1
$msg = GUIGetMsg()
$A3R=_GUICtrlComboBox_GetEditText ($A3)
$a3wert=IniRead($ini,'Laserdruck A3',$A3R,'')
$zahl1 = GUICtrlRead($Anzahl)
[/autoit][autoit][/autoit][autoit][/autoit][autoit]Select
[/autoit][autoit][/autoit][autoit][/autoit][autoit]Case $msg = $endbutton Or $msg = $GUI_EVENT_CLOSE
exit
case $msg = $berechnen
[/autoit][autoit][/autoit][autoit]$A4R=_GUICtrlComboBox_GetEditText($A4)
[/autoit][autoit][/autoit][autoit]MsgBox(64,"a4r",$a4r)
$A4R=_GUICtrlComboBox_GetEditText($A4)
ConsoleWrite (StringFormat ("%d\n", stringlen($A4R)))
$a4wert=IniRead($ini,'Laserdruck A4',$A4R,"Fehler beim Lesen")
MsgBox(64,"a4wert",$a4wert)
$Ergebnis = $zahl1 * $a4wert
MsgBox (0,"Ergebnis",$zahl1 & "*" & $a4wert & "=" & $Ergebnis) ;Ausgabe der Rechenaufgabe
EndSelect
wend
[/autoit][autoit][/autoit][autoit][/autoit]Meine Ini ist so azfgebaut
[Laserdruck A4]
Schwarz Weiß=0.25
Schwar Weiß, mehr als 5=0.22
Farbig=1.10
Aufkleber weiß s/w=0.85
Aufkleber weiß Farbig=1.20
Aufkleber Transparent s/w=1.50
Aufkleber Transparent Farbig=2.60
[Laserdruck A3]
Schwarz Weiß=0.50
Schwar Weiß, mehr als 5=0.44
Farbe=2.20
Vielen Dank
Hallo, ich möchte gerne ein IE Frame "aktivieren"
Mit aktivieren mein ich, es so darzustellen, als hätte ich mit der Maus daruf geklickt.
Ich kann den Inhalt ändern, das Funktioniert tadellos, nur abschicken nicht, dazu ist es bis jetzt notwendig mit der Maus darauf zu klicken, erst dann erscheint der Button zum absenden des Inhaltes.
Hier mal der Ausschnitt des Frames, sofern es überhaupt eines ist
[autoit]
$oInputs = _IETagNameGetCollection ($oIE, "textarea")
if @error Then $oIE.document.execCommand("Refresh")
For $oInput In $oInputs
_IEFormElementSetValue ($oInput, $Wert);fügt den Wert ein
$Zeit=IniRead(@ScriptDir&'\Texte\Datei.ini','Sonstiges','Zeit','D:\G\GO')*1000;1000 weil in der ini nur Millisekunden angegeben!
Sleep($Zeit);Wartet hier eine in der ini definierte Zeit bevor es absendet
Next
Liegt sicher an den falschen Befehl, mir fällt aber nichts mehr ein, zu lange nichts mehr gemacht, und die Hilfe bringt mich nicht weiter
Danke die Inputbox ist genau das was ich gesucht habe, vielen Dank
Edit
Jam00 das ist auch super, gleich mehre Möglichkeiten
Danke
Hallo,
wie kann man in eienr vorhandenen Gui eine art Eingabe-Popup erstellen?
Soll ungefähr so funktionieren:
Ich drücke auf einen Button und es kommt ein Popup wo man einen Wert einträgt, dann schließt man das Popup und dieser Wert ist dann in einer Variablen zu weiteren Verarbeitung drinnen.
In der Hilfe finde ich irgendwie nicht so was passendes wie ich es brauch.
Die unschönere Möglichkeit wäre es eine 2te Gui zu erstellen, aber noch nie 2 stück verwendet, also habe keine Ahnung wie ich den Wert aus der 2ten Gui in die erste bekomme?
Ist praktisch die selbe Funktion wie hier in der Box wo ich gerade schreibe, wenn man auf den "Bild Button" klickt kommt eine Box wo man einen Link eingibt, dieser erscheint dann mit den passen IMG Tag in dieser Box, so was baue ich praktisch für den Offline Gebrauch
Ich hoffe ihr versteht was ich meine.
Grüße
In der Registry stehen alle Kontextmenüeinträge, sowohl zu allen möglichen Dateinamenserweiterungen als auch für Ordner. Muss du einmal googeln. Da ich da aber nur durch Zufall (von einem interessantem Link zum anderen) drauf gekommen bin und das auch schon etwas her ist, kann ich dir leider keine Suchbegriffe bzw. Links oder gar gleich die Schlüssel sagen.
Das ist richtig, Problem an der Sache ist das es so einfach leider nicht ist
Aus einen anderen Board
Zitat von _muetzeDas ist etwas schwieriger.
Für Dateien(HKEY_CLASSES_ROOT\->Dateierweiterung<-) oder Ordner(HKEY_CLASSES_ROOT\Folder) ist es vergleichsweise simpel einen Eintrag in das Kontextmenü zu schreiben (Stichwort: ShellNew). Für den, ich nenne ihn mal, "freien Raum" ist das nur in verbindung mit einem ContextMenuHandler möglich, weil in dem Fall (HKEY_CLASSES_ROOT\Directory\Background) eben dieses "ShellNew" nicht möglich ist. Microsoft hat sich sicher etwas dabei gedacht, was weiß ich zwar auch nicht aber naja.
Fakt ist, dass im Schlüssel (HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers) ein gültiger, registrierter Handler eingetragen werden muss der das Kontext-Menü bereitstellt.
Warum das Rad neu erfinden
Tipp eines Users
bxNewFolder runterladen und installieren
Freeware
Website: http://www.baxbex.com/products.html
Direktlink: http://www.baxbex.com/files/bxnewfolder.exe
damit hat man dann per Hotkey F12 im Windows Explorer die Möglichkeit einen neuen Ordner zu erstellen ...
F12 -> wenn das Menü aufpoppt -> Mausrad nach unten scrollen -> Enter
Im Grunde kann man wenig falsch machen...
Mein Script schreibt 2 Zeilen in die Ini, bzw passt diese an
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /TUTag=MCHBKF /Kernel=TUKernel.exe
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional (Backup)" /noexecute=optin /fastdetect /TUTag=MCHBKF-BAK
Bootskin mit Tuneup gemacht, fals win nicht bootet kann man ganz normal über backup eintrag starten
hui, das ist auch eine Möglichkeit!
Das hilft erstmal
Kann man es so anpassen das man es startet (Über Kontextmenü, kann man ja so einrichten)
es über normalen Modus einen "Neuen Ordner" erstellt (Ohne Dircreate) dieser wird umbenannt ind das Programm beendet sich
Damit könnte man CPU Last herabsetzten (sonst verbraucht das Programm zb 8%CPu Leistung)
Aber ich glaube das es nicht möglich ist, mir ist zumindest keine Funktion bekannt die das erreicht
Also dafür muss ich wenig mehr erzählen.
Jeder kennt ja wenn man irgendwo auf eine leere Stelle in einen Ordner etc klickt das Kontextmenü mit den Untermenü "Neuer Ordner"
Wenn man Draufklickt kommt eben ein neuer Ordner mit einen Standard Namen (dieser steht in der shell32.dll)
Aber irgendwie muss er ja erstellt werden..., dort will ich die wineigende Funktion durch ein selbstgeschriebenes Programm ersetzen
Dazu gibt es 2 Probleme:
1. ich weiß nicht wie und wo diese Funktion aufgerufen wird
2.==soll mein Programm statt den Normalen Namen einfach einen Ordner mit den Aktuellen Datum und Uhrzeit erstellen
Problem ist eben, wie erzähle ich den Programm wo dieser Ordner erstellt werden soll?
Wenn das so nicht geht, noch eine Idee
Diese Funktion könnte man ja auch im Hauptkontextmenü einbinden, aber selber Problem, woher weiß das Programm wo ich dieses Ordner haben möchte?
Ich hoffe mir kann jemand helfen.
den kennt man hier, dafür hat jemand hier einen anderen Obfuscator geschrieben.
=> Funkt Tadellos, und wenns jemand decompiled hat er einen Salat mit sehr viel Crap dabei
habs scho, der fehler tritt nur bei einen kombination auf, die aber eigentlich nicht vorkommt, von daher ises wurscht
vielen dank euch allen
Danke, jetzt geht es soweit, sicherlich nicht die beste Lösung aber nunja, mir taugt es
Gibt auch noch einen Fehler, wenn ich die Kombination anwende, spuckt der keine Numr mehr aus!
Suche zuerst zu den Namen die Nummer, dann von der Nummer den Namen und dann wieder Name zu Nummer=>Bei den letzten Wert kommt nichts mehr
Danke an limette und Firepanther
#include<GUIConstantsEx.au3>
#include<IE.au3>
_IELoadWaitTimeout (5000)
$gui=GUICreate("Dreamlevel",400,130)
$Nummer=GUICtrlCreateInput("",10,10,200,20)
GUICtrlCreateLabel('<==Hier Nummer Eintragen',220,10)
$Name=GUICtrlCreateInput("",10,50,200,20)
GUICtrlCreateLabel('<==Hier Name Eintragen',220,50)
$Start=GUICtrlCreateButton("Suche",10,90)
$NeueSuche=GUICtrlCreateButton("Neue Suche",85,90)
$EXIT=GUICtrlCreateButton("EXIT",50,90)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
If $msg <> 0 Then
$NummerR= GUICtrlRead($Nummer)
$NameR = GUICtrlRead($Name)
Select
case $msg = $Start
ToolTip("Suche...",0,0,"Info",1,1)
if $NameR='' then
GUICtrlSetState($Start, $GUI_DISABLE)
$Link='http://www.dreamlevel.de/profil.dl?u='&$NummerR
$OIE=_IECreate($Link,0,0,1)
$Text=_IEBodyReadText($OIE)
[/autoit] [autoit][/autoit] [autoit]$TempDatei=@ScriptDir&'\Temp.txt'
FileWrite($TempDatei,$Text)
sleep(1000)
$Tempfile=FileOpen($TempDatei,0)
if FileExists(@ScriptDir&'\Temp.txt') Then
while 1
$Zeile=FileReadLine($Tempfile)
if StringInStr($Zeile,'BuddyIgnoreMelden') Then
$Zeile=StringTrimRight($Zeile,17)
GUICtrlSetData($Name,$Zeile)
FileClose($Tempfile)
FileDelete($TempDatei)
_IEQuit($OIE)
GUICtrlSetState($Start, $GUI_ENABLE)
ToolTip("")
ExitLoop
EndIf
WEnd
EndIf
Else
GUICtrlSetState($Start, $GUI_DISABLE)
GUICtrlSetData($Nummer,getnumberbyname($NameR))
[/autoit] [autoit][/autoit] [autoit]ToolTip("")
GUICtrlSetState($Start, $GUI_ENABLE)
EndIf
case $msg=$NeueSuche;Das ist das Einzige wo ich den Fehler überbrücken kann
run("ReverseDreamlevel.exe")
WinKill($gui)
case $msg=$EXIT Or $msg = $GUI_EVENT_CLOSE
[/autoit] [autoit][/autoit] [autoit]Exit
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]ExitLoop
EndSelect
EndIf
Wend
func getnumberbyname($name)
$quellcode='';Dachte es ist der Grund das diese Variable noch einen Inhalt hat
$id='';;Dachte es ist der Grund das diese Variable noch einen Inhalt hat
$ie = _IECreate( 'http://www.dreamlevel.de/suche.dl#sbk',0,0 );Startet den IE unsichtbar
_IENavigate( $ie, "javascript:toggle_box('so_0');", 0 )
Sleep( 2000 )
$oQuery = _IEGetObjById($ie, "nname") ;limette: holt dir das Element direkt über die ID. Übrigens auch 'nname'
_IEFormElementSetValue ($oQuery, $NameR);fügt name ein
_IENavigate( $ie, 'javascript:getList();', 0 )
Sleep(2000)
_IELoadWait($ie)
$quellcode=_IEBodyReadHTML($ie)
$quellcode=StringMid($quellcode,StringInStr($quellcode,"title="&$name))
$id=StringMid($quellcode,StringInStr($quellcode,' href="http://www.dreamlevel.de/profil.dl?u=')+44)
$id=StringLeft($id,StringInStr($id,'">')-1)
_IEQuit($ie)
Return $id
EndFunc
hi, danke, nur noch eine Frage
Wenn ich das per Setvalue setze findet der nichts, man müstte buchstabenfür buchstaben senden
[autoit]For $i=1 To StringLen($name)
_IEFormElementSetValue ($oQuery,StringMid($name,$i,1));fügt namen ein, geht nicht da Set Value immer komplett oder eben nur einen buchstaben setzt
;ControlSend($gui,"","Internet Explorer_Server1",StringMid($name,$i,1))<geht ja leider nicht
Sleep(10)
Next
Mit Controlsend kein Problem, geht ja aber nicht beim IE
Hallo, das funktioniert wunderbar
aber habe noch ne Frage, wie Sende ich einen Wert dorthin
habe es so versucht
[autoit]#include <ie.au3>
$ie = _IECreate( 'http://www.dreamlevel.de/suche.dl#sbk' )
_IENavigate( $ie, "javascript:toggle_box('so_0');",1 )
sleep(5000)
$oForm = _IEFormGetCollection ($IE);Holt die Bereiche
sleep(1000)
$oQuery = _IEFormElementGetObjByName($oForm, "nname");Findet das TExtfeld
_IEFormElementSetValue ($oQuery, 'AcerRoyal');fügt text2 ein
Aber das geht so irgendwie nicht?
Der name der Box ist doch "nname"
Grüße
Also bei mir funktioniert der direkte Aufruf,
via:
javascript:toggle_box('so_0');limette
Wie rufst du dann das komplett auf, so das der IE das so aufmacht?
Hallo wie ereiche ich das ich "Nutzernamen suchen" klicken kann
Quelltextausschnitt
<div class="gbu"><a onclick="toggle_box('so_0');" href="#sbk">Nutzernamen suchen</a> <a href="show.dl?view=geburtstage">Geburtstagskinder</a> <a href="show.dl?view=online">Wer ist online?</a> <a href="show.dl?view=neuemitglieder">Neue Mitglieder</a>
Direkter Aufruf geht nicht, man muss erst draufklicken
Ziel ist es wenn ich einen Namen habe die dazugehörige Nummer rauszufiltern, andersrum geht es...
Ich weiß nicht wie ich Autotit sagen soll das es da draufklick, hat weder Name noch ID...
Hoffe mir kann jemand helfen
Mhh ok, dürfte nicht das Problem sein, aber wie geht das dann mit Abfrage der 2ten Gui, genauso wie bei der ersten?
Und wie lasse ich das Fenster wo der Text steht aktuallisieren?
ja ne ist klar
Mir fehlt schlichtweg der Befehl der eine Art Popup aufpoppen läßt, das in klammern ist nur persönliche Notiz was es dann machen soll!
Mir fehlt nur nichts ein
Hallo, ich wollte eine Gui bauen, in welcher ich einen Text eingeben kann, wenn ich nun ein Wort Groß schreiben möchte klicke ich auf den Button "Groß", nun soll nen kleines Fenster aufpoppen wo ich das Wort/Satz eingeben kann, wenn ich das Popup schließe soll dieser Text mit den dazugehörigen Code in den Fesnter erscheinen,
Ebenso habe ich Buttons für die Hintergrundfarbe gemacht das sol aber ohne Vorschau ablaufen
soweit ist die Theorie
Sehr grobe Gui, nur zum teste etc
[autoit]
#include<GuiComboBox.au3>
#include<GUIConstantsEx.au3>
#include <file.au3>
#include <array.au3>
#include<File.au3>
Dim $aListe
;Gui
$Gui=GUICreate ('BBC', 900,600); Wagerechte; Höhe
GUISetBkColor(0xFFB200);FF6699);663399 )
GUISetFont(9, 300)
$number2 = GUICtrlCreateEdit ($altertext, 220,220,600,80,0)
;BBCODES für das Textfeld
$BBCDICK=GUICtrlCreateButton("Dick",220,190)
$BBCKlein=GUICtrlCreateButton("Klein",255,190)
$BBCGROS=GUICtrlCreateButton("Groß",295,190)
$BBCYoutube=GUICtrlCreateButton("Youtube",340,190)
$BBCGELBT=GUICtrlCreateButton("GelbT",455,190)
$BBCROTT=GUICtrlCreateButton("RotT",500,190)
$BBCBLAUT=GUICtrlCreateButton("BlauT",540,190)
$BBCGRUENT=GUICtrlCreateButton("GrünT",585,190)
$BBCBRAUN=GUICtrlCreateButton("BraunT",630,190)
$BBCHBLAUH=GUICtrlCreateButton("HBlauH",680,190)
$BBCGELBH=GUICtrlCreateButton("GelbH",735,190)
$BBCGRUENH=GUICtrlCreateButton("GrünH",780,190)
;Hyperlink
$endbutton = GUICtrlCreateButton('Beenden',830,550)
GUISetState(@SW_SHOW)
[/autoit][autoit][/autoit][autoit];Gui ENDE
While 1
$msg = GUIGetMsg()
If $msg <> 0 Then
$zahl2 = GUICtrlRead($number2)
Select
;Hile Abschnitt
;Hile Abschnitt
;BBCODES
case $msg = $BBCDICK
('Welcher Text soll Dick werden?')
case $msg = $BBCKlein
('Welcher Text soll klein werden?')
case $msg = $BBCGROS
('Welcher Text soll Groß werden?')
case $msg = $BBCYoutube
('Welches Video von Youtube soll eingebunden werden?')
case $msg = $BBCGELBT
('Welcher Text soll Gelb werden?')
case $msg = $BBCROTT
('Welcher Text soll Rot werden?')
case $msg = $BBCBLAUT
('Welcher Text soll Blau werdeb?')
case $msg = $BBCGRUENT
('Welcher Text soll Grün werden?')
case $msg = $BBCBRAUN
('Welcher Text soll Braun werden?')
case $msg = $BBCHBLAUH
case $msg = $BBCGELBH
case $msg = $BBCGRUENH
Case $msg = $endbutton Or $msg = $GUI_EVENT_CLOSE
[/autoit][autoit][/autoit][autoit]ExitLoop
EndSelect
EndIf
Wend