Hiding a Mac application from the dock - objective-c

I am trying to create an application with the only purpose to implement a Applescript dictionary, and extend Applescript.
I have read of faceless applications (agents), but my application allows Applescript scripts to show some dialog boxes.
What can I do to avoid my application icon appears in the dock when it is invoked by Applescript?

Agent applications can show dialog boxes if they want to.
The Agent overview here mentions this.
To set it specify LSUIElement as 1 in your info.plist file.

Related

How can i keep focus on my own application or regain it when lost in delphi? [duplicate]

I need to create a simple Delphi application, kiosk style.
It is a very simple thing, a single form where the user writes some personal info to register to an event. 4 TEdit and a TButton.
What I want to achieve is to avoid the user does any action different then typing in TEdit or clicking on the TButton. For example I don't want he does ALT TAB (switchin applications), pressing windows key on keyboard, doing ctrl-alt-canc, etc...
I can add a passowrd protected Button that enables/disables this "Kiosk mode", in this way as I need to exit the kiosk mode I simply press that button and exit.
How to achieve this "kiosk mode" in Delphi without intercepting all the keystrokes manually? Or did anyone already develop this so it can be shared?
I think you'd better create a new desktop, and run your app in there. When your app is done, you can bring back user's desktop. That is how Windows login screen works. Of course Windows login screen uses a special secure desktop. Your app in a separate desktop would be isolated. You will have a desktop background with no start menu, taskbar, or desktop icons because explorer.exe is not running there automatically. Of course a can start a new process, using Task Manager, but desktops in Windows are securable objects; therefore, you can make restrictions if you want. Of course if your app has sufficient permissions.
To create a new desktop, you can use CreateDesktop Windows API, and to switch to the newly created desktop, you can use OpenDesktop function.
You can try Change the Windows Shell.
When you start windows, you don't execute the default shell (explorer.exe), you can execute your application.
Al internet you can find alternative Shell (more attractive) to default windows like:
BlueBox or
SharpE
This option is used for purposes similars at the application that you are developing. Kiosks or TPV.
For change the default applicacion you must modify a registry key:
In Win3.x and Win9x, SYSTEM.INI file:
[boot]
shell=MiAplicacion.exe
In Win2k and WinXP, use Registry:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
Shell=MiAplicacion.exe
If you test this option, think the mode to turn the configuration to the original value (button or option). You must reboot to test changes.
ADDED: In addition, if you search on the web some similar at this "Delphi Change default windows shell", you can find more code, samples and information about this.
Regards
P.D: Excuse me for mistakes with english.
Well but if someone can open the taskmgr he could just create a new task and run explorer.exe from there so its not really secure though...
Ok Taskmgr can be stopped with policies...
Well and for disabling the cad sequence you can use saslibex which Remko Weijnen had created you can find it here: SASLibEx
kindest regrads,
s!

Hide System Tray Icon of a 3rd party exe

I'm trying to hide the system tray icon of a program that I'm calling with my program. I'm currently working on a program that provides guides and quick resources to other members of my team. I've got the program to load an AutoHotKey file at launch but the AHK icon shows in the System Tray/Notification area of the task bar. I would like to hide that icon.
I'm currently working in VB.net
So, I don't want to hide anything from the taskbar, I just want to hide the icon of AHK from the system tray.
I have done some looking around and seen some things with the Shell_NotifyIcon but I'm not sure how to implement this.
Figured it out. AutoHotKey has a built in feature to hide the tray icon.
HideTrayIcon
Place that inside the script and it will not show it in the system tray.

How to hide the automator application icon when running

I create a automator application and set it to run at logon, and I check the "Hide" box, but it still shows up (the gear icon) in the status bar. How can I hide it?
I check the "Hide" box here:
but the gear icon is still shown (the worse part is that it never stops rotating!)
Is it possible to hide this icon, or let it stop rotating?
control-click on it, and choose Show Package Contents from the pop-up menu. Inside the Contents folder, open up Info.plist, and change LSUIElement from No to Yes (if using Property List Editor) — or change the line after the LSUIElement key line to (if using a text editor). Save Info.plist.
Now when the alarm triggers, the Automator plugin will run in the background, without a Dock icon or a menu bar, and the focus will remain on the application you’re using.
Three things to note:
You might have to move the plug-in out of the iCal folder and back in
for this to work. Tiger caches the LSUIElement info; moving the app
forces Tiger to renew the cache.
You probably do not want to do this with any iCal plugin that has
dialogs or requires user interaction! This works best for maintenance
actions, automated downloads, and that sort of thing.
Third, this will work with any Automator workflow that is saved as an
application, not just with iCal plugins.”
Then Clear your Cache

Mac OS X: Global Shortcut to get selected text/image in Application

I'm trying to build an app that get's selected text from other applications if a certain shortcut/hotkey is pressed. First I tried the Carbon Hotkey API, but then I couldn't get selected text from other applications. Second I've tried building a service that gets the selected text from other applications and is called with a global shortcut, but I wasn't able to use a custom shortcut. Somehow only CMD+SHIFT is allowed as a modifier in the plist and these kind of shortcut is already used in many applications so it's often not working. CTRL and a key would be a cool shortcut, because not many applications use this kind of shortcut, but I can't specify such a modifier.
Any Ideas how to solve this problem?
To answer your second question, you can manually edit the Services plist file. Find details here:
Set Custom KeyEquivalent in Services Menu

Can you attach a drawer to another application in Cocoa?

Is there a way for one Cocoa application to attach drawer-like windows to another application? We might for example want a terminal drawer that followed around a particular Finder window.
There is a program called DTerm that opens little transparent windows over Finder windows, but one might prefer persistence.
You may want to checkout SIMBL. It allows you to write nifty bundles that are loaded into the application your targeting. If you go along with it I'd reccomend using class dump to gather more information on the application your working with (although Im not sure it would work with Finder)