V - Page 1
Forum section: electronics / general

author: GEuser
author_rank: Frequent Contributor
timestamp: December 01, 2013, 01:51:54 am
content: Q

author: mariush
author_rank: Super Contributor
timestamp: December 01, 2013, 02:20:11 am
content: It's highly unlikely the default setting for something is stored along with the text ... those are just strings, resources, one after another... there aren't variables and settings intermixed with those strings.

author: PeterG
author_rank: Frequent Contributor
timestamp: December 01, 2013, 03:06:19 am
content: Looks a lot like a setup file used for VB6 apps. The text you see appear to be menu items.It is hard to say for sure without seeing more of the file.Regards

author: Neilm
author_rank: Super Contributor
timestamp: December 01, 2013, 11:02:25 am
content: Chances are the default isn't stored anywhere near this point. If I recall VB correctly, the control is just a list. If the list is populated by its constructor then the default is the first in the list, but if the list is populated as the programme runs I believe the programmer has to hard code a default value.Also, note that just changing the text shown by that control probably won't change the language shown by the programme. I have never done multi language support but I believe the control will simply select a different set of text strings. Depending on the programmer, it might say "if language = 'English' then use wordseng.txt" Otherwise it might say "if language = option 1 then use wordseng.txt". In the first case changing the word shown by the control will change the language used, in the second case it will not.If you are lucky, then you might find a separate file with all the text in and simply re-naming the file will solve the problem. The trouble with this is if there are any special characters that are used in either language or if the software re-sizes any text fields dependent on the language.

author: amyk
author_rank: Super Contributor
timestamp: December 01, 2013, 11:23:24 am
content: If I remember correctly VB6 and earlier can be easily decompiled... it's been a while since I've seen something written in VB6! As mentioned above the default is very likely stored somewhere else. You will need to figure that out and change it there. Good luck.

author: czdt8m
author_rank: Contributor
timestamp: December 01, 2013, 11:34:13 am
content: Quote from: GEuser on December 01, 2013, 01:51:54 amLooks like that is just the menu structure, it shows the internal name (or label) and the text that is displayed to the user.So the actual language change is being done in the code attached to the label. The startup language is different, how that is done is up to the programmer, and you can just guess at this.In case the default start-up language is hard coded, I doubt there is much you can do.You could try to switch the two menu options in case the first one is the default one.Also maybe do a search for the menu item labels and see what you get.

author: mariush
author_rank: Super Contributor
timestamp: December 01, 2013, 03:23:34 pm
content: QuoteVB6 offered compilation as true binary executable etc or the older type of executable similar to vb5 and older where the executable is basically just a sort of interpreted code that gets further processed by the runtime.You can get IDA Pro (or another good dissasembler) and dissasemble the application (not the installer) and see where the variable which holds the language selection gets initialized to a default, or hack the function which reads the selected language from registry or a configuration file ... for example the application may have something like thisPublic Sub LoadDefaultSettings()dim Languages(0 to 1) as StringDim Language as IntegerLanguages(0) = EnglishLanguages(1) = FrenchLanguage = 0Call LoadTextFromFile(Language) ; read the texts from a text file based on the language value selected[...]End SubIf you're smart enough, you can dissasemble the application, find out where this "Language = 0" is, or where the "loadtextfromfile" function/procedure is called and figure out what bits change in the executable if you change that 0 to 1, or you replace the register where the language variable is stored with a constant (1 or what you want)If you're lucky, it's just a matter of changing 2-3 bytes in the executable... but it's not changing a "0" to "1"... it's more like changing bits in 2-3 bytes ...

author: PeterG
author_rank: Frequent Contributor
timestamp: December 01, 2013, 08:34:35 pm
content: Quote from: amyk on December 01, 2013, 11:23:24 amI am stretching the memory here but i believe VB5 was able to be decompiled back to vb code. However VB6 compiled to native code and could only be decompiled to ASM. There were a few online decompilers that claimed to decompile VB6 but i never had good results.Regards

author: PA0PBZ
author_rank: Super Contributor
timestamp: December 01, 2013, 08:46:35 pm
content: I'm hurting my brain trying to remember if I ever decompiled VB6 code succesfully. I think I did, but since you all seem to think it is not possible I might be wrong. But even then it just gives you a pseudocode file which can show you what is going on but is of no use to recompile the program.Anyway, this program, is it available for download somewhere? I'm thinking it should not be too hard to change it to have English as the default language (guessing that is what you want). I'd like to give it a try

author: PeterG
author_rank: Frequent Contributor
timestamp: December 01, 2013, 09:10:18 pm
content: Quote from: PA0PBZ on December 01, 2013, 08:46:35 pmYes it would be fun to play with.We may be lucky enough for the OP to post the app for us to play with.Regards

author: marshallh
author_rank: Unknown
timestamp: December 01, 2013, 09:14:31 pm
content: VB6 learning edition and others only compiled to P-code.Pro+Enterprise could compile to native.The language check could be:1. String compare with listbox entry2. Integer compare with listbox index3. A hackier wayCan youpost the EXE here? Try attaching a debugger to the process and trap what happens on the event handlers for the language dropbox change.

author: Crazy Ape
author_rank: Regular Contributor
timestamp: December 02, 2013, 04:37:57 am
content: GEUser,Try to understand the 2nd and 4th posts, you should then know that the action in your above post will yield no fruit.Why so secretive, it's certainly not the best way to find help on a forum. At least name the darn program!

