|
The message linked to pointed it out. Create a CopyDataStruct, fill it with a magic number of some form, insert a pointer to some specially formatted data and use SendMessage to send it to the MSN messenger window
|
|
|
|
|
give.away wrote: I do no want to write MSN-plugins.
So you want the other way around? Have your application retrieve the name of the song that is currently playing in the KMPlayer?
I are troll
|
|
|
|
|
Exactly!
To make it perfectly clear: I think KMPlayer and Windows Media Player use the same means to "publish" the song info ... I wonder how I can get the info and display it in my app.
modified on Monday, March 30, 2009 9:28 AM
|
|
|
|
|
|
I don't want to write a plugin for the media player either. Especially since it is not necessary.
Let's say: I just want to know how the "now playing" thing works from a theoretical point of view.
I accept that not all players would be supported, but I know for a fact, that it would work for WMP and KMP (there are applications out there for which this works).
So again: What mechanism is used?
Thanks so far!
|
|
|
|
|
give.away wrote: Let's say: I just want to know how the "now playing" thing works from a theoretical point of view.
There is a theoretical player, let's call it "P". This "P" supports plugins. Someone writes a theoretical plugin that sucks up the theoretical songname thats playing in the theoretical player. It then sends this string to some other application, to form some sort of client-server relation between two previously unrelated applications
give.away wrote: So again: What mechanism is used?
Mostly plugin type, but sometimes these new functionalities are being built as custom scripts[^]. Good idea's tend to spread and sometimes make it to be included in a final product.
give.away wrote: Thanks so far!
You're welcome
I are troll
|
|
|
|
|
I want C# code.
I do not want to write or use plugins.
Given a theoretical player P', which has the same mechanism as the Windows Media Player to publish "now playing song information". How would an appliction's code look like to receive the information published by P'?
I hope this clearifies my request.
|
|
|
|
|
give.away wrote: I want C# code.
Write it, or search until you got something that does what you want.
give.away wrote: How would an appliction's code look like to receive the information published by P'?
There isn't an event that you can 'just' hook into. Sorry to say it, but it ain't that simple - this would depend on the "publishing"-mechanism provided by application A. What works with KMPlayer will not neccesarily work with WinAmp or Media Player.
I are troll
|
|
|
|
|
Eddy Vluggen wrote: Write it, or search until you got something that does what you want.
You see, if I could write it or if I was able to find it somewhere else, I wouldn't bother to post at this board.
Eddy Vluggen wrote: There isn't an event that you can 'just' hook into.
Do you know that for a fact?
If it is not done by hooking into it, how is it done?
And to remind you: I know almost certainly, that KMP and WMP employ the same mechanism. And there are applications out there which work with many different players ...
Thank you for your patience!
|
|
|
|
|
give.away wrote: You see, if I could write it or if I was able to find it somewhere else, I wouldn't bother to post at this board.
See point two over here[^].
give.away wrote: Do you know that for a fact?
Ah, no. I wasn't on the development team of the Media Player, the KMPlayer, nor Messenger. I have only written a small plugin for the Live Messenger, nothing fancy
give.away wrote: If it is not done by hooking into it, how is it done?
That depends on the imagination of the programmer, I have already described some technique's that may be used to achieve this.
give.away wrote: And to remind you: I know almost certainly, that KMP and WMP employ the same mechanism. And there are applications out there which work with many different players ...
They just might have written code for lots of different players. Same thing is often done for Office; most interop-articles are based on a single version of Office. So, if you want to support multiple versions - you'll be writing multiple pieces of the code.
give.away wrote: Thank you for your patience!
No problem
I are troll
|
|
|
|
|
Eddy Vluggen wrote: See point two over here[^].
Unfortunately I fail to see why my question is unspecific, but nevertheless I try to rephrase it in a more specific way:
How can I acquire the song information of the currently playing song in KMP and WMP?
Note: The KMP seems to employ or simulate the same publishing method than the WMP.
Note: I don't want to write a plugin for KMP/WMP etc.. I want to use existing functionality.
Eddy Vluggen wrote: That depends on the imagination of the programmer, I have already described some techniques that may be used to achieve this.
Could you be more specific there: I was not asking for a general approach of how applications can communicate, but specifically for WMP(-like) players. Is there a documentation of how the WMP publishes the song information? Code snippets? Something else?
If something is unspecific to you, just ask and I'm going to provide more information (if possible).
|
|
|
|
|
Based on your answers, I'll have to deduce that I'm unable to help you. That's not due to your questions, but rather my way of reading and answering those questions. You want to know how to build some functionality - and there are lots of possible answers.
give.away wrote: Could you be more specific there
I can't, as not all the music-players work in the same way.
give.away wrote: Is there a documentation of how the WMP publishes the song information?
It doesn't 'publish' it - A music player doesn't need to tell the computer what it is playing right now, just like MS-Word doesn't tell everyone what kind of file it is editing. There are alternatives available, as you can read here[^].
I are troll
|
|
|
|
|
Greetings
I'm using Crystal Reports basic that comes with VS 2008.
I have put 3 (text objects) columns (e.g. ID Name Address), what I want is to add rows, variable numbers of rows of course.
Is there a way to do that by creating parameters ? if not, what other ways are there ?
Regards
|
|
|
|
|
You have to give it a record set. I haven't played with the crystal version that comes with 2008 so I can't give you step by step, however it also depends on where your rows of data are coming from. Is it a database or just data you have in some structure in your program? One way or another the data needs to end up in a record set of a type that Crystal can read. Then you just assign the recordset object or pass in an sql so Crystal can go to work on it.
The true man wants two things: danger and play. For that reason he wants woman, as the most dangerous plaything.
|
|
|
|
|
I have no problem in using a dataset in this case, but the problem is that I can't figure out how to do it programmatically (I don't need the wizard)
Am I missing something obvious ?
Regards
|
|
|
|
|
You mean like this Here[^]
|
|
|
|
|
No. This depends on an already created parameter (using the Field Explorer) at build time.
What I want is to *create* this parameter at runtime.
|
|
|
|
|
Ah, now I understand. I don't think there is a way to create a parameter at run time like that. They're defined in the report file. You can create a few dummy parameters that only get used if they're populated though. Usually for something like that we'd put the parameters on the where clause in the sql, rather than having Crystal do it for us. The SQL server is almost always faster than Crystal will be for parsing of any kind.
The true man wants two things: danger and play. For that reason he wants woman, as the most dangerous plaything.
|
|
|
|
|
Then how about producing several rows ?
Could that be done using 3 parameters (for the 3 columns) ?
Or is there another way(s) ?
Thanks
|
|
|
|
|
I think that might have been vague. Here is what I'm doing:
Created a report, put 3 (columns) text objects (ID, Name, Salary), now I want to fill these columns by a select query (not only that). You might say use datasets, but I say not, since I'm using SQLite for the DB, and i'm creating datasets directly from code (no xsd). Plus, i'm not only using the select query, e.g. the Salary field is calculated by a function that takes an ID as a param. I read about binding to xml and such, but I have no need for that.
So, what is the solution ?
Regards
|
|
|
|
|
Actually the answer is a recordset, use the data from your database, cycle through the records to calculate the other fields. Then create a new recordset, recordset.fields.append all the columns you need and recordset.addnew for each row. You'll have to use a field definition file for the report since you won't be connecting it to the database though.
The other option is to calculate the fields and insert them into a temporary table, then select off the table. The issue there is to handle concurrent reports and stale data if the report reruns.
If it's possible, the best solution would be to create stored procedures that produce the calculated values, and put them into the select query for the report. Not knowing how your fields are calculated though, that might be more trouble than it's worth, especially if you'd still have to duplicate the function in code as well.
Ah, just looked up SQLite, haven't used it myself. Doesn't look like a stored procedure is going to happen. Also, from the bit I glanced over, a temporary table might have a bit of a performance hit depending on how big it is.
The true man wants two things: danger and play. For that reason he wants woman, as the most dangerous plaything.
|
|
|
|
|
"You'll have to use a field definition file for the report since you won't be connecting it to the database though."
Could you give me an example or direct me somewhere, since i'm quite new to this reporting stuff
Thanks
|
|
|
|
|
The basics of creating the definition file are here on page 92[^]
This thread[^] should give you an idea how to connect the recordsource. There's a pdf file from business objects somewhere that explains each of the steps in more detail. It's kind of a pain to find though. Pretty much it's just looping through the report object and assigning the record source of each report/subreport to be the recordset you already created for it from whatever source. Don't get too crazy with the sub reports though, Crystal gets flaky when there's more than one subreport to assign a recordset to. We had that problem when trying to deal with application roles on sql2005 (Crystal doesn't support them).
Pretty much the big things to watch are that you match up the field names and the order they're in. I forget if they're case sensitive, but probably best to match it up, just to make sure. The definition file itself is just a text file with a list of field names, so you can edit it in notepad, then verify the database from inside of crystal to match things up. The data types are separated by a single tab and you can put a default value one tab after that. For instance
ID Number 99999999
Name String XXXXXXXXXXXXXXXX
Position String XXXXXXXXXXXXX
etc, etc..
Hope this helps.
The true man wants two things: danger and play. For that reason he wants woman, as the most dangerous plaything.
|
|
|
|
|
hi,
i am developed a small win apps by c# and my apps first put some value in windows registry. so i just create a setup and install on Vista OS. when i run my apps then a error occur for registry accessing. if the log on user is admin on vista OS then it is OK but if the user is normal user on Vista then getting error for programmatically accessing vista OS registry. i search Google and found article and they said to add manifest to Exe file to gain admin privilege on vista but still i am getting error. so please some one tell me how could i access registry on Vista OS as normal log on user. please tell me all the steps in detail.
Thanks
tbhattacharjee
|
|
|
|
|
Hi,
registry access rights depend on the hive; e.g. CURRENT_USER should work for everyone, LOCAL_MACHINE needs admin rights.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|