r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Windows/COM Support]

Graham
12-Jun-2008
[416x6]
COMlib: do %comlib.r
COMlib/initialize

if error? set/any 'err try [
	do bind [
		oSkype: CreateObject "Skype4COM.Skype"
		if -1 <> res: GetInteger [oSkype "Client.IsRunning"] [
			CallMethod [oSkype "Client.Start()"]
		]

  cUserStatus_Offline: GetInteger [oSkype ".Convert.TextToUserStatus(%s)" 
  "OFFLINE"]
	] COMlib/api
] [
	probe mold disarm err
]
Gives this error
Script: "COMLib (the rebol side of the com2rebol interface)" (9-Mar-2007)
{make object! [
    code: 800
    type: 'user
    id: 'message
    arg1: {Member:^^-  .Convert.TextToUserStatus(%s)
Function:^^-  getInteger^^-^^-
Error In:^^-  InvokeArray
Error:^^-  Unspecified error
Code:^^-  80004005
Source:^^-  IDispatch Interface}
    arg2: none
    arg3: none

    near: [GetInteger [oSkype ".Convert.TextToUserStatus(%s)" "OFFLINE"]]
    where: none
]}
Ok, I have this observation.  I get crashes or errors with using 
the getInteger command when passing a string parameter to the skype4com 
dll.  I don't get an error if I don't pass a parameter.  I don't 
get errors when passing strings to Getobject.  I also don't get errors 
passing strings to getInteger to other dlls.  Just Skype.
now with the same library ( I think ), I also didn't get an error 
under XP and using Benjamin's getNumber version.
Dunno if any of that helps.
xavier
12-Jun-2008
[422x2]
hello, i m working on a programm that must interact with outlook 
and the number dialer of windows ... can someone tell me where do 
i have to look for documentation on it ? does anybody already did 
it ?
i just found the site of anton i go to read all that, it looks like 
what i wanted :)
Gregg
12-Jun-2008
[424]
I've used rasdial very successfully under Windows Xavier.
Robert
30-Oct-2008
[425]
How can I set the current directory as the active one when I create 
an XLS object with COMLib? At the moment I need to provide fully-qualified-filenames 
to open a file.
Anton
30-Oct-2008
[426x3]
Robert, are you talking about COMLib-anton ?
If so, there was a problem that really bugged me, which I couldn't 
find a good way to avoid. That is, the current directory would be 
where the com2rebol.dll was (or something like that). So you can 
see the demos have to reference files relative to the parent directory.
But I can see in the word-open-save.r demo I have done this:

	do/args %../COMLib.r [
		...

  word_doc: GetObject [word_obj ".Documents.Open(%s)" to-local-file 
  clean-path %demos/word-open.doc]
Robert
30-Oct-2008
[429x2]
Anton, yes.
I solved it the same way with to-local-file works, but not elegant.
Anton
4-Nov-2008
[431]
Yes, not elegant. I'm sorry.
Graham
20-Nov-2008
[432x2]
Anton, how would one do the example here 

http://www.oooforum.org/forum/viewtopic.phtml?t=9815&postdays=0&postorder=asc&start=0

In particular, this line

Set doc = Stardesktop.loadComponentFromURL("private:factory/swriter", 
"_blank", 0, args)

where args has been defined as Dim args()
the func is described here http://api.openoffice.org/docs/common/ref/com/sun/star/frame/XComponentLoader.html
james_nak
22-Nov-2008
[434]
Is it possible to write a windows "service" (a program running as 
a service) with rebol?
Graham
22-Nov-2008
[435x2]
doc has software to do this
it's part of the Cheyenne distribution
james_nak
22-Nov-2008
[437]
Thanks Graham.
Dockimbel
22-Nov-2008
[438]
Windows Services support: http://softinnov.org/rebol/nt-services.shtml
james_nak
23-Nov-2008
[439]
Thanks Doc
Graham
9-Feb-2009
[440]
Dunno what's changed by Skype but REBOL Skype Sms texting is working 
again on Vista.
Robert
13-Jul-2009
[441x6]
Hi, just getting my hands back on control Excel via ComLib. How do 
I get a value back?
I saw there is GetString, GetInteger etc. but don't know how to use 
it.
The Comlib.r code states this in the comment sections:

		;GetString [xlApp ".ActiveSheet.Cells(1,10)"]
But doesn't seem to work...
Ok, as so often, posting my problems seems to enlighten me to get 
it fixed.
I was changing a file in an other directory not the one the base 
script was in...
Robert
15-Jul-2009
[447x5]
Trying to get a decimal! into an excel cell. I use:


sendValue excel-app ".ActiveSheet.Cells(%d,%d) = %f" reduce [row 
col val]


But this leads to strange content. What's the C-type of a Rebol decimal!
From the DLL docs it's float/double but doesn't seem to work...
Ok, it's not %f in DistHelper/COMLib but %e...
But now I get garbage to Excel...
Comlib.r is missing a way to pass decimal! / floats. I extended it. 
Seems to work at least with XLS.
james_nak
15-Jul-2009
[452]
Robert, on a recent project my app creates an xml file formatted 
with xml that Excel understands. It's a hassle but you can make very 
pretty spreadsheets that do just about all the formatting (so it's 
a far cry from CSV). I start with creatinga very small excel spreadsheet 
then saving as an xml file. Then I check out how they do the formatting. 
You can create multiple tabbed spreadsheets very easily this way. 
Doesn't do graphs though.
Reichart
15-Jul-2009
[453]
James, this is EXACTLY how I do this type of thing.  Let the tools 
do all the examples...
Maarten
16-Jul-2009
[454]
Yes! Being an experimental physicist it always strikes me as funny 
that we don't have a branch called "experimental computer science". 
Computers may be predictable, but humans (you know, that design XML 
formats, or have a ship cut an Internet cable in the Pacific, or....) 
are not.
Robert
16-Jul-2009
[455x2]
Well, I really like COMLib. It's pretty straight forward and the 
COM sutff is one of the better things MS did. It works and is a pretty 
simple concept.
And, I not just need to generate XLS files I need to read data from 
XLS files as well that don't use an XML format.
james_nak
16-Jul-2009
[457]
Point taken. Robert.
Robert
29-Jul-2009
[458x2]
Any idea how I can get rid of the "Do you want to save changes" dialog 
when I close an XLS workbook?
I hate VBA... I tried:
 sendValue 	 excel-app ".DisplayAlerts = %s" "False"
and

 objectMethod excel-app ".ActiveWorkbook.Close(SaveChanges:=False)"


both with no effect. To be more specific, the effect is that ComLib/Disphelper 
just exit.
ChristianE
29-Jul-2009
[460]
Have you already consulted http://support.microsoft.com/kb/213428/EN-US/
? Maybe that's what you're looking for.


The trick seems to be to do set ThisWorkbook.Saved = True, so that 
Excel responds as though the workbook has already been saved and 
no changes have occurred since that last save.
Robert
29-Jul-2009
[461x2]
I did. And I solved it. The problem is that ComLib didn't knew about 
logic! and XLS uses TRUE/FALSE as logic value not as string.
Now it works.
Robert
1-Sep-2009
[463x2]
Hi, I'm again struggeling with XLS automation via ComLib.
I want to do:

VBA-Code: ActiveSheet.Copy After:=Workbooks(2).Sheets(3)
	

And I use:
								

objectMethod excel-app ".ActiveSheet.Copy After:=Workbooks(%d).Sheets(%d)" 
reduce [workbook worksheet]



But this doesn't work. XLS creates a new document with the copy worksheet 
inserted. Looks like the stuff after .Copy isn't recognized. Any 
idea?
Anton
27-Dec-2010
[465]
Graham asked, when using COMLib-Anton, can you pass a decimal to 
Excel?