I just uploaded a series of tutorials. (EDITED TOPIC TITLE: video tutorials are not limited to beginners)
The total length is about 9 hours if you include the virtualbox and demonstration tutorial.
Go to the below google drive folder which is called "QM" and read the "!README" document.
Google drive folder: https://drive.google.com/drive/folders/ ... VhBSmFId3M
Within that google drive folder you will find "index_1" and "index_2"
open either "1" or "2" to get a list of links to all the tutorials.
I also created a "Demonstration" video which covers what QM is and how it works:
QM demonstration: https://www.youtube.com/watch?v=3FOR-I3QJ8w
I felt this was needed because when you want to explain QM to another potential user
a video might give a clear picture of what QM is and how it works.
So if you want to cut down the explanation time to another person, just give a link to the video.
Finally there is also a virtualbox tutorial which explains how to install and setup
virtualbox using virtual machines provided by Microsoft itself.
It explains Installing virtualbox, downloading and setting up a virtual machine, Configuring and some extra
information. Use this tutorial to begin with if you absolutely are unsure about programming and using a tool
like Quick Macro's.
ALL info from the tutorial is done from my point of view and is NOT THE absolute way to approach things.
I might have explained many things wrong or many things might have explained better.
I just wanted to give beginning users something to begin with and get them to a reasonable level in a shorter time.
(If that is even possible with this tutorial).
All these tutorials are English text annotated and not voice narrated.
And all these tutorials require a lot of pausing as soon as the yellow text annotation appear.
The time they appear might not be long enough to read all the text.
EDIT 1: The current tutorials are deleted. I will reupload text corrected tutorials in the coming days.
EDIT 2: The "new" tutorials:
EDIT 3: qmtut 25 (video 25/25) has been deleted and new one uploaded. (due to some images overlapping text)
The only changes where quick spelling/grammar corrections and added some other minor corrections/enhancements.
The topics and explanations are still exact the same as the previous ones.
The google drive QM folder is also updated.
This was a HUGE project and it might seem the style recording/presenting get's different throughout the tutorial because there where moments I just dropped this project.
Currently I am sick (flu hit me real hard) and there are a lot of personal issues going on so I might not reply immediately.
I just hope this all helped.
Congrats for this astounding work, Ron. It's not only for beginners. There is a lot of useful info for long term users as well. This is a truly boost for learning.
Just amazing for all your efforts to put in for this tutorial.
I've just watched the "Demo" video and I feel like it. Of course I have to press the "Pause" button to have enough time to read all the info highlighted in yellow but it's worth the effort.
Thanks a lot for this nice tutorial. It will help not just for beginners but for seasonal folks, too.
Keep up the good work!
Thank you for the kind words!
I have done quick proof-read of the text in the tutorials and it seems the first 12/13 chapters contain to much spelling/grammar errors.
After chapter 13 there also spelling errors but the first 12 contained to much of it.
I will remove the current videos and re-upload new versions where a lot of the spelling/grammar errors are corrected.
But note, the whole tutorial will still contain (a lot of) improper English (and errors), but it should be much more readable.
As a sidenote:
Youtube does not allow video's to be replaced, the only thing you can do is remove and upload new video's if needed.
Also, text annotations created within youtube only seem to work on desktop versions of browsers, mobile devices can not render those youtube
created text annotations. There is a thing called "youtube cards" which youtube want's you to use but they do not behave like the youtube annotations.
Just wanted to notify viewers of these limitations.
EDIT 1: The current tutorials are deleted. I will reupload text corrected tutorials in the coming days. EDIT 2: The new links are up, see above.
Quote:And all these tutorials require a lot of pausing as soon as the yellow text annotation appear.
The time they appear might not be long enough to read all the text.
Tip:
I use the Right and Left arrow keys. It moves 5 seconds forward or back. It works when playing and when paused. In playing mode you can return 5 seconds back when too fast or skip 5 seconds when too slow. In paused mode you cannot see the mouse movements etc but you can be more relaxed when reading longer text. You can use the space key to pause/play.
-----------
Tip 2:
I choose the video size with the smaller white rectangle button. It makes the video bigger bot not full screen. Then also depends on window size. In full screen more blurred.
I have been in the Internet search QM related tutorial, unfortunately, are not found, and now, QM has finally produced the first set of tutorials, thank you, I will try to learn, and the software and tutorials, Introduced to my family, colleagues, friends! Thanks for sharing
Hello, r0n, Your recorded tutorial is awesome. This is a very great job and will allow more people to learn to use QM.
I found that you used the faststone capture software to record the tutorial. The file format downloaded from youtube is MP4. I can't directly use faststone capture to edit. (The notes in the image below) Can you provide the source file for recording? I would like to use faststone capture to translate the English notes into my own country's language, then upload the web and share it with more friends because my friend's English is not very good. Thanks in advance!
05-16-2018, 04:52 PM (This post was last modified: 05-16-2018, 04:53 PM by r0n.)
@win
I used ActivePresenter for most of my recordings (I think almost all of them).
I understand the need for translation but I can not give the original source files away because I want to keep everything under my "channel".
I do not want to sound disrespectful for your effort into wanting translating the video tutorials, I really appreciate it.
However there might be another way.
ActivePresenter is able to generate an XML file with the text annotations, you could modify these XML files to translate it and I could render translated video tutorials using the modified XML files.
But:
1. I ran into an license issue regarding ActivePresenter which I want to resolve first
2. Then I need to test the translation process and create a short instruction
3. I need to find time to do all this
If I resolved the above 3 issues, I will post the link to the XML files here with instructions.
I can not promise when it will be done.... next week.... next month....next year...
Hello r0n, your tutorial is a great job. I learned a lot of programming knowledge from your tutorial, but my English level is not very good, and many English sentences don't understand much.
Now, I have an idea. I hope that you can provide the xml file of the comment in the video, which is convenient for interested people, translate it into the language of your own country, then submit it to you, and finally output it as a video, which will help people from all over the world. Learn about QM
I think QM is a very efficient computer assistant, the syntax is simple and clear, but unfortunately, my friends around me know too little about QM.
When my programming level reaches a certain stage, I will consider recording a video tutorial with voice and sharing it with friends who are interested in automation.
Hello, I am watching a video tutorial 18
I run the following code, the prompt is undefined, can you guide me, where can I find this custom function? Thanks in advance
I have encountered this problem in other tutorial code files. If export the related files to a .qml file, it will be more convenient to use.
#sub DlgProc function# hDlg message wParam lParam int- maindlg=hDlg sel message ,caseWM_INITDIALOG ,,int- t_hk ,,__RegisterHotKey hk ,,str hr ,,str- hk1="119" ,,str purge="";;I often use this to empty inputfields (can be anything you want). ,,int vk_in mod_in mod ,,vk_in=val(hk1)&255;; vk ,,mod_in=val(hk1)>>8;;mod ,,mod=(mod_in~5)|(mod_in>>2&1)|(mod_in<<2&4) ,,FormatKeyString vk_in mod_in &hr ;; human readable format! ,,if(!hk.Register(hDlg 0 mod vk_in));; '0' => hotkey ID can be any number. ,,,mes(F"Could not register:[][]{hr}""!") ,,hr.setwintext(id(5 hDlg))
,caseWM_HOTKEY ,,hk_MakeHr(val(hk1) hr) ,,;; IF HOTKEY F8 IS PRESSED! ,,if(wParam=0);; 'wParam' corresponds to hotkey id ,,,out ,,,0.1 ,,,outF"Key {hr} pressed"
,caseWM_DESTROY ,caseWM_COMMANDgoto messages2 ret ;messages2 sel wParam ,case4 ,,;; ifk(S) checks if [SHIFT] was pressed, this means UNREGISTER (unmap) hotkey! ,,;; make sure that you place 'ifk' commands at the beginning of your code ,,;; this means beginning of macro,function,... OR beginning of a code section ,,;; in this example you see it being placed DIRECTLY AFTER 'case 4' ,,;; which means button id '4' pressed in dialog. ,,ifk(S) ,,,UnregisterHotKey(hDlg 0) ,,,hk1="0" ,,,purge.setwintext(id(5 hDlg)) ,,,goto skip ,,UnregisterHotKey(hDlg 0) ,,hk_Sethotkey ,,if(t_hk>0);; We now use 't_hk' for registering key, val(t_hk) is NOT needed. 't_hk' is already integer! ,,,vk_in=t_hk&255;; vk ,,,mod_in=t_hk>>8;;mod ,,,mod=(mod_in~5)|(mod_in>>2&1)|(mod_in<<2&4) ,,,FormatKeyString vk_in mod_in &hr ,,,if(!hk.Register(hDlg 0 mod vk_in));; '0', you MUST use the hotkey ID which you set under 'case WM_HOTKEY' ,,,,mes(F"Could not register:[][]{hr}""!") ,,,hk_MakeHr(t_hk hr) ,,,hr.setwintext(id(5 hDlg)) ,,,hk1=t_hk ;; We MUST put 't_hk' in STRING 'hk1' because above in "case WM_HOTKEY" we use 'hk1' to output which keyboard shortcut was pressed! ,,;skip
04-06-2019, 09:14 PM (This post was last modified: 04-06-2019, 10:12 PM by win.)
Thanks for your reply, still prompted the following error
Also, the video 20 code file: 2 also prompts the following error
In addition, I found that many code files have lost custom functions. I hope to retest all the code files on a newly installed QM software. The code in the video tutorial is very valuable. Thank you again for your greatness. work
;;******************************************************** ;;* ;;* In the calling script declare 't_hk' thread global. ;;* ;;* Then you only have to check for the contents of 't_hk': ;;* if t_hk=0: user pressed cancel (line 93) ;;* if t_hk>0: user pressed hotkey ;;* ;;********************************************************
int- t_hhk t_hk sel message ,caseWM_INITDIALOG ,,str- regx_isnum="^[0-9]+$";; Checks if a string only contains NUMBERS ,,int k_vk ,,int k_mod ,,str k_vk_str ,,str k_mod_str ,,str t_hk_str ,,t_hhk=id(3 hDlg) ,caseWM_DESTROY ,caseWM_COMMANDgoto messages2 ret ;messages2 sel wParam ,case14;; button 'Use hotkey' ,,_s.getwintext(id(3 hDlg)) ,,if(empty(_s)) ,,,mes("Put cursor in 'PRESS HOTKEY:' inputfield then press hotkey""No hotkey pressed""i") ,,,ret0 ,,k_vk=t_hk&255 ,,k_mod=t_hk>>8 ,,k_vk_str=k_vk ,,k_mod_str=k_mod ,,t_hk_str=t_hk ,, ,,t_hk_str.setwintext(id(13 hDlg)) ,,str human_readble_qmout ,,FormatKeyString k_vk k_mod &human_readble_qmout ,,_s.getwintext(id(13 hDlg)) ,,if(findrx(_s regx_isnum)<0) ,,,mes("hk_Sethotkey[]Could not properly detect pressed hotkey, please retry[]If problem persists please restart this application and retry.""Error""!") ,,,ret0 ,,else ,,,selmes(F"Do you want to use hotkey:[][]{human_readble_qmout}""Remap hotkey?""YN?") ,,,,case'Y' ,,,,,;; Use "DT_Ok(hDlg)" if this is in a sub dialog, for example a dialog contains another dialog with a button save... ,,,,,;; In this way the subdialog get's closed correctly with (global) variables in tact!!!! ,,,,,DT_Ok(hDlg) ,,,,case'N' ,,,,,ret-1 ,caseEN_SETFOCUS<<16|3 ,,int-- t_hh ,,t_hh=SetWindowsHookEx(WH_KEYBOARD&sub.Hook_WH_KEYBOARD _hinst GetCurrentThreadId) ,caseEN_KILLFOCUS<<16|3 ,,UnhookWindowsHookEx t_hh ,caseIDOK
,;note: mod used with RegisterHotKey is different: need to swap the first and third bits. ,caseIDCANCEL ,,t_hk=0 ,,ret-1 ret1
04-06-2019, 10:15 PM (This post was last modified: 04-06-2019, 10:22 PM by win.)
If possible, I suggestion to use QM to export all code files. In the first line of the code file, it is the link address of the youtube video tutorial, this will be more convenient to use and maintain, please see the image below
The file name of the above function is wrong, please change HK_SetHotkeyDlg to hk_Sethotkey
If I find the time I will go through the source code and re-check them and find a better solution to keep them manageable. Thank you for the double check.
I don't know and can't promise if/when I will upload this.
I am almost sure I will have a site up and running end of this year and will upload this.
For now what I could do is that I add a link to a document and folder from your end.
That document contains information about "QM Tutorial (Published).zip" and the google folder will contain the zip file. In this way you can keep it up to date and add/modify info as you please.
I will add the link to your google folder with the "QM Tutorial (Published).zip" and google document in the all the 3 documents.
If you whish you can upload the zip contents to a webserver of your own choosing but please keep my name and email adress (I have sent a personal message through the qm forum about this) on the page web page and keep the links to the actual youtube url's as you see above in my first post.