Jump to content

Can't get dialog to change to $WS_EX_TOPMOST


egalvez
 Share

Recommended Posts

Hello. I'm having trouble with a menu item that should allow the user to make the GUI window always on top. Here are my relevant code snippets. What am I doing wrong, please?

$mcGui = GuiCreate("Verse Quizzer - Multiple Choice", 480, 340,-1,-1,-1,-1)

....

$MenuOptionsAlwaysOnTopItem = GUICtrlCreateMenuitem ("&Always on Top",$MenuOptions)
GUICtrlSetOnEvent($MenuOptionsAlwaysOnTopItem, "MenuOptionsAlwaysOnTopClicked")

....

Func MenuOptionsAlwaysOnTopClicked()
    If IniRead ( "config.txt", "Settings", "AlwaysOnTop", "NotFound" ) = "1" Then;ALWAYSONTOP IS ON, LET'S TURN IT OFF
        GUICtrlSetState($MenuOptionsAlwaysOnTopItem,$GUI_UNCHECKED)
        IniWrite ( "config.txt", "Settings", "AlwaysOnTop", "0" )
    Else;ALWAYSONTOP IS OFF, LET'S TURN IT ON
        GUICtrlSetState($MenuOptionsAlwaysOnTopItem,$GUI_CHECKED)
        IniWrite ( "config.txt", "Settings", "AlwaysOnTop", "1" )
        GUICtrlSetStyle ( $mcGui,$WS_EX_TOPMOST )
        GUISetState ()
    EndIf
EndFunc

I'm obviously doing something wrong. I did search the forums on $WS_EX_TOPMOST but still don't know how to resolve this. Please advise.

By the way, I'm using Opt("GUIOnEventMode", 1)

Edited by egalvez
Link to comment
Share on other sites

Hello. I'm having trouble with a menu item that should allow the user to make the GUI window always on top. Here are my relevant code snippets. What am I doing wrong, please?

$mcGui = GuiCreate("Verse Quizzer - Multiple Choice", 480, 340,-1,-1,-1,-1)

$mcGui = GuiCreate("Verse Quizzer - Multiple Choice", 480, 340, -1, -1, "", $WS_EX_TOPMOST)

Link to comment
Share on other sites

Thank you, but if I'm not mistaken, your code will make the dialog topmost from its inception. I only want the dialog to be topmost when the user clicks an Always On Top menuitem. I want to be able to change the topmost setting on the fly, depending on whether or not the Always on Top menuitem has a checkmark next to it or not. Forgive me, please, if I'm missing something with your code.

Link to comment
Share on other sites

My apologies. I misunderstood what you were looking for.

In that case, just create a button that will use the WinSetOnTop() function for your GUI window. If you aren't sure how to create buttons and call them from within a GUIGetMsg() loop then let me know and I will post an example. (Busy at work just now)

Link to comment
Share on other sites

Thank you, SerialKiller.  That works well with the menuitem. :whistle:

<{POST_SNAPBACK}>

Hey everyone, darn im soo tired i've been trying to find out how to make a dialog box by pressing a shortcutkey. After the dialog has poped up i wanted to type somthing and then click ok and then make it Sleep(3000) after that open notepad and make it Send w/e i typed. But ofcourse i havnt got to do that, thats why im here for help.

I did that with a INput box here is the code:

HotKeySet("{F5}", "Type")

HotKeySet("{F8}", "Pause")

HotKeySet("{F9}", "Quit")

While 1

Sleep(100)

Wend

Func Type()

While 1

$clip1 = InputBox("Message", "Enter/Paste text to Spam", "" )

Run("C:\Program Files\Starcraft\Starcraft.exe")

Sleep(700)

$i=0

Do

Send("{Enter}")

Send("" & $clip1)

Send("{Enter}")

until $i=10

wend

EndFunc

Func Quit()

While 1

Exit 0

Wend

Endfunc

Func Pause()

While1

Wend

Endfunc

Basically all that does is when i press F5 a inputbox pops up and what ever i type in it. Gets send to w/e window im on after its sleep time.

So i wanted to do that with a Dialog box because i wanted to Send Profiles that are more then 1 line at once.

This is what i have so far but it seems to make no sense what so ever:

dim $clip1

HotKeySet("{F7}", "Type")

HotKeySet("{F9}", "Pause")

Func Pause()

While 1

Wend

Endfunc

func type()

while 1

$clip1 = Dialog Box

Sleep(700)

$i=0

Do

Send("{Enter}")

Send("" & $clip1)

Send("{Enter}")

until $i=10

wend

EndFunc

GUICreate("Type What You Want To Spam Below") ; will create a dialog box that when displayed is centered

GUISetState (@SW_SHOW) ; will display an empty dialog box

$GUI_EVENT_CLOSE = "1"

$nEdit = GUICtrlCreateEdit ("Type Here", 3,3,300,180)

GUICtrlCreateButton ("Ok", 20,200,50)

GUISetState ()

for $n=1 to 5

GUICtrlSetData ($nEdit,@CRLF & "line "& $n)

next

$EM_LINEINDEX = 0x00BB

$EM_LINEFROMCHAR = 0x00C9

Do

$msg = GUIGetMsg()

if $msg >0 then

$n=GUICtrlSendMsg ($nEdit, $EM_LINEINDEX,-1,0)

$nline=GUICtrlSendMsg( $nEdit, $EM_LINEFROMCHAR,$n,0)

GUICtrlSetState ($nEdit,256) ; set focus

MsgBox (0,"Currentline",$nLine)

Endif

Until $msg = $GUI_EVENT_CLOSE

All this does is when i run it a Dialog box pops up right away and then when i press F7 it types random words or numbers...

Also i didnt include

#include gui.........au3.

because it says "Error reading #include gui.........au3."

Can anyone please look at these sources and see if they can help me, i really need it thank you for reading.

Link to comment
Share on other sites

"Enter text to spam"?! Nice.

First of all, it is #include <GuiConstants.au3>, and your script will not run without it. Second, it is very hard to read your code since you did not put it in the code tags:

here is my code

I would help, but I do not really have the time to go through all of your messy code at the moment. Perhaps someone else is willing to take more time, or else you could clean it up a bit and re-post it.

Edited by SerialKiller
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...