Jump to content

MsgBox opens 2 times


Recommended Posts

Hello, yesterday I've written my very first own script to test some commands, I compiled it but when i sent it to my friend, he said that the MsgBox from the beginning opens 2 times at his computer.

Well, so heres the code:

$IP = ("Paste")
$M1 = MsgBox(1,"Pastesaver by c00p","Drücke OK um deinen zwischengespeicherten Text zu speichern. ")
If $M1 = 1 then
    Run("notepad.exe")
    Send("^v")
    Send("^s")
    Sleep(500)
    Send($IP &".txt")

    send("{ENTER}")

    Send("!{F4}")
    
Else
        Exit
    
    EndIf

Well, when I start it the MsgBox just opens once, that how it should be.

Can anyone here help me?

postal script:

sorry for my bad english, i'm from germany and just got B+ in english..

Link to comment
Share on other sites

Try this:

$IP = ("Paste")
If MsgBox(1,"Pastesaver by c00p","Drücke OK um deinen zwischengespeicherten Text zu speichern. ") = 1 then
    Run("notepad.exe")
    Send("^v")
    Send("^s")
    Sleep(500)
    Send($IP &".txt")

    send("{ENTER}")

    Send("!{F4}")

Else
        Exit

    EndIf

Also, you may want to think about adding in a WinWaitActive to wait for notepad to actually be open before it does it's routine.

Link to comment
Share on other sites

@sleepydvdr:

Right on, but i was actually having the problem he mentioned as well, the $M1 in the if statement was actually running the msgbox a second time somehow when it is compiled, so i just took out the $M1 altogether since it really isnt needed for what he was doing, so with your much improved example:

#include <file.au3>
$IP = ("Paste")
If MsgBox(1,"Pastesaver by c00p","Drücke OK um deinen zwischengespeicherten Text zu speichern. ") = 1 then
    _FileCreate($IP & ".txt")
    $data = ClipGet ( )
    FileWrite($IP & ".txt", $data)    
Else
        Exit    
EndIf
Link to comment
Share on other sites

And just to let you know what was going wrong with your original script...

You run notepad. But you have no delay and start sending controls before notepad has opened.

You paste, which does nothing. You save, but it does nothing. You send the word "Paste" and press enter. Notepad still hasn't opened yet, so what happens is you are selecting an executable that starts with the letter "P" and press enter. You have just ran your executable a second time.

By now, Notepad is open and the second executable pastes the text in the first Notepad. If you ask your friend, I bet he will tell you a second instance of Notepad opened up, but nothing was written to it.

The code I posted above avoids this problem.

#include <ByteMe.au3>

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...