genau deine 2. variante würde gehen
Beiträge von Kijan
-
-
also ihc seh den sinn noch nicht den du mit der if abfrage haben willst aber es ist auch nen Klammerfehler in Zeile 7.
Du musst auch wissen das du pro Key in einer Inidatei nur ein Wert haben kannst.
also wenn du in der Section Passwort schon nen Key mit Passwort hast dann wird der überschrieben das ist normal
du musst nen neuen Key anlegen.
Zb:[Section]
Key1 = Wert1
Key2 = Wert2es geht nicht
[Section]
Key1 = Wert1
Key1 = Wert2 -
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <IE.au3>
#Include <Array.au3>
#Include <Timers.au3>
#Include <WinAPI.au3>#region
[/autoit] [autoit][/autoit] [autoit]
$SPI_GETWORKAREA = 0x0030
;~ $SM_CXFRAME = 32
;~ $SM_CYFRAME = 33
;~ $SM_CYCAPTION = 4$Rect = DllStructCreate("uint[4]")
[/autoit] [autoit][/autoit] [autoit]
_WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, DllStructGetPtr($Rect))$Frame_H = _WinAPI_GetSystemMetrics($SM_CXFRAME)
[/autoit] [autoit][/autoit] [autoit]
$Frame_W = _WinAPI_GetSystemMetrics($SM_CYFRAME)
$WorkArea_H = DllStructGetData($Rect, 1, 4)
$WorkArea_W = DllStructGetData($Rect, 1, 3)
$Caption_H = _WinAPI_GetSystemMetrics($SM_CYCAPTION)
#endregion$Form1 = GUICreate("Form1", 300, 150, $WorkArea_W - 300 + 1, $WorkArea_H - 150 - $Caption_H + 1)
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW, $Form1)While 1
[/autoit]
WEndfunktioniert
-
Probiers doch einfach mal aus.
vllt weist eine deiner includes die variable zu -
@Sprenger
zu 3.)
so hast du aber wie ich schon gesagt habe den Rand nicht berücksichtigt.
Sprich dein rand ist auserhalb des Bildes.
Da dein Fenster nich 500 groß ist sondern deine Fläche, die du bearbeiten kannst.
Enthalten ist dort nicht die Titelleiste und der Rahmen und schon gar nicht die Taskbar.Das kannste im folgenden Bsp sehen.
Spoiler anzeigen
[autoit]$GuiBreite = 500
[/autoit]
$GuiHoehe = 500
GUICreate("TestGUI", $GuiBreite, $GuiHoehe, @DesktopWidth - $GuiBreite, @DesktopHeight - 500)
GUICtrlCreateLabel("Siehst du mich?", 10, 480)
GUISetState(@SW_SHOW)
Do
Until GUIGetMsg() = -3 -
hmm kann ich mir nicht erklären wie gesagt wenn ich deins oben kopiere klappt es bei mir wunderbar
-
hmm kann so eigentlich nich sein... sicher das du in deinem script nich ausversehn stringtohex hast als hextostring?
ich kann es mir sonst nich erklären.... -
probier mal ohne 0x
also
44696573206973742065696E205465737420537472696E67 -
also wenn ich dein bsp ausprobiere bekomme ich bei der ersten msg wie es sein soll die hexwerte und nach der 2. bekomm ihc den richtigen string...
ich hab in der textdatei folgendes drinn
Spoiler anzeigen
0x44696573206973742065696E205465737420537472696E67
damit geht es wunderbar...
-
ich meinte den rand deines guis^^ das sind 5 pixel glaub
und dann die Taskbar von 50 pixel zumindest bei mir
macht dann
GUICreate("Mein GUI",100,100,@DesktopWidth - 105, @DesktopHeight - 155)
aber wie du feststellst ob die taskbar da is weis ich nit -
Spoiler anzeigen
[autoit]GUICreate("Mein GUI","Breite","Höhe","Linker Rand", "Oberer Rand")
[/autoit]
@DesktopWidth Breite des Desktops
@DesktopHeight Höhe des Desktopsals linker Rand nimmste dann die Desktopbreite minus deine Fensterbreite und den Ramen solltest auch mit einbeziehen
als oberer Rand nimmste die Desktophöhe minus Fensterhöhe und Rahmen -
zu 1) du könntest on event mode benutzen
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent ModusGUICreate("Mein GUI",100,100,@DesktopWidth - 100, @DesktopHeight - 100)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
$label = GUICtrlCreateLabel("Klick mich", 10, 30) ; Erste Zelle, Breite 80
GUICtrlSetOnEvent($label, "LabelKlick")GUISetState() ; Zeigt eine leere Dialogbox an
[/autoit] [autoit][/autoit] [autoit]; GUI starten, bis der Dialog beendet wird
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
While 1
Sleep(1000) ; Im Leerlauf bummeln
WEndFunc LabelKlick()
[/autoit] [autoit][/autoit] [autoit]
;Beachte: an diesem Punkt wäre @GUI_CTRLID gleich $okbutton,
;und @GUI_WINHANDLE wäre gleich $mainwindow
MsgBox(0, "GUI Event", "Du hast auf das Label geklickt geklickt!")
EndFuncFunc CLOSEClicked()
[/autoit]
Exit
EndFunc2) ka^^
3) meinst du das was im oberen bsb zu sehen is? so ca.. musst nur noch den rahmen beachten
EDIT:
zu 2.)
vllt hilft dir das hier -
ich versuch mich ma ein wenig xD
aber ich glaube nich, dass du mehr mit excel anstellen kannst als das mit VBA aber ich weis es nicht
ich werd ma reinschaun -
also was ich so festgestellt habe ist, dass du mit AutoIt wie mit VBA artbeitest.
Alles was du mit VBA kannst kannst auch mit AutoIt machen.
Ich hab das immer so gemacht, dass ich mit VBA mir was zusammengebastelt habe und dass dann in AutoIt übersetzt habe. -
Die namen setzen sich doch bestimmt aus gewissen sachen zusammen?
Vllt Datum?
Oder einfach ne fortlaufende Nummer?
Man könnte dann einfach alle Dateien einlesen und raussuchen.
Das einlesen is hier im Forum schon öfter besprochen worden, Ich werds mal raussuchen und verlinkenEDIT:
Hier könntest du den / die Ordner durchsuchen lassenIch benutze eine leicht abgewandelte Form von FLwStr von AspirinJunkie
-
es ging nich darum eine taste bzw tastenkombi zu dürcken sondern nach einer kombi eine zweite als folge quasi so hab ich das zumindest verstanden^^
das normale Tastenkobis funktionieren weis ich -
ein wenig umständlich sollte das bei Hotkeyset auch gehen
Wenn du in deiner aufgerufenen Funktion nen neuen Hotkey setzt und ne Schleife und danach wieder den hotkey wegnimmst
mal austesten^^EDIT:
Ja es geht aber man muss da mehr aufwand betreieben als mit ispressed denk ich^^
man muss ne globale variable noch mit einbauen und eventuell den aktuellen hotkey auch wieder rausnehmen
also es geht aber nich schön -
Noch ma zum unterschied von Hotkeyset und Ispressed.
Ispressed müsste man immer abfragen. Dies kann bei Programmen die mehr machen sollen, als Tasten abzufragen zu Zeitproblemen führen.
Hotkeyset dagegen ist es egal was gerade gemacht wird. Es wird ausgeführt sobald die Taste bzw Tastenkombination gedrückt wird.
Von daher würd ich Hotkeyset immer dann benutzen wenn es wichtig is, dass was passiert wenn ich drücke, egal wann.
Ispressed würd ich mit einer Verknüpfung von ner while Schleife zum abwarten bis eine Taste gedrückt wurde.
Also wenn das Programm erst weiterarbeiten soll wenn die Taste gedrückt wurde. -
Meinst Du das dann so ?:
[autoit]Func _func_read_ini($var_local_ini_name, $var_local_ini_sektion, $var_local_ini_key)
[/autoit]
Local $var_local_ini_name, $var_local_ini_sektion, $var_local_ini_key
$var_local_ini_wert = IniRead($var_local_ini_name, $var_local_ini_sektion, $var_local_ini_key, "Schlüssel " & $var_local_ini_key & " existiert nicht")
If $var_local_ini_wert = "" Then
$var_local_ini_wert = "Wert von Schlüssel " & $var_local_ini_key & " in Sektion [" & $var_local_ini_sektion & "] ist nicht vorhanden"
MsgBox(0, "Warnung", $var_local_ini_wert, 3)
EndIf
Return $var_local_ini_wert
EndFunc ;==>_func_read_ini
also du kannst
Local $var_local_ini_name, $var_local_ini_sektion, $var_local_ini_key
weglassen, wie ich oben geschrieben habe sind die variablen die du in der funktionszeile definierst schon als lokale variablen deklariert
also :
Func _func_read_ini($var_local_ini_name, $var_local_ini_sektion, $var_local_ini_key)
definiert schon die variablen $var_local_ini_name, $var_local_ini_sektion, $var_local_ini_key
also kannst die sofort nutzenZitat
Wieso Lokal ? Ich definiere die doch ganz oben als Global! (im ersten Beispiel ganz oben)
ich meinte das du es schon richtig gemacht hast nur halt das anstelle der globalen eine lokale Variable hin soll^^ -