|
You last visited: Today at 05:09
Advertisement
Autoit 2 Fragen
Discussion on Autoit 2 Fragen within the AutoIt forum part of the Coders Den category.
10/28/2014, 20:54
|
#1
|
elite*gold: 7
Join Date: Dec 2012
Posts: 387
Received Thanks: 72
|
Autoit 2 Fragen
Hey.
Erste frage :
Ich möchte Bilder in ein von mir geschriebenes Programm einfügen. Das mache ich über Koda. Aber die Bilder werden dann nur angezeigt wenn man sich auch selbst auf dem PC hat. Ich will aber das die Bilder im Programm dabei sind.
Zweite Frage :
Ist es möglich einzustellen das dass Programm nicht schließbar ist? Also das der X Button ausgegraut ist oder gar nicht vorhanden. Ich mache nämlich so ein kleines Spaß Programm um Freunde zu trollen.
|
|
|
10/28/2014, 21:20
|
#2
|
elite*gold: 240
Join Date: Mar 2014
Posts: 374
Received Thanks: 585
|
Quote:
Originally Posted by Aligator4820
Hey.
Erste frage :
Ich möchte Bilder in ein von mir geschriebenes Programm einfügen. Das mache ich über Koda. Aber die Bilder werden dann nur angezeigt wenn man sich auch selbst auf dem PC hat. Ich will aber das die Bilder im Programm dabei sind.
Zweite Frage :
Ist es möglich einzustellen das dass Programm nicht schließbar ist? Also das der X Button ausgegraut ist oder gar nicht vorhanden. Ich mache nämlich so ein kleines Spaß Programm um Freunde zu trollen.
|
Bild kannst du via Inetget downloaden. Du kannst es aber auch von einem FTP server downloaden oder mit einem FilePacker das Bild an die exe Hängen.
GUI_EVENT_CLOSE (-3) es ist möglich mithilfe von styles keine Controlbox zu generieren. Du kannst aber auch ganz einfach den Befehl zum schließen entfernen.
|
|
|
10/28/2014, 21:28
|
#3
|
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,257
|
Quote:
Originally Posted by Aligator4820
Hey.
Erste frage :
Ich möchte Bilder in ein von mir geschriebenes Programm einfügen. Das mache ich über Koda. Aber die Bilder werden dann nur angezeigt wenn man sich auch selbst auf dem PC hat. Ich will aber das die Bilder im Programm dabei sind.
Zweite Frage :
Ist es möglich einzustellen das dass Programm nicht schließbar ist? Also das der X Button ausgegraut ist oder gar nicht vorhanden. Ich mache nämlich so ein kleines Spaß Programm um Freunde zu trollen.
|
Zu 1.
Code:
FileInstall("C:\test.bmp", "D:\mydir\test.bmp")
unter die Includes packen.
Der 1ste Parameter ist der jetzige Pfad, der 2te wo es beim Ausführen hinkommt.
Einfach den Pfad von dem Bild an den neuen Pfad anpassen.
Zu 2.
Code:
$Form1 = GUICreate("Form1", 359, 299, 448, 263, 0)
|
|
|
10/29/2014, 21:45
|
#4
|
elite*gold: 7
Join Date: Dec 2012
Posts: 387
Received Thanks: 72
|
Quote:
Originally Posted by Kilroy.
Zu 1.
Code:
FileInstall("C:\test.bmp", "D:\mydir\test.bmp")
unter die Includes packen.
Der 1ste Parameter ist der jetzige Pfad, der 2te wo es beim Ausführen hinkommt.
Einfach den Pfad von dem Bild an den neuen Pfad anpassen.
Zu 2.
Code:
$Form1 = GUICreate("Form1", 359, 299, 448, 263, 0)
|
Wenn ich $Form1 = GUICreate("Form1", 359, 299, 448, 263, 0) benutze wird das Fenster vom Programm irgend wie voll klein.
|
|
|
10/29/2014, 22:40
|
#5
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Code:
#include <GuiMenu.au3>
#include <WinAPI.au3>
#include <WinAPISys.au3>
#include <WindowsConstants.au3>
Func DisableCloseButton($hwnd)
_GUICtrlMenu_EnableMenuItem(_GUICtrlMenu_GetSystemMenu($hwnd), $SC_CLOSE, BitOR(0, $MF_DISABLED, $MF_GRAYED))
EndFunc
Func EnableCloseButton($hwnd)
_GUICtrlMenu_EnableMenuItem(_GUICtrlMenu_GetSystemMenu($hwnd), $SC_CLOSE, BitOR(0, $MF_ENABLED))
EndFunc
Func DisableMinimizeButton($hwnd)
_WinAPI_SetWindowLong($hwnd, $GWL_STYLE, BitAND(_WinAPI_GetWindowLong($hwnd, $GWL_STYLE), BitNOT($WS_MINIMIZEBOX)))
EndFunc
Func EnableMinimizeButton($hwnd)
_WinAPI_SetWindowLong($hwnd, $GWL_STYLE, BitOR(_WinAPI_GetWindowLong($hwnd, $GWL_STYLE), $WS_MINIMIZEBOX))
EndFunc
Func DisableMaximizeButton($hwnd)
_WinAPI_SetWindowLong($hwnd, $GWL_STYLE, BitAND(_WinAPI_GetWindowLong($hwnd, $GWL_STYLE), BitNOT($WS_MAXIMIZEBOX)))
EndFunc
Func EnableMaximizeButton($hwnd)
_WinAPI_SetWindowLong($hwnd, $GWL_STYLE, BitOR(_WinAPI_GetWindowLong($hwnd, $GWL_STYLE), $WS_MAXIMIZEBOX))
EndFunc
Hilfreich ist es aber nicht wirklich. Das aktivieren und deaktivieren der "Minimieren" und "Maximieren" Buttons ist möglich, der "Schließen" Button lässt sich aber nicht deaktivieren (vermutlich wegen AutoIt internen vorgängen). Selbst das entfernen des "Menüeintrags" mittels _GUICtrlMenu_RemoveMenu() funktioniert nicht.
|
|
|
10/30/2014, 18:17
|
#6
|
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,257
|
Quote:
Originally Posted by Aligator4820
Wenn ich $Form1 = GUICreate("Form1", 359, 299, 448, 263, 0) benutze wird das Fenster vom Programm irgend wie voll klein.
|
Wichtig ist nur der letzte Parameter, die 0. Den Rest musste mit deinen Werten abgleichen.
|
|
|
10/30/2014, 20:53
|
#7
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Eigentlich ist es nur wichtig den $WS_SYSMENU Style zu entfernen:
Code:
_WinAPI_SetWindowLong($guiHwnd, $GWL_STYLE, BitAND(_WinAPI_GetWindowLong($guiHwnd, $GWL_STYLE), BitNOT($WS_SYSMENU)))
|
|
|
10/30/2014, 22:28
|
#8
|
elite*gold: 7
Join Date: Dec 2012
Posts: 387
Received Thanks: 72
|
Noch eine frage. Ich möchte das wenn man einen Button sich ganz viele Notepads öffnen. Wie in einer unendlich schleife. Hier ein Beispiel wie ich das will:
Code:
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
;Hier soll das Command rein um zu While2 zu kommen
EndSwitch
WEnd
While 2
Run ('notepad.exe')
Wend
Wenn man jetzt Button 1 drückt soll While 2 aktiviert werden. Aber weiß nicht welchen Command man dafür braucht.
|
|
|
10/30/2014, 22:32
|
#9
|
elite*gold: 726
Join Date: Jul 2010
Posts: 14,233
Received Thanks: 7,915
|
PHP Code:
runNotepad()
Func runNotepad() While 1 Run ('notepad.exe') Wend EndFunc
|
|
|
10/30/2014, 22:38
|
#10
|
elite*gold: 7
Join Date: Dec 2012
Posts: 387
Received Thanks: 72
|
Quote:
Originally Posted by 123klo
runNotepad()
Func runNotepad()
While 1
Run ('notepad.exe')
Wend
EndFunc
|
Ich versteh das nicht ganz. Soll ich jetzt
Quote:
Originally Posted by 123klo
runNotepad()
Func runNotepad()
|
Über While 1 setzen? Falls ja, funktioniert nicht.
|
|
|
10/30/2014, 23:42
|
#11
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
AutoIt ist Single-Threaded. Du kannst zwei separate Schleifen nicht parallel laufen lassen. "While 2" ist Blödsinn und funktioniert nur da Werte <> 0 als "True" interpretiert werden und somit eine zulässige Bedingung gegeben ist, eine n. Schleife lässt sich damit aber nicht bilden. Stattdessen kannst du überall "While True" verwenden.
Ganz dumm könntest du es so machen:
Code:
;GUI
While True
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
While True
Run ('notepad.exe')
Wend
EndSwitch
WEnd
Hier wirst du allerdings schnell feststellen, dass der Rest des Scripts nicht mehr funktionieren wird. Das Beispiel von 123klo kannst du dementsprechend auch im Klo runterspülen. Nicht umsonst arbeitet man in der Regel nur mit einer Dauerschleife. Lösen kannst du es mit booleschen Variablen:
Code:
Global $startNotepad = False
; GUI
While True
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$startNotepad = Not $startNotepad
EndSwitch
If $startNotepad Then Run("notepad.exe")
WEnd
|
|
|
10/30/2014, 23:49
|
#12
|
elite*gold: 7
Join Date: Dec 2012
Posts: 387
Received Thanks: 72
|
Okay funktioniert @KDeluxe. Noch eine aller letzte frage. Wegen den Bildern. Also. Ich hab in das Script das hier eingefügt :
Code:
FileInstall("C:\Users\Samuel\Desktop\george-rr-martin.jpg", "C:\Users\Samuel\AppData\Roaming\Bild.jpg")
Und in die Koda GUI section das :
Code:
$Pic1 = GUICtrlCreatePic("C:\Users\Samuel\AppData\Roaming\Bild.jpg", 312, 8, 284, 148, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
Trotzdem wenn Freunde das Programm annehmen sind die Bilder nicht da. Wo liegt der Fehler ._.? Selbst wenn sie die Bilder Manuel in den Roaming Ordner einfügen sind die Bilder nicht da. Warum ? Sry für die fragen hab erst vorgestern wirklich angefangen mich mit AutoIT zu beschäftigen.
|
|
|
10/31/2014, 09:13
|
#13
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Weil du absolute Pfadangaben verwendest und deine Freunde wohl kaum alle "Samuel" heißen und ihr Benutzerkonto dementsprechend benennen.
Auch hier gilt:
|
|
|
All times are GMT +1. The time now is 05:10.
|
|