Hii all,
I used win32 api messagebox in ruby to generate a messagebox
but only server side am able to see is there any way to open it at
client side??
On 10/20/2010 7:33 AM, Amit T. wrote:
Hii all,
I used win32 api messagebox in ruby to generate a messagebox
but only server side am able to see is there any way to open it at
client side??
No, it is not possible. Your Ruby code is running on your server and
therefore can only access the Win32 API on your server. It has no way
to access the API on a client machine connecting to your server, and how
would that work for a non-Windows client anyway?
Do you need to use the Win32 API for this, or would a rough equivalent
handled via javascript in the web browser of the client suffice?
-Jeremy
Thanks jermy for your response ,this is something i want to achive .In
my application am uploading file to a folder but file is already there
it would ask for overwrite by displaying messagebox but problem i
already told .Could you suggest some other way to achieve this
means i don;t know much about javascript .can we send desktop of one
machine to other??
require ‘dl’
button
constantsBUTTONS_OK = 0
BUTTONS_OKCANCEL = 1
BUTTONS_ABORTRETRYIGNORE = 2
BUTTONS_YESNO = 4
CLICKED_CANCEL = 2
CLICKED_ABORT = 3
CLICKED_RETRY = 4
CLICKED_IGNORE = 5
CLICKED_YES = 6
CLICKED_NO = 7
class UploadController < ApplicationController
def index
render :file => ‘app\views\upload\uploadfile.rhtml’
end
def message_box(txt, title=APP_TITLE, buttons=BUTTONS_OK)
user32 = DL.dlopen(‘user32’)
msgbox = user32[‘MessageBoxA’, ‘ILSSI’]
r, rs = msgbox.call(0, txt, title, buttons)
return r
end
def uploadFile
name=DataFile.save1(params[:upload])
puts name
$t=0
k = []
File.open(“d:/dm/aan.txt”).each do |line|
k << line.chomp
end
puts k
#puts line.size
$s=k.size
#puts $s
for i in 0…Integer($s)
if $L=(name.eql?(k[i]) == true)
response = message_box(“Are you sure you want to OVERWRITE”,
“Proceed?”, BUTTONS_YESNO)
if response == CLICKED_YES
post = DataFile.save(params[:upload])
render :text => "File has been uploaded successfully"
else
render :text => "File cann't successfully"
end
end
end
end
end
On 10/20/2010 8:50 AM, Amit T. wrote:
Thanks jermy for your response ,this is something i want to achive .In
my application am uploading file to a folder but file is already there
it would ask for overwrite by displaying messagebox but problem i
already told .Could you suggest some other way to achieve this
means i don;t know much about javascript .can we send desktop of one
machine to other??
No, you cannot send the desktop, and you wouldn’t want to either. I’ll
leave you to think of scary reasons you never want to do that.
Your only option is to send a response to the user asking for
confirmation in the event that the file exists. That response could
simply be another page that has a couple buttons for Yes or No options.
You would have to make the server store the uploaded file into some
sort of temporary location in this case since the file will be uploaded
from the first page. Once the user confirms to overwrite the file, the
server could then move the file from the temporary location to the final
one.
That’s all very rough, unfortunately. I don’t have enough experience
with web apps and Rails to help you with anything concrete. All I can
say is that you have headed down the completely wrong path with using
the Win32 API to handle this prompt to the user. It cannot be made to
work.
There are options available in javascript that will allow you to do
something similar from within the client’s browser, but I don’t know the
details of how to use those functions. Someone on the Rails list should
be able to help you more.
-Jeremy
Thanks Jermy
for your time i will try to do what you said