Hab am Montag Abend Panik geschoben wegen eines Tests und hab dies zur Beruhigung geschrieben.
Ein Calculator der durch seine extreme Einfachheit bestechen soll .
Einfach nur eine Inputbox in der man eine Rechnung durchführen kann.
War dann doch schon zu spät, um weitere Funktionen hinzuzufügen (und auch nicht unbedingt notwendig).
Das witzige ist, dass er auf der Desktopoberfläche kaum auffällt und sich über einen einfachen Tastendruck
verstecken lässt.
Spoiler anzeigen
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.2.11.3
Name: Secret Calculator
Version: 1.0.0.8
Datum: 24.03.2008
Author: Patric Pendelin eMail: <patric.pendelin (at) gmx.de>
Info: Einfacher Calculator mit simplen Funktionen, der darauf aufbaut nicht durch seine
ausgefeilte GUI ins Gewicht zu fallen.
Script Function:
Fixes:
To Do:
Möglichkeiten zur Erweiterung sind:
-weitere mathematische Funktionen hinzufügen.
-Komplett ohne sichtbare GUI arbeiten (evntl. Ergebniss mit Tooltip Anzeigen lassen oder Ergebnis ins Kontextmenü übergeben).
-Optionsmenü, dass GUI Aussehen bzw. Verhalten zur Auswahl stellt.
-Fensterdarstellungen für verschiedene Desktopgrößen optimieren.
#ce ----------------------------------------------------------------------------
#NoTrayIcon
;===============================================================================
; Includes
;===============================================================================
#include <WindowsConstants.au3>
#include <GuiConstants.au3>
#include <GuiToolBar.au3>
;~ #include <EditConstants.au3>
#include <Misc.au3>
;
;===============================================================================
; AutoItSetOption
;===============================================================================
Opt('MustDeclareVars', 1)
Opt("GUIOnEventMode", 1)
;
;===============================================================================
; HotKeySet
;===============================================================================
HotKeySet("{PAUSE}", "_hideTool")
HotKeySet("{PRINTSCREEN}", "_clearScreen")
HotKeySet("!q", "_exitTool")
HotKeySet("!s", "_MathSin")
HotKeySet("!c", "_MathCos")
HotKeySet("!t", "_MathTan")
;
;===============================================================================
; Declaring Variables
;===============================================================================
Global $h_Wnd
Global $h_Input_Display
;
;===============================================================================
; Start Program
;===============================================================================
_main()
;
;===============================================================================
; Functions
;===============================================================================
Func _main()
_builtMainGUI()
EndFunc ;==>_main
;
Func _calculate($i_Value)
GUICtrlSetData($h_Input_Display, Execute($i_Value))
EndFunc ;==>_calculate
;
; Funktion _PrimeDown
; Ermöglicht das verschieben eines Popup Fensters
; by AspirinJunkie @ autoit.de
; http://www.autoit.de/index.php?page…28539#post28539
Func _PrimeDown()
Local $DifX, $DifY, $MouseData = GUIGetCursorInfo(@GUI_WinHandle)
Local $WinPos = WinGetPos(@GUI_WinHandle)
Local $MPos = MouseGetPos()
;
$DifX = $MPos[0] - $WinPos[0]
$DifY = $MPos[1] - $WinPos[1]
While $MouseData[2]
$MPos = MouseGetPos()
$WinPos = WinGetPos(@GUI_WinHandle)
If ($WinPos[0] <> ($MPos[0] - $DifX)) Or ($WinPos[1] <> ($MPos[1] - $DifY)) Then
WinMove(@GUI_WinHandle, '', $MPos[0] - $DifX, $MPos[1] - $DifY)
EndIf
Sleep(15)
$MouseData = GUIGetCursorInfo(@GUI_WinHandle)
WEnd
EndFunc ;==>_PrimeDown
;
; Funktion _TaskbarHideButton
; Entfernt alle Taskbars die durch den Parameter bestimmt werden
; by Siao @ autoitscript.com
; http://www.autoitscript.com/forum/index.ph…ndpost&p=460233
Func _TaskbarHideButton($sText, $bHide = True)
Local $hToolbar
Local $cId
;
$hToolbar = _GUICtrlToolbar_FindToolbar("[CLASS:Shell_TrayWnd]", $sText)
If $hToolbar = 0 Then Return False
For $i = 0 To _GUICtrlToolbar_ButtonCount($hToolbar) - 1
$cId = _GUICtrlToolbar_IndexToCommand($hToolbar, $i)
If _GUICtrlToolbar_GetButtonText($hToolbar, $cId) = $sText Then
Return _GUICtrlToolbar_HideButton($hToolbar, $cId, $bHide)
EndIf
Next
Return False
EndFunc ;==>_TaskbarHideButton
;
;===============================================================================
; Hotkeys
;===============================================================================
; Funktion _exitTool
; Beendet das Programm
Func _exitTool()
Exit
EndFunc ;==>_exitTool
;
; Funktion _hideTool
; Aktiviert/deaktiviert das Programmfenster
Func _hideTool()
If WinGetState($h_Wnd, "") <> 5 Then
GUISetState(@SW_HIDE)
_TaskbarHideButton("Secret Calculator")
Else
GUISetState(@SW_SHOW)
_TaskbarHideButton("Secret Calculator")
EndIf
EndFunc ;==>_hideTool
;
; Nullt die mom. Rechnung
Func _clearScreen()
GUICtrlSetData($h_Input_Display, "")
EndFunc ;==>_clearScreen
;
; führt Sinus Rechnung durch
Func _MathSin()
Local $i_Number
$i_Number = GUICtrlRead($h_Input_Display)
GUICtrlSetData($h_Input_Display, Sin($i_Number))
EndFunc ;==>_MathSin
;
; führt Cosinus Rechnung durch
Func _MathCos()
Local $i_Number
$i_Number = GUICtrlRead($h_Input_Display)
GUICtrlSetData($h_Input_Display, Cos($i_Number))
EndFunc ;==>_MathCos
;
; führt Tan Rechnung durch
Func _MathTan()
Local $i_Number
$i_Number = GUICtrlRead($h_Input_Display)
GUICtrlSetData($h_Input_Display, Tan($i_Number))
EndFunc ;==>_MathTan
;
;===============================================================================
; GUI
;===============================================================================
Func _builtMainGUI()
;#Region ### START Koda GUI section ### Form=E:\Design\CS-Source Config\Form1_1.kxf
$h_Wnd = GUICreate("Secret Calculator", 110, 17, Round(@DesktopWidth * 88 / 100), Round(@DesktopHeight * 86 / 100), $WS_POPUP)
GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "_PrimeDown")
GUISetFont(9, 400, 0, "MS Sans Serif")
GUISetBkColor(0xffffff)
$h_Input_Display = GUICtrlCreateInput("", 0, 0, 110, 17);, $ES_RIGHT);, $WS_EX_TRANSPARENT)
GUISetState(@SW_SHOW)
_TaskbarHideButton("Secret Calculator")
;#EndRegion ### END Koda GUI section ###
;
;================================================================================
; Start GUI Event-Loop
;================================================================================
Local $nMsg
Local $dll = DllOpen("user32.dll"); für Tastendruck erkennung
While 1
WinSetOnTop($h_Wnd, "", 1)
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
; erkennt Tastendruck und führt Bedingung aus
If _IsPressed("0D", $dll) Then; 0D ENTER key
_calculate(GUICtrlRead($h_Input_Display))
EndIf
WEnd
DllClose($dll)
EndFunc ;==>_builtMainGUI
Änderungs bzw. Verbesserungsvorschläge sind natürlich gerne willkommen
Gruß
Patric