# File lib/chef/provider/env/windows.rb, line 70 def broadcast_env_change flags = SMTO_BLOCK | SMTO_ABORTIFHUNG | SMTO_NOTIMEOUTIFNOTHUNG SendMessageTimeoutA(HWND_BROADCAST, WM_SETTINGCHANGE, 0, FFI::MemoryPointer.from_string('Environment').address, flags, 5000, nil) end
# File lib/chef/provider/env/windows.rb, line 27 def create_env obj = env_obj(@new_resource.key_name) unless obj obj = WIN32OLE.connect("winmgmts://").get("Win32_Environment").spawninstance_ obj.name = @new_resource.key_name obj.username = "<System>" end obj.variablevalue = @new_resource.value obj.put_ ENV[@new_resource.key_name] = @new_resource.value broadcast_env_change end
# File lib/chef/provider/env/windows.rb, line 40 def delete_env obj = env_obj(@new_resource.key_name) if obj obj.delete_ ENV.delete(@new_resource.key_name) broadcast_env_change end end
# File lib/chef/provider/env/windows.rb, line 54 def env_obj(key_name) wmi = WmiLite::Wmi.new # Note that by design this query is case insensitive with regard to key_name environment_variables = wmi.query("select * from Win32_Environment where name = '#{key_name}'") if environment_variables && environment_variables.length > 0 environment_variables[0].wmi_ole_object end end
Generated with the Darkfish Rdoc Generator 2.