You might start here:
I know my dear friend John Daigle had an article somewhere on Adobe, but it seems to have performed a disappearing act!
The article refers to "you or the author of the help system," so I believe it is aimed at the developer who modifies the product code and all the actions referred to take place in the code. If I am wrong on that, please by all means correct me.
I will try to talk to the developer and see if I can get some time with him to cover this stuff, but that is doubtful. We have a release coming up and he is still very busy trying to get last-minute problems in the code ironed out.
You need to provide your file of Map IDs and the method for launching the help - that will depend on how the developer wants to do this - show (or copy to give them) the \CSH API\ folder that RH comes with (it's in your \Program Files\ location where RH is installed). It has a number of programming language variants available. The launching program queries the index page of your help with the Map ID and the tool knows how to return the exact page you want shown to be displayed in a little headless browser window. You can add the ability to "expand" out the full tri-pane help by adding a "Show" link to the output files (it's controlled by a flag in the Single Source Layouts recipe).
The problem has been solved. Or it just got tired of messing with me and quit. The context sensitivity now works. As an added bonus, RoboHelp will now product the multiscreen and Responsive outputs, which earlier it would not do. I have no idea what changed. Both the developer and I were trying changes left and right and somehow we stumbled upon the right combination. Thanks to those who tried to help. I don't really understand this process but I have learned some.
Just an observation. Often we see where developers howl over the number of files you supply and they want you to trim them down. I'd suggest avoiding Multiscreen and consider Responsive.
I'm, in the same situation. I'm the new person trying to make an update for a November 2018 release. (When a user is on a particular screen and presses F1, the RH help topic should display.) There are new topics I've created and made changes to existing and I need the screen names/IDs for the module in the software. I am not getting any information from the developers regarding the IDs of the new screens in the software so I can map them - they keep saying the "last writer used a tool to do all that."
- How did you create the "H" file with all the IDs? "I have a .H file with all the IDS in it. I've given the map IDs to the developers..."
- Is it possible to map my RH topics to a particular screen without knowing the IDs of the screens in the software? Is there some tool?
- If someone can just map out the profess of creating RoboHelp topics and mapping them to screens in a software.
1 person found this helpful
Perhaps the video below will help?
1 person found this helpful
Thanks Captiv8r! I watched part of that a few days ago and watched the whole thing since you recommended it.
I now have a better understanding. My issue is a team of developers or rather one developer who doesn't seem to understand that I need his cooperation. Had we not had new screens in the software release, I could make the Help file updates using the files from the previous writer and pass them along.
But I have 4 new screens that need RH topics created and mapped to the software -- when F1 is pressed, the RH topic displays.
1. From most sources, they say I send the .h map file to the developers. What do they do exactly? Connect my IDs to the screens?
2. Other than creating the RH Map IDs and Map#s - is there something I can do on my end to make the software screen map to the correct RH topic?
I need to have perhaps the 10th conversation and push back - letting them know I need them to perform some steps on their end. They allude to a "tool" the previous writer used - doing it all on her own - but I think she just worked with someone else on the team to perform the mapping and the guy I now work with was not aware. She's been gone a year...
I just need to know if there's any other way RH can map a topic to a screen in the software, other than a developer taking my map file and programming the connections. I'm having a meeting this week and want to make sure I'm correct in what I share.
Thanks for the video and any continued help.
1 person found this helpful
If the developers have already assigned unique codes to each screen, and assuming the code to call the help is already tied in to each new screen, you might be able to find out the unique code and manually add it in Robohelp.
If it's possible, it's not simple.
One example is windows applications. You *might* be able to use Spy++ (a microsoft app) to find out ids when you run the application and open the screen. But you'll probably need a developer to point you to the right place to look. It's all developer-y and overwhelming.
I used the Finder tool, but I can't remember what I needed to look at for the window id.
How to: Use the Finder Tool - Visual Studio | Microsoft Docs
Or, if the application is a web application, you might be able to find the id using the developer tools.
If the developers haven't assigned a unique code, or the code to call help isn't already in the screen, then the only option is for the developer to do some work, either to assign an id and give it to you, or to accept your .h file and tie the correct id to the screen using whatever is the correct method for the application.
Unfortunately I can't give specifics as it depends on the specific application and how context help has been implemented.
Thanks Amebr - this is really helpful. I just wanted to make sure I'm not crazy in thinking I need their assistance. They Jedi-mind-tricked me - saying they never had any participation in the past.
To clarify: "If the developers have already assigned unique codes to each screen, and assuming the code to call the help is already tied in to each new screen, you might be able to find out the unique code and manually add it in Robohelp."
- Of the 4 or so new screens that need help, two of them give an error when F1 is pressed "Failed to launch help." displays, leading me to believe the call to help is there, I just need to know the ID/code. All others, nothing displays when F1 is pressed meaning there may be no assignment? So that's good to know.
- If I take codes/IDs they already have, what field in RH do I edit? The blue highlighted Map ID? and voila? Currently I have IDs like AboutTheModules, AddConditionsFromPickList, AddRates, BankLoanShip, etc. Will MAP ID accept a wacky Tolerance_Calc_51265_01? In case they have something complicated.
- If they take my IDs, they need to enter HELP ToleranceCalc on their end? Correct? I'm preparing for them to give me the old shoulder shrug and I want to be able to direct them properly. Could be new girl hazing - IDK...
I'm about ready to go back and plead my case today - I really appreciate everyone pitching in - I don't care what people say - us documentation professionals are cool AF!
Of course, I'm not Amber. She's much better looking! I also believe she only replies late in the afternoon or early evening US time. I think she lives in Australia. But I'll be happy to fill in what little I know.
I'm personally at a bit of a disadvantage here, as I've never had the opportunity to develop CSH in earnest. While I'm presently on my 61st trip around the sun, I'm a lot like a recent college graduate with CSH because I've learned the theory of how it works, but never really have had the "job experience" where I've put it into practice.
I've always considered it to be like this: Each point in the application needs some sort of unique identifier that is used to match up the help topic that should be associated with it. So if I imagine that my help page is a destination on our globe, perhaps it is stored at a specific location in Africa. And I know that my application is in a specific location in the US. So the map file is literally like a map in that it shows us where things are on our planet. And if I need to travel from my location here in Kansas City, I find that unique ID and follow the map line until I reach my help topic unique ID in Africa.
As the help author, you likely have no control over what the identifier is in the application. Because that's the developer's job. Somewhere in the application, a unique code is either automatically assigned by whatever tool the developer is using, or the developer should have the ability to manually enter his or her own code there. Or maybe even change an existing code to suit them. But your job as the help developer is to create that mapping relationship between the source launching point and the final destination.
As for what is used, it would appear to me that as long as you don't use a space, RoboHelp is happy to accept nearly anything in the Map ID field as shown below:
And indeed, I believe that your developer would need to add what you type into that field into a similar field in their application.
I hope this helps and doesn't only serve to further muddy waters!
Great information! Based on what's convenient, either the writer created the MAP IDs or the developers. It doesn't really matter who, as long as they are communicated and they match when entered into the software and into RoboHelp.
I found the perfect chart inside the Adobe RoboHelp 2017 User Guide (pg 292) that I'm using in my presentation later. I communicated this to them two weeks ago and they insisted the previous magical unicorn writer did it all by herself with a special "tool" and just sent them a file and everything worked. #hogwash I just needed to get all my ducks in a row and make sure I understood so that I can go back and provide the solution. In my effort to be diplomatic, I've allowed them to take me in circles a bit because I'm not up to date on all the new "tools" out there, but now we're back to the original. It's been a year since she's been gone and my guess is whoever she worked with is gone or isn't a part of the conversation.
Thanks a million for hanging in with me - I appreciate it!
1 person found this helpful
Hmmmm, it's possible...
A few versions back, the Adobe folks did actually create a tool that could be used with RoboHelp that would look at an application and create the mappings and whatnot in sort of a magickal way. But it was real finicky and it relied on the developers of the application to use a specific programming language (C? C++? C#? I'm not recalling). So I do suppose it's possible that is what was being used. But I'd be doubtful about it because to my knowledge, it was one of those things that sounded awesome in theory but never really took off.
Hmmm I did some googling and found the link below that may help.
1 person found this helpful
I worked for one company where the developers gave us a method for finding
their screen code. When they added screens they didn't have to give us any
info. It could be that's the system where you are and you haven't been told
So weird you posted this! The developers have just made the decision to make the screen code visible in my test build release going forward. Yay! I really appreciate you proving this information in case they hadn't offered.
By chance, do you know of a magical API that will query the software, learn the code and automatically map?
Scenario: When a user is on a particular screen in the software, they press F1 and the appropriate topic displays.
Why I'm at a loss: 3rd week on the job taking up where someone else left off who left ZERO instrucitons or information. No one knew how she did what she did. My RH experience has been develop and pass along - not integrate into software.
Goal: There are many topics already working properly, but I have (5) new screens that I've created RH for, but need to be connected to the proper screen in the software.
My lead developer says: "The software will call the HtmlHelp api and pass the RoboHelp topic ID when F1 is pressed."
How do I set things up so the software will call the HtmlHelp api and pass the topic id when F1 is pressed?
Is this something RH handles or do I need a 3rd party software?
Based on the quote from your developer, the software is already set up to call the htmlhelp api. That call includes the location of the help, and the id of the screen where F1 was pressed. Assuming the ID is added to the map file and mapped to the correct topic in Robohelp, once you generate and publish to the correct location, F1 will open the correct topic.
Now, the problem you have is how to get that ID.
I'm not aware of any specific tool that can do this. The closest I'm aware of is Spy++ (which I linked in one of your other post) which I believe only works for programs written in certain programming languages. But even that is not guaranteed as it also depends on how the application has been developed.
Given that your developers say the other writer used some tool, it's possible that the application has been set up with the auto-csh method as described in the link Rick posted. Can you confirm you tried the steps in the last section of that page?
Hi there Amebr,
Click File > Context-Sensitive Help > Open Application... (From there the RoboHelp author chooses an EXE file for software created using C++. RoboHelp should open the application where mappings can be established.)
- I don't see the Context-Sensitive option under the File menu.
- When I navigate to the Context-Sensitive Help Folder from the Output Set pod, the right-mouse options are Edit and Explore, Properties is grayed out.
- I also see this: "Because creating CSH is a bit of a "closed loop" between the application developer and the help author, it is impossible to allow you to create new topics and assign them to new Map IDs, then see this in actual use." Not sure what this means based on "then see this in actual use"?. My scenario is that I am the new writer (the last writer used some "tool" and was able to by-pass the developers without getting ANY information from them - there were numerous help topics already created and mapped - in the software (C++), the user presses F1 and the correct help topic displays. There's a new release in November (tick, tock...) and there are 4 new screens, meaning I need 4 new topics. This seems to say it's impossible for me to add topics and map them?
Unfortunately, if I can't make this happen in the next week or so, I'm fired/contract ended... any help is appreciated. I'm willing to pay for walk-through consultation.
I have everything ready, the topics are searchable in the software, but the new 4 screens do nothing when F1 is pressed.
Wow, I'm so very sorry to hear that. It's always unfortunate when you have a group of folks saying things like "well, the last person used some kind of tool that did that" and you aren't given any information whatsoever what happened. Never a good situation to be in.
Unfortunately, software companies never like to advertise that certain features have been actually removed. I'm guessing they feel it reflects badly on them. My own guess is that because this tool never really took off as they had hoped, it was removed. But only Adobe can answer that one fully. The rest of us are left with experimentation and drawing our own conclusions based on said experimentation.
Really wish I could be of more help. I'm not convinced that even if you were to get Adobe involved that they would be able to help in your situation.
Hopefully others have better information to offer.
What do your current MapIDs look like? That might give you a hint as to what the developers are calling out with on the screens that do work when F1 is pressed. What type of output are you producing anyways? I don't recall you saying what flavor was being created - WebHelp, CHMs, Responsive HTML5, etc.
I'm creating a CHUM file that's added to the software folder. I followed instructions on p300 of the 2017 RH User Guide to Map an application dialog box with a topic. I opened the C++ software app via RH, navigated to a screen that requires mapping and no CSH Options dialog box displayed in RH, allowing me to perform mapping.
Here's what the current mapping looks like in RH. The developers say the "last writer" used a tool and didn't need anything from them other than to include the CHUM file.
Do those MapIDs look like something your developers are having the software pass over to the launching api? Or are they using the Map# within the software to make the connection to the help topic? You need to have a developer look at the program for a screen that is currently working to see what they are using and where it's coming from.
Here's all I received from the developers about the past process: "You deliver one chm file. Point will call the HtmlHelp api and pass the topic id when F1 is pressed."
Automated CSH Authoring apparently doesn't work to Map an application dialog box with a topic. I tried and RH did not open the CSH Options dialog box to allow me to map. Others are having the same results: Has anyone used Tools | CSH | Open CSH Help successfully?
Yes, it looks like that auto-mapping tool doesn't work much anymore. I would get your developer to show you what topic id they are sending for a screen that is currently working - since you aren't sending them a list of Map IDs for them to use, they must be telling you what the program will send that you can use to build your .h file mappings.
Right. They really relied on the last person. They're not really sure what the screen IDs are - they've sent a few samples, but the IDs they've given don't work.
I'll ask them again to review items that are working and send me that information.
What's meant by: "Point will call the HtmlHelp api"?
Developer response when asked what he needs from me: "You deliver one chm file. Point will call the HtmlHelp api and pass the topic id when F1 is pressed."
Sooo, I'm wondering if the following idea may help. If you have already thought of this and tried, I offer my sincere apologies.
Perhaps consider taking one place that actually works. Some dialog where you press the F1 key and it links properly.
Then note the topic that appears.
Then look at the CSH mappings inside the RoboHelp application and find that mapping ID and make note of what RoboHelp is using.
Then have the developer look at that dialog code from his or her end. See if they can find the field where that identifier is listed. If so, that should give them a clue as to where to insert a similar code in the new dialog code.
Great idea - it's a very sensible place to start - considering we have pre-existing that are working fine. I've sent the map file to the developer and they can't seem to locate the information and I can't provide them any help to view their end.
I just wanted to exhaust every option for automatically querying the software to find what I need and that hasn't been possible via Spy++ or the internal RH Automate CSH feature.
If the previous person used a special tool, I can't find a trace or anyone on the web who has used a tool to auto map to a C++ software.
Thanks to everyone for their help, but until the developers decide to get serious and help, my hands are tied - but the help file are all ready to go.
Sooo pondering as well if you can maybe glean some information by working the other way too.
When looking at the CSH mappings in RoboHelp, are you able to ascertain any sort of a pattern? For example, say you have a menu with 10 items on it in your app. You look and see that item 1 maps to a certain code or number. Item 2 maps to an incremental version of the code or number. And so on.
If that's possible, you may be able to determine what needs to be plugged into the CSH mappings to make it work.
1 person found this helpful
Hmmm, after looking at your screen that was shared earlier, I'm wondering if perhaps the title bar of the window being mapped is what is being used. For example, "AddDocument" may be presented as "Add Document". And in this case, maybe the Map # is simply something you would just make up and assign, then choose the correct topic.
Might be worth trying.
You'd think, huh... But the screen name the developer gave me is in the following formate: IDD_CLOSING_DISC_Tole 21896
This does not match the current naming convention and MAP IDs won't take spaces...
He says he can't find anything else for screen names...
1 person found this helpful
So when you look at the screen where you would see it before pressing the F1 key, what does the actual Title Bar read? My thought is that you would type that, then use that 21896 value.
1 person found this helpful
Okay, I think that code helps. I'm pretty sure it's the map ID and the map number.
The text part is the "map id". The number part is the "map number".
If this relates to a new screen that isn't in your .h file you can add it by opening the Edit Map IDs dialog box and clicking the Create Map ID icon at the bottom of the Map IDs box. Enter the text part in the Map ID field and the number in the Map Number field.
Then you can assign that number to the correct topic.
Assuming the application is set up right, then the F1 call will work for the new screen.
Side note: And this entry in the .h file looks like: #define IDD_CLOSING_DISC_Tole 21896
So if your developers have a file that contains that format (with the #define text), you could potentially get a fresh copy each release and just paste it over your existing copy. It won't wipe out the link to the robohelp topics, because that is maintained in a separate file. But handily, if you select the "Hide used IDs" checkbox, you can quickly see the new IDs and link them to the appropriate topics. The icons are also colour coded - blue for linked and yellow for unlinked.
The IDD_CLOSING... screen name has been tested and does not work. The CSH tool in RH 2017 is also known not to actually work (our C++ software is the necessary 32bit). I can't seem to get any direction on a tool that will auto-query the software and perform the mapping. I've given up. All I will deliver is the files I have without the new mappings. None of the information in the RoboHelp Map file correlates with anything in the software I could find using Spy++ and Winspector. The IDs found for the screens are numeric and a test based on numeric failed also.
Thanks to everyone for your help!
This is a good thought - I'll give it a shot. I think all that have been helping will fall under their desks if this is the answer. Myself included!!!!
I think I tried that earlier and it didn't work - you know how it is when you're trying a million things and not documenting...
Sorry to hear that your devs weren't more helpful in getting the new topics hooked up. Maybe it's time to change the format from CHM to something like HTML5?
The built in tool was introduced back in RoboHelp 9 and was little used. Maybe something in a later version is having an impact or something in a later version of the tool used by your developers. Did your predecessor have the same version of RoboHelp as you.
Either way, Adobe Support will be contacting you to see if they can help.
See www.grainge.org for free RoboHelp and Authoring information.