Moin,
im Header winuser.h sind die meisten (Fenster-)Stile enthalten ...
winuser.h, oder
w32api-3.13-mingw32-dev.tar.gz herunterladen, dann hast Du sie alle und noch mehr. ![]()
Gruß
Greenhorn
Moin,
im Header winuser.h sind die meisten (Fenster-)Stile enthalten ...
winuser.h, oder
w32api-3.13-mingw32-dev.tar.gz herunterladen, dann hast Du sie alle und noch mehr. ![]()
Gruß
Greenhorn
Das ist eigentlich nicht weiter schlimm, Du kannst das Skript ohne den "Wrapper" trotzdem ausführen.
Die Konsolenausgabe ist von der au3check.exe und ist eigentlich ein Bug.
Damit Du es tritzdem in SciTE starten kannst, musst Du die ausgegebenen Deklarationen in der ModernMenu.au3 auskommentieren.
Oder Du nimmst diese:
Gruß
Greenhorn
also SciTe is eig für Autoit da und nicht für C, also glaube ich nicht das man das machen kann
"SciTE4AutoIt3" ist auf AutoIt zugeschnitten.
SciTE, das Original, ist ein allgemeiner (Code-)Editor. ![]()
Aber da Du eh' nur in C schreiben möchtest, kannst Du auch SciTE4AutoIt3 nehmen.
Oder Du nimmst gleich eine IDE, Code::Blocks z.B. ...
Diese IDE unterstützt eine vielzahl an Compilern.
Auch gut: Pelles C.
Gruß
Greenhorn
Moin,
TrayIconSetClick (flag)
Du kannst dir auch folgendes mal ansehen ...
http://www.autoitscript.com/forum/index.php?s=ebc2f085b48873bd6f103c4630e9eb74&showtopic=20967
Lade dir die UDF herunter und sieh dir das Beispiel WinToTray an ... ![]()
Gruß
Greenhorn
Hmmm, wie gesagt, bei mir sieht es so aus ...
Gruß
Greenhorn
Hast Du das obige Skript getestet ?!!?
Breite und Höhe werden im Konsolenfenster angezeigt ...
Greenhorn
Hast Du schon geprüft, was dir WinGetClientSize zurückgibt ?
Also, so ist's bei mir zu sehen ...
(Dateipfad musst Du noch anpassen)
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <TabConstants.au3>
#include <StaticConstants.au3>
$hWndMain = GUICreate ("NoteIt", 640, 480, -1, -1, _
$WS_POPUPWINDOW, $GUI_WS_EX_PARENTDRAG)
GUISetIcon ("\Images\NoteIt - Icon.ico")
[/autoit] [autoit][/autoit] [autoit]; Menü
$Datei = GUICtrlCreateMenu ("&Datei")
$Speichern = GUICtrlCreateMenuItem ("&Speichern", $Datei)
$Beenden = GUICtrlCreateMenuItem ("Be&enden", $Datei)
$Bearbeiten = GUICtrlCreateMenu ("&Bearbeiten")
$Einfuegen = GUICtrlCreateMenuItem ("&Einfügen", $Bearbeiten)
$Backmake = GUICtrlCreateMenuItem ("&Rückgängig", $Bearbeiten)
$Kopieren = GUICtrlCreateMenu ("&Kopieren", $Bearbeiten)
$KopierenAll = GUICtrlCreateMenuItem ("&Alles kopieren", $Kopieren)
$KopierenMark = GUICtrlCreateMenuItem ("&Nur Makierung kopieren", $Kopieren)
$Hilfe = GUICtrlCreateMenu ("&Hilfe")
$UberNoteIt = GUICtrlCreateMenuItem ("Über", $Hilfe)
; Registerkarte
$UberTab = GUICtrlCreateTab (0, 0, 643, 433, $TCS_BOTTOM)
$Tab1 = GUICtrlCreateTabItem ("N&otizen")
$Edit1 = GUICtrlCreateEdit ("", 4, 5, 632, 397)
GUICtrlSetData (-1, "")
;~ GUICtrlSetFont (-1, 10, 400, 0, "Arial")
$Tab2 = GUICtrlCreateTabItem ("Z&wischenablage")
$Edit2 = GUICtrlCreateEdit ("", 4, 5, 632, 397)
GUICtrlSetData (-1, "")
;~ GUICtrlSetFont (-1, 10, 400, 0, "Arial")
$Tab3 = GUICtrlCreateTabItem ("Sons&tiges")
$Edit3 = GUICtrlCreateEdit ("", 4, 5, 632, 397)
GUICtrlSetData (-1, "")
;~ GUICtrlSetFont (-1, 10, 400, 0, "Arial")
$Tab4 = GUICtrlCreateTabItem ("To-&Do")
$Edit4 = GUICtrlCreateEdit ("", 4, 5, 632, 397)
GUICtrlCreateTabItem ("")
; Footer
$aClientSize = WinGetClientSize ($hWndMain)
If IsArray ($aClientSize) Then
ConsoleWrite (StringFormat ("Width : %d\r\nHeight: %d\r\n", _
$aClientSize[0], $aClientSize[1]))
EndIf
$cyTop = $aClientSize[1] - 25
$Header = GUICtrlCreatePic (".\Header.jpg", _
0, $cyTop, 640, 25, _
BitOR ($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUICtrlSetFont ($UberTab, 10, 400, 0, "Arial") ; Schrift für Registerkarte
GUICtrlSetResizing ($UberTab, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
GUISetState (@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While True
Switch (GUIGetMsg ( ))
Case $GUI_EVENT_CLOSE ; wegen Alt+F4
ExitLoop
Case $Beenden ; Menüelement Beenden
ExitLoop
EndSwitch
WEnd
Gruß
Greenhorn
Moinsen,
Also, zu deinem "Header" Problem ...
Wenn Du ein Fenster erzeugst, bezieht sich die Angabe der Größe, in deinem Falle 640x480, auf das gesamte Fenster, also inklusive Rahmen.
Für Steuerelemente bezieht sich die Angabe der Position auf den Anwendungsbereich des (Eltern-)Fensters.
Das ist grob gesagt die Fensterfläche ohne Rahmen und Menüleiste/Statusleiste, sofern vorhanden. ![]()
Du kannst nun natürlich die Pixel zählen und diese dann vom Gesamtmaß abziehen, das ist aber erstens sehr unelegant und zweitens setzt Du dabei immer voraus, dass alle Fenster diese Rahmengröße besitzen.
Was machst Du aber, wenn jemand den visuellen Stil deaktiviert hat, oder Win2000, Vista oder XP nutzt ?
Daher empfiehlt es sich bei solchen Positionsberechnungen immer den Anwendungsbereich zu ermitteln.
[autoit]
$iHeight = 25 ; Höhe des Pic-Steuerelements
; Größe des Anwendungsbereichs ermitteln.
$aClientSize = WinGetClientSize ($hWndMain )
; Anfangsposition des Pic-Steuerelements errechnen.
$cyHeaderTop = $aClientSize[1] - $iHeight
; Steuerelement erzeugen.
$Header = GUICtrlCreatePic("\Images\Header.jpg", _
0, $cyHeaderTop , 640, $iHeight, _
BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
EDIT:
Was das Erscheinungbild der Registerkartenelemente angeht, versuche mal $TCS_FLATBUTTONS.
Greenhorn
Es gibt kein "echtes" Multitasking !
Dazu bräuchtest Du für jeden Prozess eine CPU und 4 GB RAM (bei 32bit).
Alles andere ist Emulation.
Wenn man über mehrere Prozessorkerne verfügt, kann man "echtes" Multithreading innerhalb eines Prozesses realisieren, mehr eigentlich nicht.
LG
Greenhorn
Moin,
öffne Resource Hacker und entferne das XP Manifest.
Resource Typ 1, Resource ID 24.
Der Fensterrahmen ist dann aber auch im Win2ooo Stil ... ![]()
LG
Greenhorn
Moin,
Was Du falsch gemacht hast ?
Nichts.
Im ersten Falle findet StringRegExp 12 und 3, da das Suchmuster "finde Zahl mit mindestens einer, aber höchstens zwei Stellen" von dir definiert wurde.
Bei einem "verbrauchendem" Suchmuster ergibt das eben 12 und 3.
Im zweiten Fall ist dein Suchmuster ungültig. (@error = 2)
In dem Suchmuster suchst Du nach ... nichts.
LG
Greenhorn
Moin,
hmm, gute Frage ...
Also, die Anordnung der Symbole werden in einem "Stream" gehalten.
Dieser befindet sich im Speicher.
Den Inhalt kannst Du in folgendem Registrierungsschlüssel einsehen:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams
Dort könntest Du die Anordnung auch theoretisch ändern, aber die Änderungen würden sich erst nach einem Neustart zeigen, was sie aber nicht tun werden, denn beim herunterfahren des Betriebssystems wird der "Stream" aus dem Speicher in die Registrierung unter obigem Schlüssel abgespeichert.
So geht es also schon einmal nicht ! ![]()
Bleibt also eigentlich nur noch: Destopfenster auslesen und dort sein Glück versuchen ...
LG
Greenhorn
Moin,
in diesem Beispiel zeige ich, wie man ein eigen-definiertes Steuerelement erzeugt.
Dieses Steuerelement ist eine stinknormale Schaltfläche mit Bitmaps.
Nutzwert gering, aber dient ja auch nur zu Studienzwecken ...
EDIT:
Kleines Update 25.o1.2o12
Einige Bugfixes.
Das Skript ist noch nicht wirklich fertig, könnte also noch Bugs enthalten läuft aber soweit gut.
Also nicht meckern über die ein oder andere Schwäche. ![]()
LG
Greenhorn
Moin,
vielleicht bringt dich das ans Ziel ... ![]()
Send ("{ENTER}")
[/autoit]LG
Greenhorn
Moin,
musst schauen, ob Du damit leben kannst ... ![]()
#include <GuiConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]Global $Button[5][2]
[/autoit] [autoit][/autoit] [autoit]$GUI = GUICreate("", 500, 500)
[/autoit] [autoit][/autoit] [autoit]$Button[0][0] = GUICtrlCreatePic (".\empty.gif", 50, 100, 50, 50)
$Button[1][0] = GUICtrlCreatePic (".\empty.gif", 100, 100, 50, 50)
$Button[2][0] = GUICtrlCreatePic (".\empty.gif", 150, 100, 50, 50)
$Button[3][0] = GUICtrlCreatePic (".\empty.gif", 200, 100, 50, 50)
$Button[4][0] = GUICtrlCreatePic (".\empty.gif", 250, 100, 50, 50)
GUISetState(@SW_SHOW, $GUI)
;############### LOOP ###############
While 1
$Mouseover = GUIGetCursorInfo ($GUI)
For $i = 0 To 4
If $Mouseover[4] == $Button[$i][0] Then
For $ix = 0 To 4
If ($ix <= $i And Not $Button[$ix][1]) Then
GUICtrlSetImage ($Button[$ix][0], ".\full.gif")
$Button[$ix][1] = True
EndIf
If ($ix > $i And $Button[$ix][1]) Then
GUICtrlSetImage ($Button[$ix][0], ".\empty.gif")
$Button[$ix][1] = False
EndIf
Next
ElseIf $Mouseover[4] == 0 Then
If ($Button[$i][1]) Then
GUICtrlSetImage ($Button[$i][0], ".\empty.gif")
$Button[$i][1] = False
EndIf
EndIf
Next
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
LG
Greenhorn
p.s.: Es hat nicht nur geflackert, sondern auch die CPU voll ausgelastet !
Moin,
If FileExists("C:\test.txt") Then _
FileDelete("C:\test.txt")
RunWait(@ComSpec & " /c dir c:\Programme\AutoIt3 /A:-D /B /s >> C:\test.txt","",@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]ShellExecute ("C:\test.txt")
[/autoit] [autoit][/autoit] [autoit][/autoit]LG
Greenhorn
Moin
besser noch Du benutzt das Fensterhandle, das klappt immer ! ![]()
LG
Greenhorn
Entweder das, oder Du spielst ein wenig mit dem Run () Parameter WorkingDir, hat mich auch schon einmal gerettet ... ![]()
LG
Greenhorn