author: amyk
author_rank: Super Contributor
timestamp: December 02, 2013, 07:20:46 am
content: I don't think anyone here knows any ÖÐÎÄ...OP, please try to study a little more, others here already did a lot of work for you so at least make a bit more effort to get to the point where you can understand their posts.

author: motocoder
author_rank: Unknown
timestamp: December 02, 2013, 09:59:19 am
content: Quote from: GEuser on December 01, 2013, 01:51:54 amNot sure where you change the language, but if it's a drop down list in a typical Windows dialog, you may be able to edit the dialog definition and make english the default item. See if you can open the EXE or DLL in a resource editor. If you have Visual Studio, that has a resource editor built in - just open the EXE/DLL and in the File Open dialog box select "Open With..." and then "Resource Editor" in the resulting window that pops up (that's how it is in VS 2013 - may be slightly different in earlier versions). Then once the resource editor window opens, you should see a tree with a section called "Dialog". Expand this, and you will see the dialog box definitions. Double click them to edit.

author: czdt8m
author_rank: Contributor
timestamp: December 02, 2013, 10:19:42 am
content: Quote from: GEuser on December 02, 2013, 10:09:37 amPeople on this forum are trying to help you and that is your reaction?For that reason, I'm out!

author: mrflibble
author_rank: Super Contributor
timestamp: December 02, 2013, 10:34:49 am
content: Quote from: GEuser on December 01, 2013, 01:51:54 amThat is relatively easy to fix. You just have to ....ooooh banana!

author: G0HZU
author_rank: Super Contributor
timestamp: December 02, 2013, 12:48:25 pm
content: I'm actually eating a banana sandwich as I read this thread

author: Druzyek
author_rank: Contributor
timestamp: December 02, 2013, 05:17:49 pm
content: I think using Linux for so long has had a negative effect on some of your brains (I assume I am one of the last hacker types loyal to Windows.) I would definitely not use any of the methods discussed here.Back in the old dial-up days we used Windows API to search through the handles of the child windows and controls of AOL to automate some tasks. Chat rooms had a limit but you could automate trying to enter until you got in. We also made programs that you could type your text into that would insert html between each letter so that the color faded from one color to another then sent that text to the chat for you. Someone even made something that would convert picture files to colored | characters and send them all at once to the chat so that it vaguely resembled the picture.Get an hWnd Spy program that will show you the control name of the button you need to click. Use that name with the API calls FindWindow and FindWindowEx to get a handle. Use another API call to send a click to the control associated with that handle. Have your program load when the other program loads and when it is ready just have it send a click message to the program with SendMessage.Option 2 is to get the X,Y coordinates of the program in question and automate mouse clicks to pick the new language. This is much less elegant because you will see the mouse moving and clicking but it will also work.Either of these programs should be less than 50 lines in VB6.

author: PeterG
author_rank: Frequent Contributor
timestamp: December 03, 2013, 08:30:16 pm
content: Just for an example i dusted off my VS6 cds and spent some time setting it up in a XP VM. The result is the two apps in this zip file. Both are the same app with different menu indexes. I have also included a link to a free resource tool called ResEdit. Maybe the OP can learn something from this example. And others can play out of curiosityhttp://www.resedit.net/Regards

author: DavidDLC
author_rank: Frequent Contributor
timestamp: December 03, 2013, 08:40:24 pm
content: Quote from: czdt8m on December 02, 2013, 10:19:42 amGood Shark !

author: czdt8m
author_rank: Contributor
timestamp: December 03, 2013, 08:51:36 pm
content: Quote from: DavidDLC on December 03, 2013, 08:40:24 pmOr Dragon.

author: PA0PBZ
author_rank: Super Contributor
timestamp: December 18, 2013, 09:45:57 am
content: What is the reason you don't use version 6, is it not compatible with your radio?At least that one starts up in English:http://mw0gkx.co.uk/radprog/files/5555v6/AT5555Setupv6.exeEdit: Just tested version 1, also starts up in English here (and it is the only language choise):http://highfields-arc.co.uk/repairs/files/5555v3/at5555setupv1.exe

author: Erwin Ried
author_rank: Regular Contributor
timestamp: December 21, 2013, 11:00:02 pm
content: Can you post the program files here?I can try to edit the exe for you. Old VB usually is very messy inside, but for sure you can track down the "PUSH <label_english_address>" if the exe isn't heavily protected/obfuscated.

author: PA0PBZ
author_rank: Super Contributor
timestamp: December 22, 2013, 09:12:37 am
content: The problem is that English was added as an afterthought, so they load all the chinese labels in the Form_Load, and then use 2 separate calls Language_eng_Click and Language_chn_Click to set the language via the menu. It would have been much easier if they just used Language_chn_Click in the Form_Load. I don't think it is worth the trouble to replace all the strings in the Form_Load with the English text.

author: Mechatrommer
author_rank: Super Contributor
timestamp: December 22, 2013, 11:34:53 pm
content: Quote from: GEuser on December 18, 2013, 05:34:50 pmthats something! thank you!

author: FearTec
author_rank: Regular Contributor
timestamp: March 08, 2014, 12:35:24 pm
content: http://www.angusj.com/resourcehacker/is a great way to extract resources from VB exe's.