

RTollison
Members-
Content Count
112 -
Joined
-
Last visited
Everything posted by RTollison
-
reason for this is cloud server and multiple clients. we give them a specific folder that is theirs but if we allow them to navigate to other clients folders it presents a security problem. we have permissions in place but not fullproof just yet.
-
Register COM Object for create process/Fightiing AntiVirus
RTollison replied to RTollison's topic in General Help
at the normal 10 threads it takes the 12-14 hours. the thycotic jumps to like 80% of cpu and stays around that percentage throughout the process. so it brings my system to a crawl because overall 100% of cpu stays pegged. from a cmd prompt if i execute the compile command with all the parameters it takes less than 1 second for most cobol programs a few take 3-4 seconds (lots bigger programs). i put 52 compiles into a batch file and they completed fairly quickly(< 1 minute). but those same programs in my mass compile program took 6 miniutes to finish. so for whatever the reason thycotic goes nuts and eats a bunch of cpu time which slows down everything. maybe i will just create a batch file with everything to compile with all the proper parameters and then just run the batch file. another code change but will see what happens. that would be faster overall but would go back to 1 compile command at a time. but still better than the 12 hours -
Register COM Object for create process/Fightiing AntiVirus
RTollison replied to RTollison's topic in General Help
Sorry if you just type the ccbl32 with anything other than -help or with all the actual parameters it just throws up the -help option. no compiling. in my threading the default number is 10 but i wanted to see what was going on so i ran it up to 50 and that was when i noticed the thycotic.exe was going nuts as well. since creating a COM or whatever seems out of line i can tinker with process and TDOSCommand to create a fake threading. since the doscommand has an onterminated events then i can just spin up that many processes and let them run and decrease a counter when done. i should be able to make that work. -
Register COM Object for create process/Fightiing AntiVirus
RTollison replied to RTollison's topic in General Help
C:\AcuCobol_925>ccbl32 -help COMPILER: ccbl [options] source_file -v Verbose compiler -w Suppress warnings -e Error output to named file -o Name object file -x Ignore CBLFLAGS environment -a Show all warnings -$ HP e3000 conditional compilation *** Listing Options *** -Li Print general information -Lo Name listing file -Lf Print full listing -Lx Print extended statistics -Ls Print symbol table -Ll Set page length -Lw Wide listing format -Lc Cross-reference listing -Lp Print preprocessed source -La Split out 'cautions' *** Compatibility Modes *** -Cr RM/COBOL(tm) compatibility -Ci ICOBOL(tm) compatibility -Cb Default organization is BINARY -Ce Use source/copy name extension -Cf Use fixed-length records -Ca Use ANSI ACCEPT and DISPLAY -Ck Indexed keys in SELECT order -Cm SELECT allows IBM COBOL syntax -C3 Version 1.3 compatibility -C4 Version 1.4 compatibility -C5 Version 1.5 compatibility -C## Version #.# compatibility -Cv IBM DOS/VS Cobol compatibility -Cp HPe3000 Cobol compatibility -Cg Ignore conditional compilation *** Video Options *** -Vh Default intensity is high -Vl Default intensity is low -Va Alternate ACCEPT intensity -Vq Quiet ACCEPT statements -Vc Imply CONVERT on numeric ACCEPT -Vd Imply CONVERT on numeric DISPLAY -Vx Always allow exception keys -Vb Treat BLANK LINE as BLANK EOL -Ve# Set EXCEPTION mode -Vu Imply UPDATE on ACCEPT -Vi Use item color on erase -Vg# Do not propagate COLOR *** Data Item Options *** -Db Treat COMPUTATIONAL as BINARY -D2 Treat COMPUTATIONAL as COMP-2 -D6 Treat unsigned PACKED as COMP-6 -D1 Put PIC 99 binary in one byte -Ds Imply SIGN IS SEPARATE phrase -D5 Treat BINARY as COMP-5 -Da# Align data on #-byte boundaries -Dm Minimize binary data size -Dl# Set SYNC boundary limit to # -Dy Imply SYNC for all binary data -Dz Relax size-checking rules -Di Initialize WORKING-STORAGE -Df COMP-1/COMP-2 are FLOAT/DOUBLE -Dw# Set maximum target word-size -DCa Use ACUCOBOL numeric formats -DCi Use IBM numeric formats -DCm Use Micro Focus numeric formats -DCn Use NCR numeric formats -DCb Use MBP numeric formats -DCr Use Realia numeric formats -DCv Use VAX/COBOL numeric formats -Dx# Set size of index data items -D7 Micro Focus binary data size -Dd31 Allow 31 digits in numeric items -Dv=# Default value of data -De Assume linkage is not aligned -Dq Treat QUOTE as APOSTROPHE --fastRefMod Use optimized method for reference modification --fpRounding=[OSVS|VSC2] Emulate OSVS or VSC2 style rounding --lastWSDataSeg=# Number of data segments used for WORKING-STORAGE --noAlignLit Do not use default algorithm for aligning literals --noTrunc Binary items not trimmed to picture on store --truncANSI Don't truncate stores in COMP-5 *** Debugging Options *** -Ga Include everything -Gy Include symbols (-Zs) -Gd Include source (-Zd) -Gl Include line numbers -Gs Include extra symbol info -Gz Prevent program from being debugged *** Miscellaneous Options *** -Zi Imply IS INITIAL PROGRAM -Zn Turn off local optimizer -Za Check array bounds at runtime -Zg Enable segmentation -Zc Optimize for space over speed -Zz Treat spaces as zero in numbers -Zr0 Disallow recursive PERFORMS -Zl Create large-model program -Zy Use 4-digit year in DAY/DATE -Zf Create #define file -Z3 Restrict code to version 1.3 -Z4 Restrict code to version 1.4 -Z5 Restrict code to version 1.5 -Z## Restrict code to version #.# -Zw Prepare for workbench import -Zm Include ADDRESS OF memory sizes -Ze Include XML symbol table --acceptRefresh Use current value of variable in screen ACCEPT --arithmeticVSC2 Truncate according to the rules of VS COBOL II --binaryMath (--bin) Use binary math when able to (default for 7.3+) --brand nnn Brand the object with serial number nnn --decimalMath (--dec) Always use decimal math package (pre-7.3 default) --newARC Use relaxed Abbreviated Combined Relation syntax --relaxRBUsing Allow radio button USING to be indexed data items *** Mapping Options *** -Mp List all paragraph names -Mr List all reserved words -Ms List all opened source files -Mv List all variable names -Mo Specify an output file -Ml List names in lowercase -Mu List names in uppercase -Mm List names in mixed case -Mc List all control properties -Mw List screen section info -Me List all entry points -Mx Create XCDs *** File Options *** -Fs Implied START TRANSACTION -Ft Transact all file operations -Fl Single lock mode default -Fo Set directory for XFD files -Fx Create XFDs for indexed files -Fa Create XFDs for all file types -F# Create version n XFDs [n=3,4,5] -Fc Preserve case of field names -Fe Create old format XFD files -Fv Include comments in XFD files -Fp ALL files are OPTIONAL -Fm Default lock mode is manual -Fn No file sharing by default --fileAssign=[DYNAMIC/EXTERNAL] Specify default file assignment --fileIDSize=[2/4/8] Specify size of file handles passed to COBOL *** Source Options *** -Sa Force ANSI source format -St Force terminal source format -Si Include lines based on pattern -Sx Exclude lines based on pattern -S# Set tabs every # columns -Sr Use RM/COBOL compatible tabs -Sd Include debugging lines ('D') -Sp Specify COPY search path -Sc Specify code system -Sl Force long line source format *** Warning Options *** -Wa Warn on misaligned using -Wl Warn on non-01 level using -Wr Warn on 01 level redefines too long *** Object-Code Options *** -n Generate native code for host --ia-32, --intel Generate Intel IA-32 code --pa_risc, --pa Generate PA-RISC 1.0 32-bit code --pa_risc_2.0, --pa2 Generate PA-RISC 2.0 64-bit code --powerpc, --ppc Generate PowerPC 32-bit code --powerpc_64, --ppc64 Generate PowerPC 64-bit code --power Generate POWER-compatible 32-bit code --sparc Generate SPARC 32-bit code --sparc_v9 Generate SPARC 64-bit code --noInlineCall Turn off inline CALL optimization *** ESQL Pre-compiler options *** -Pc Connect to database to check SQL -Pd Specify database for connection -Pi Specify SQL include directory -Pk Specify keyword set -Pp Specify database password -Pr Relaxed syntax checking -Ps Precompile and compile -Pu Specify database user name -Pw List keywords -Pv Relax rules for VARCHAR items -Pg Preprocess using next argument -Pe Include ESQL in listing & debug Additionally, the following commands may be used (as described above): -e filename; -Sa; -Sd; -Si; -St; -Sx The output will be sent to stdout unless otherwise specified *** Reserved Words *** -Rr Suppress RM/COBOL(tm) words -Rv Suppress VAX/COBOL(tm) words -Ra Suppress ACUCOBOL(tm) words -R8 Suppress 1985-standard words -Rs Suppress Screen Section words -Rw Suppress individual word -Rc Change reserved word -Ri Suppress ICOBOL(tm) words -Rx Ignore any particular word -Rn Make synonym for reserved word -R2 Suppress 2002-standard words *** Error options *** -Qm Max error count -Qp Skip to next period on error *** Conditional compile options *** /CONSTANT name value /[no]directive *** Internal table options *** -Td # Identifier and statement table -Te # Subscript statement table *** Interoperability options *** --javaclass Generate a .java class to call this COBOL program --javamain Generate a .java main to call this COBOL program --netdll Generate a .net DLL to call this COBOL program --netexe Generate a .net EXE to call this COBOL program INFORMATION: cblutil -info object_files ... LIBRARIAN: cblutil -lib [options] object_files ... -o Name new library file -v Verbose librarian -r Remove object files if okay CODE TRANSLATION: cblutil -native [options] object_files ... -o Name output file -v Verbose translator -Zc Optimize for space over speed -Zn Turn-off optimizer --ia-32, --intel Generate Intel IA-32 code --pa_risc, --pa Generate PA-RISC 1.0 32-bit code --pa_risc_2.0, --pa2 Generate PA-RISC 2.0 64-bit code --powerpc, --ppc Generate PowerPC 32-bit code --powerpc_64, --ppc64 Generate PowerPC 64-bit code --power Generate POWER-compatible 32-bit code --sparc Generate SPARC 32-bit code --sparc_v9 Generate SPARC 64-bit code RUNTIME: runcbl [options] [ object_file [parameters] ] -d Run with debugger -r Run debugger from script -e Direct error output to file -ee Redirect stderr to file -w Suppress warning errors -s Prevent user aborts (safe) -c Name configuration file -l List configuration file -v Print version number -# Set switch to ON -i Set input to file -o Set output to file -a Name assembly library -y Name COBOL library -x Show extended error messages -h Ignore hangup -b Background processing -
Register COM Object for create process/Fightiing AntiVirus
RTollison replied to RTollison's topic in General Help
this compiler does not have batch mode (acu cobol) everything is in a whitewashed folder, IT said that anything in C;\coboldev would not be scanned (we made sure that the spelling was exactly the same) and everything involved here is in the coboldev folder. hard drive is SSD. Like i stated the only variance here is the AV. when i start running my program for all with say 250 threads, i watch task manager and i see my ccbl32.exe start up but then i see thycotic going nuts on cpu usage. i told IT no you not excluding that folder because everything of mine is in that folder. after much back and forth IT thought that the create process for the ccbl32 was doing something else that the AV was trying to monitor. -
Register COM Object for create process/Fightiing AntiVirus
RTollison replied to RTollison's topic in General Help
sorry should have added more details as usuall. the "files" are cobol programs that have to be compiled into a cobol object so the cobol runtime can use them. our programs are broken down into sub-folders say "AA" thru "ZZ". rather than compile every "file" every time, i wrote an app that allows me to select which folders to compile. only ones that have changes or the once a month all "files" compiled. originally i used the "WinExec32V2" to spin up a process for every file in the group. this was definitely the wrong approach when compiling all files. So i added threading and a thread limiter. then i could spin up say 50 threads with a different file in each. this would then only take about 10 minutes for all files. Then the thycotic AV came along and now this threading process takes about 12 hours for all files. the compiler program has been whitewashed. i can run it manually and the AV doesn't nag me about are you sure its safe prompts. it did before getting it whitewashed. but the thycotic AV seems to snag/delay the threads and i am trying to past it somehow. like have it check the first one and deam them all safe from there. long shot i know, but i really hate the once a month process because my pc comes to a crawl all day long. so we (myself and IT) thought/hoped that if i had a registered object that thycotic would not keep checking it over and over. i have been tinkerying with TDOSCommand to see if thycotic would let a direct command run without checking every one of them. got interupted for the past 2 days on other projects hopefully wednesday will be a good day for changes/testing. -
I am needing to add Windows certificate/codesign/whatever to my project. We have a corporate certificate and i am needing to figure out how to add it to my project so it show as trusted. where do i start in RAD Studio 10.2. NOTE: at this point, i am not sure what kind of file/certificate i will be given/using. Just told to add it to my project so our corporate AV would stop blocking the program.
-
Have apps that use the createprocess and some that use shell obj to call OS related things. Now IT is/has to lock down security on server and is planning on removing access to all cmd.exe(not sure what ALL means but guessing they are going to remove it) and the powershell and all of its function from users. Does anyone know if removing access to cmd.exe will break createprocess or shellobj? irony is that i don't have rights the rename the cmd.exe to test on my own.
-
FYI i do not have permission to run GPEdit.msc We are already pretty tight on security. Now we are looking to do the same with our clients and hosting servers. All i was hoping for was that someone else had already done something similar and knew for sure that createprocess still worked and that may shellobj would work but maybe some odd issues or whatever.
-
work from home, so home pc is work pc. yes i do have a home pc (windows xp retired) and installing a VM would require corporate permissions to get an admin to install. it can wait until we have to deal with it then can do the testing to see what is blocked. who knows IT just might allow some things after all. Thanks
-
I have a running app that has a bitmap object on it and i have a dll that creates a bitmap. without saving to disk or clipboard, i need to copy from dll bitmap to the app bitmap. i have the handle of the app in the dll and have the workings of trying to find the bitmap object in the app. but i need to figure out how would i go about copying the bitmap over.
-
Copy bitmap from one app to another app bitmap
RTollison replied to RTollison's topic in General Help
and to confirm the cobol side creates handle for the bitmap. it is defind in the cobol program as 01 A-BITMAP HANDLE. so it is not like a bitmap object in delphi. that again is an obstacle that requires me to copy via handle and not bit-by-bit (only guessing again). i guess i could create a bitmap in the dll and assign it the handle from cobol if that is possible, as long as i dont save the bitmap to disk. -
Copy bitmap from one app to another app bitmap
RTollison replied to RTollison's topic in General Help
i am hoping that since the signature comes from the CreditCard machine that they are always the same size. that is what i am hoping for then the copying of the bitmap wouldnt have to worry about the size. -
Copy bitmap from one app to another app bitmap
RTollison replied to RTollison's topic in General Help
that is why i was asking about copying a bitmap from dll to another bitmap in a separate app. in the cobol side the loadbitmapfromfile is what creates the bitmap and assigns it a handle. I was figuring on loading up a bitmap that is just empty/blank. then try to copy the dll bitmap into that hanlde. at this point i do not know if it will work but that is what i have to work with. -
Copy bitmap from one app to another app bitmap
RTollison replied to RTollison's topic in General Help
Ok here is overall process/issue. i have a microfocus cobol program that uses a runtime (exe) to open an cobol compiled object file. in that program it has logic for printing bitmaps. However, it requires that the bitmap be a saved file. I had created the dll to load base64 encoded data and converted to bitmap and saved to disk. Then the cobol program would read the file and print then delete the bitmap file. But the bitmap is for a customers signature that quality control says 'No you will not save it to disk and delete due to security reasons.' So now i need to change the process so that the dll can copy the bitmap to the cobol programs bitmap handle. i figure that i will have to change the cobol to open a blank/empty bitmap and then send that handle to the dll to get the signature bitmap loaded into the cobol program. Cobol side is limited in what it can do, so the dll was needed to read/convert/save the bitmap. Since this is not a full delphi process i just posted a general question and then would work out the details on my own. -
I am needing to create a dll that will have options for opendialog and savedialog. I have the dll working but had a dev question. there are lots of open save dialogs available from different vendors. i have a TMS, DevExpress, Delphi and JV versions of the component. Anyone have any idea as to any type of advantage i might gain using any one in particular over the others. Down the road i might be looking to make some kind of as yet unknown changes. Figured i would ask in case anyone else has been down this road. Maybe a different component altogether?
-
Calling a dll to display a calendar BUT need to stop processing windows messages
RTollison posted a topic in General Help
i have a calendar dll that pops up on the center of the form where it is called from. works fine but there is an issue. the calendar control is from TMS Software and i have worked with them but the issue doesn't happen to them. on the calendar control there are navigation buttons at the top of the control (previous year, previous month, next month and next year. The calendar is set to popup center of form (long story best solution) so if a developer of the application form put a button in a select spot on their form when calling the dll to popup the calendar IF the MOUSE is OVER any of the prev, next buttons i get an memory access violation, click ok and the calendar works great. move along. since that window are is limited if the user, say clicks the bottom right of a button then no error. But if they click the middle then the error pops up. So i know it has something to do with probably trying to get/display the Hints (my guess). i have sent a sample project to TMS and they don't get the error. so they sent me back the compiled project and I also don't get the error. Made sure that we are on the same version and we are. Now my question is this, is the a way to stop the processing of the hint while the control/form is being created. First thing the dll does is frmCalendar := TfrmCalendar.Create(nil); is there a way to stop hint message, create the control then enable hint messages? -
Calling a dll to display a calendar BUT need to stop processing windows messages
RTollison replied to RTollison's topic in General Help
I managed to modify the source for the plannercalendar control and commented out the offending code without affecting the control (on the surface) but it is working within my code and it suits my purposes. have tested in multiple projects with the plannercalendar and it is working fine everywhere that i use it. Thanks. -
I have a string in an odd format and am needing to change to datetime format. <DateTime>2021-06-25 08:04:09</DateTime> strtodatetime wants the date to be dd/mm/yyyy time is there a strtodatetime that uses a formatdatetime option?
-
thank you, i really appreciate the help.
-
Get rectangle of the button that was pushed on another form...
RTollison posted a topic in General Help
i have this routine to get the active window, that may have multiple buttons at various places on the parent window. when they user click on a button then i am calling a dll that currently tries to center itself on the parentwindow BUT i am needing to know if it is possible to get the rectangle coordinates of the button that actually got pushed. here is my current lines for gathering the window rectangle. ParentWindowHandle := GetActiveWindow; GetClientRect(ParentWindowHandle, Rect); is there a way to determine the button that was pushed and it location relative to screen so i can popup my control where the button is located and not in the center? -
Get rectangle of the button that was pushed on another form...
RTollison replied to RTollison's topic in General Help
Yeah the screen center seems ok for our clients and they can see the calendar popup pretty easy. when calling the dll we pass in a date that it will move the calendar to that date and when the user selects a date and clicks an OK button it sends the value back to the cobol program. pretty simple stuff. as for a mouse click not always used some users just use keyboard and are very adapt at using it. the buttons do not have a tab stop. the date field is the tab stop. like i said center of screen is fine, mgmt just asked if possible to put by button without a lot of effort and verification that it works in all situations. So thank you all very much. -
Get rectangle of the button that was pushed on another form...
RTollison replied to RTollison's topic in General Help
the GetFocus actually worked great but after i started testing the cobol programs and where it would pop up, it won't work out to well. some of our report type programs have these push-buttons at the bottom of the screen but the focus is at the top field on the screen. so as a user i could not want to change anything other than a date or multiple dates and just push the button at the bottom of the screen but the popup calendar is at the top. i checked if there was a way to force the focus to the button when pushed and there is not an option for down only that the button was clicked after the fact event. So i will do more thinking on this but in the mean time leave it as center of activewindow. -
Get rectangle of the button that was pushed on another form...
RTollison replied to RTollison's topic in General Help
i haven't tried it yet but i will do so today. -
Get rectangle of the button that was pushed on another form...
RTollison replied to RTollison's topic in General Help
i apologize for the lack of details. no excuses. i have been down this road to many times. was just wishing for a quick command like the getactivewindow but for a window control. even did a search for getactivewindow hoping some article would mention any info related to getting the control. Thats when i posted here doing the wish stuff for another command from people that would know. FYI my current dev language is COBOL and i have to tie into it for anything outside of it, such as this calendar dll. the original one was hokie and dated, so i created a new one that followed the parameters and decided that centering on the form was better than the main screen. that is when i was asked if we could popup at the button that was pushed. now we are here and i am going with not possible with 100% results.