Bei so vielen Controls erstellst du diese doch hoffentlich in einem Array?
Dann bietet es sich natürlich auch an in einer Schleife das Array auszulesen und die Werte in eine IniSektion zu schreiben, bzw. beim Erstellen aus selbiger zu Befüllen.
Kannst natürlich auch mit einer normalen Textdatei arbeiten, jede Zeile ein Wert. Ich schätze die Performance wird hier keine großen Unterschiede aufweisen.
Beiträge von BugFix
-
-
Hallo Stilgar, zu deinem letzten Lebensjahr mit einer führenden 3
möchte ich dir recht herzlich gratulieren.
Laß ordentlich krachen, noch bist du BiFi (bis vierzig :P).[Blockierte Grafik: http://www.baeckereikleinstein.ch/fotos/kuchen/geb39.jpg]
-
Kann mich dem nur anschließen.
Ich sags mal provozierend: Ich betrachte Flash als eine Form von Virus. (Deshalb ist es bei mir auch standardmäßig deaktiviert)
-
Verwende doch die deutschen Sprachpakete für SAPI: Deutsche Sprachpakete für SAPI
-
Ich hab mal schnell die nötige Funktion dafür geschrieben:
Edit: Noch etwas gekürzt
[autoit]
Edit2: Noch zu lang
[/autoit]
;===================================================================================================
; Tabellenblatt kopieren
; $oExcel Excel-Objekt
; $vCopySheet Integer oder Name des zu kopierenden Tabellenblatts (Standard = 1)
; $sNameNewSheet Name des neuen Tabellenblattes (Standard = "" - 'alter_Name (2)')
; $fBefore Kopie vor oder nach Original (True/False, Standard = False)
; Autor BugFix
;===================================================================================================
Func _ExcelSheetCopy($oExcel, $vCopySheet=1, $sNameNewSheet='', $fBefore=False)
With $oExcel
.Sheets($vCopySheet).Select()
If $fBefore Then
.Sheets($vCopySheet).Copy(.Sheets($vCopySheet))
Else
.Sheets($vCopySheet).Copy(Default, .Sheets($vCopySheet))
EndIf
If $sNameNewSheet Then .ActiveSheet.Name = $sNameNewSheet
EndWith
EndFunc ;==>_ExcelSheetCopy -
-
Und falls du doch mehr als die Bemessungsgrenze verdienst,
dann solltest du dir gründlich überlegen, ob es Sinn macht eine private KV zu wählen. Auch wenn es etwas teurer ist, ist hier die freiwillige Versicherung in einer gesetzlichen Kasse zu empfehlen. Warum?
Auch private Kassen können nur über das Solidarprinzip existieren. Nur ist es hier auf den Kopf gestellt. Der junge Mensch zahlt wenig, da er mit dem Geld seinen Wohlstand aufbauen soll. Mit steigendem Alter steigen die Beiträge um eben die niedrigen Beiträge der Jungen zu finanzieren. Wer es also nicht schafft soviel zu verdienen, dass er die hohen Beiträge im Alter deckeln kann, ist u.U. dann ein Opfer der Altersarmut.
Ich kenne solche Fälle aus dem Bekanntenkreis. Im Arbeitsleben immer auf großem Fuß gelebt und jetzt im Rentenalter muß jeder Cent 3-mal umgedreht werden. Nur um mal eine Hausnummer zu nennen: Mit 40 Jahren einen Beitrag von ca. 250 EUR und mit 65 Jahren sind es dann >650 EUR !! Das ganze variiert noch stark nach dem gewählten Paket - also den Leistungen die du wählst (Du mußt abschätzen, ob du bestimmte Heil- u. Hilfsmittel benötigst. Hast du es abgewählt und brauchst es später zahlst du 100% selbst)
Ich betreue viele Patienten und die am meisten klagen sind privat versichert.
Ich war auch mal selbständig. Ein Bekannter der für eine private Versicherung als Vertreter unterwegs war wollte mich werben. Ich sagte: Ich möchte nur alle Leistungen, die die gesetzliche Kasse bietet - aber es darf nicht mehr als dort kosten, da knickte er ein und sagte, dass er das nicht bieten könne.
Das mag sich inzwischen etwas verändert haben aber sicher nicht wesentlich.
Mein Veto: Privat? - Nein Danke! -
Das Bsp. hier (http://www.autoitscript.com/forum/index.php?showtopic=95616&view=findpost&p=687555) gibt die Icon genau so aus, wie von dir erwartet.
Sieht für mich auf den ersten Blick so aus, wie der auf progandy verweisende Link. ==> War nur der erste Blick
- ist doch anders. -
Wenn du die Dll im ResHacker betrachtest siehst du, dass die Nummerierung nach der Kategorie "ICON GROUP" und nicht "ICON" erfolgt. Dann stimmen auch die gezeigten Nummern.
-
Aber bitte niemals als Berechnungsgrundlage verwenden (wann bin ich wieder fahrtüchtig)!
Allen Berechnungsverfahren ist eines gemeinsam: Es sind gemittelte Werte die die Individualität des Einzelnen außen vorlassen.
Leicht geänderte Körpertemperatur, bestimmte aufgenommene Nahrung, Stoffwechselbesonderheiten etc. pp. können das Ergebnis extrem beeinflussen. -
Das wollte ich auch grad schreiben , weil wenn chip eine Antwort kriegt ohne Nachfrage für was er es braucht möchte ich auch eine Antwort auf meine Frage in meinem Thread -.-''
Gleichberechtigung für alle !
Du willst dir unbedingt unseren Zorn zuziehen - oder?
Deine Aktivitäten waren sehr Botverdächtig, da waltet halt Vorsicht.
Das Registrieren eines Mausklick oder -Release ist ein stinknormaler Programmiervorgang, der stets und ständig verwendet wird. -
Du kannst auch über "OWC.Spreadsheet" ein Excel-Objekt erstellen.
[autoit]
Allerdings weiß ich nicht, ob es ohne die Versionszahl funktioniert, probier einfach mal:$oExcel = ObjCreate("OWC.Spreadsheet")
[/autoit] -
Was ist mit schiefen Linien? Die senkrechten und waagrechten sind ja einfach

Alter Spielverderber :D, aber ich hab immer irgendwie an Gerade gedacht.
Gibt aber 'ne Variante: In einer Schleife jeden Punkt der Linie mit _WinAPI_PtInRect abprüfen.
-
Da die Linie Höhe 1 hat ergibt das also ein RECT mit Höhe 1. Somit kann die Schnittfunktion genutzt werden.

Für die Gerade:
Spoiler anzeigen
[autoit]; Bsp-Daten:
[/autoit] [autoit][/autoit] [autoit]Local $lineX = 50
[/autoit] [autoit][/autoit] [autoit]
Local $lineLen = 120
Local $lineY = 20
Local $lineRECT = DllStructCreate("int Left;int Top;int Right;int Bottom")_WinAPI_SetRect($lineRECT, $lineX, $lineY, $lineX + $lineLen, $lineY +1)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit];===============================================================================
[/autoit]
; Function Name: _WinAPI_SetRect(ByRef $tRECT, $X1, $Y1, $X2, $Y2)
; Description: Befüllt eine RECT-Struktur in einem Aufruf mit Werten
; Parameter(s): $tRECT RECT-Struktur
; $X1, $Y1, $X2, $Y2 Werte des Rectangle
; Return Value(s): Erfolg <> 0
; Fehler 0 set @error 1-keine Struktur übergeben
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;===============================================================================
Func _WinAPI_SetRect(ByRef $tRECT, $X1, $Y1, $X2, $Y2)
If Not IsDllStruct($tRECT) Then Return SetError(1,0,0)
Local $ret = DllCall("user32", 'long', 'SetRect', 'ptr', DllStructGetPtr($tRECT), 'long', $X1, 'long', $Y1, 'long', $X2, 'long', $Y2)
If @error > 0 Then Return SetError(1,@error,0)
Return $ret[0]
EndFunc ;==>_WinAPI_SetRect -
Versuche es mit der folgenden Funktion. Verwende RECT-Strukturen für das Quadrat und die Gerade (Höhe 1).
[autoit];===============================================================================
[/autoit]
; Function Name: _WinAPI_IntersectRect(ByRef $Src1Rect, ByRef $Src2Rect)
; Description: Ermittelt Schnittmengen zweier RECT-Strukturen
; Parameter(s): $Src1Rect, $Src2Rect RECT-Strukturen aus denen Schnittmengen festgestellt werden sollen
; Return Value(s): Erfolg RECT-Struktur der Schnittmenge
; Fehler 0 set @error 1-keine Struktur(en) übergeben
; 2-Dll-Fehler (s. @extended)
; 3-keine Schnittmenge
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;===============================================================================
Func _WinAPI_IntersectRect(ByRef $Src1Rect, ByRef $Src2Rect)
If (Not IsDllStruct($Src1Rect)) Or (Not IsDllStruct($Src2Rect)) Then Return SetError(1,0,0)
Local $DestRect = DllStructCreate("int Left;int Top;int Right;int Bottom")
Local $ret = DllCall("user32", "int", "IntersectRect", "ptr", DllStructGetPtr($DestRect), "ptr", DllStructGetPtr($Src1Rect), "ptr", DllStructGetPtr($Src2Rect))
If @error > 0 Then Return SetError(2,@error,0)
If $ret[0] > 0 Then
Return $DestRect
Else
Return SetError(3,0,0)
EndIf
EndFunc ;==>_WinAPI_IntersectRect -
Du erhältst doch ein Array mit den leeren Verzeichnissen - einfach jedes Element mit DirRemove löschen.
-
Hehe die kenn ich schon (s. Skript).
Anscheinend nicht
Wenn du ClientSize speicherst und mit diesen Werten GUICreate benutzt ist die GUI logischerweise kleiner, da die GUI die Werte aus GUISize benötigt.
-
WinGetSize
WinGetClientSize
Das sollte deine Unklarheiten beseitigen.
-
Verwende nur eine Funktion für die Hotkeys, ist übersichtlicher:
Spoiler anzeigen
[autoit]For $i = 0 To 9
[/autoit] [autoit][/autoit] [autoit]
HotKeySet($i, '_HKFunc')
HotKeySet('{NUMPAD' & $i & '}', '_HKFunc')
HotKeySet('^{NUMPAD' & $i & '}', '_HKFunc')
HotKeySet('!{NUMPAD' & $i & '}', '_HKFunc')
HotKeySet('^!{NUMPAD' & $i & '}', '_HKFunc')
HotKeySet('^' & $i, '_HKFunc')
HotKeySet('!' & $i, '_HKFunc')
HotKeySet('^!' & $i, '_HKFunc')
Next
HotKeySet('#!e', '_HKFunc') ; Win+Alt+e zum BeendenWhile 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
WEndFunc _HKFunc()
[/autoit] [autoit][/autoit] [autoit]
Switch @HotKeyPressed
Case '#!e'
Exit
Case '0'
; der Send-Code
Case '^0'Case '^!0'
[/autoit] [autoit][/autoit] [autoit]Case '{NUMPAD0}'
[/autoit] [autoit][/autoit] [autoit]Case '^{NUMPAD0}'
[/autoit] [autoit][/autoit] [autoit]Case '!{NUMPAD0}'
[/autoit] [autoit][/autoit] [autoit]Case '^!{NUMPAD0}'
[/autoit] [autoit][/autoit] [autoit]; usw. usf.
[/autoit]
EndSwitch
EndFunc -
Werden alle Druckjobs vom Server verwaltet? Dann kannst du doch (wie in deinem letzten Thread von mir geschrieben) dort die Abfrage kontinuierlich laufen lassen und die Werte abspeichern.
Edit:
Vielleicht kannst du diese WMI-Abfragen ja auch verwerten:Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost";=======================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Returns total number of jobs, total number of pages, and largest job for all print queues on a computer.
;=======================================================================================================================
; Generated by AutoIt Scriptomatic$Output=""
[/autoit] [autoit][/autoit] [autoit]
$Output = $Output & "Computer: " & $strComputer & @CRLF
$Output = $Output & "==========================================" & @CRLF
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_PrintJob", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)If IsObj($colItems) then
[/autoit] [autoit][/autoit] [autoit]
For $objItem In $colItems
$Output = $Output & "Caption: " & $objItem.Caption & @CRLF
$Output = $Output & "DataType: " & $objItem.DataType & @CRLF
$Output = $Output & "Description: " & $objItem.Description & @CRLF
$Output = $Output & "Document: " & $objItem.Document & @CRLF
$Output = $Output & "DriverName: " & $objItem.DriverName & @CRLF
$Output = $Output & "ElapsedTime: " & WMIDateStringToDate($objItem.ElapsedTime) & @CRLF
$Output = $Output & "HostPrintQueue: " & $objItem.HostPrintQueue & @CRLF
$Output = $Output & "InstallDate: " & WMIDateStringToDate($objItem.InstallDate) & @CRLF
$Output = $Output & "JobId: " & $objItem.JobId & @CRLF
$Output = $Output & "JobStatus: " & $objItem.JobStatus & @CRLF
$Output = $Output & "Name: " & $objItem.Name & @CRLF
$Output = $Output & "Notify: " & $objItem.Notify & @CRLF
$Output = $Output & "Owner: " & $objItem.Owner & @CRLF
$Output = $Output & "PagesPrinted: " & $objItem.PagesPrinted & @CRLF
$Output = $Output & "Parameters: " & $objItem.Parameters & @CRLF
$Output = $Output & "PrintProcessor: " & $objItem.PrintProcessor & @CRLF
$Output = $Output & "Priority: " & $objItem.Priority & @CRLF
$Output = $Output & "Size: " & $objItem.Size & @CRLF
$Output = $Output & "StartTime: " & WMIDateStringToDate($objItem.StartTime) & @CRLF
$Output = $Output & "Status: " & $objItem.Status & @CRLF
$Output = $Output & "StatusMask: " & $objItem.StatusMask & @CRLF
$Output = $Output & "TimeSubmitted: " & WMIDateStringToDate($objItem.TimeSubmitted) & @CRLF
$Output = $Output & "TotalPages: " & $objItem.TotalPages & @CRLF
$Output = $Output & "UntilTime: " & WMIDateStringToDate($objItem.UntilTime) & @CRLF
if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop
$Output=""
Next
Else
Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_PrintJob" )
EndifFunc WMIDateStringToDate($dtmDate)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Return (StringMid($dtmDate, 5, 2) & "/" & _
StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _
& " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate,13, 2))
EndFunc;=======================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Uses cooked performance counters to retrieve data such as total number of jobs printed and total number of printing errors for each print queue on a computer.
;=======================================================================================================================
; Generated by AutoIt Scriptomatic$Output=""
[/autoit] [autoit][/autoit] [autoit]
$Output = $Output & "Computer: " & $strComputer & @CRLF
$Output = $Output & "==========================================" & @CRLF
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_PerfFormattedData_Spooler_PrintQueue", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)If IsObj($colItems) then
[/autoit]
For $objItem In $colItems
$Output = $Output & "AddNetworkPrinterCalls: " & $objItem.AddNetworkPrinterCalls & @CRLF
$Output = $Output & "BytesPrintedPersec: " & $objItem.BytesPrintedPersec & @CRLF
$Output = $Output & "Caption: " & $objItem.Caption & @CRLF
$Output = $Output & "Description: " & $objItem.Description & @CRLF
$Output = $Output & "EnumerateNetworkPrinterCalls: " & $objItem.EnumerateNetworkPrinterCalls & @CRLF
$Output = $Output & "Frequency_Object: " & $objItem.Frequency_Object & @CRLF
$Output = $Output & "Frequency_PerfTime: " & $objItem.Frequency_PerfTime & @CRLF
$Output = $Output & "Frequency_Sys100NS: " & $objItem.Frequency_Sys100NS & @CRLF
$Output = $Output & "JobErrors: " & $objItem.JobErrors & @CRLF
$Output = $Output & "Jobs: " & $objItem.Jobs & @CRLF
$Output = $Output & "JobsSpooling: " & $objItem.JobsSpooling & @CRLF
$Output = $Output & "MaxJobsSpooling: " & $objItem.MaxJobsSpooling & @CRLF
$Output = $Output & "MaxReferences: " & $objItem.MaxReferences & @CRLF
$Output = $Output & "Name: " & $objItem.Name & @CRLF
$Output = $Output & "NotReadyErrors: " & $objItem.NotReadyErrors & @CRLF
$Output = $Output & "OutofPaperErrors: " & $objItem.OutofPaperErrors & @CRLF
$Output = $Output & "References: " & $objItem.References & @CRLF
$Output = $Output & "Timestamp_Object: " & $objItem.Timestamp_Object & @CRLF
$Output = $Output & "Timestamp_PerfTime: " & $objItem.Timestamp_PerfTime & @CRLF
$Output = $Output & "Timestamp_Sys100NS: " & $objItem.Timestamp_Sys100NS & @CRLF
$Output = $Output & "TotalJobsPrinted: " & $objItem.TotalJobsPrinted & @CRLF
$Output = $Output & "TotalPagesPrinted: " & $objItem.TotalPagesPrinted & @CRLF
if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop
$Output=""
Next
Else
Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_PerfFormattedData_Spooler_PrintQueue" )
Endif